A është WireGuard VPN e shkëlqyer e së ardhmes?

A është WireGuard VPN e shkëlqyer e së ardhmes?

Ka ardhur koha kur VPN nuk është më një mjet ekzotik i administratorëve të sistemit me mjekër. Përdoruesit kanë detyra të ndryshme, por fakti është se të gjithë kanë nevojë për një VPN.

Problemi me zgjidhjet aktuale të VPN është se ato janë të vështira për t'u konfiguruar saktë, janë të shtrenjta për t'u mirëmbajtur dhe janë plot me kod të trashëguar me cilësi të diskutueshme.

Disa vite më parë, specialisti kanadez i sigurisë së informacionit Jason A. Donenfeld vendosi se i kishte ngopur dhe filloi të punonte në WireGuard. WireGuard tani po përgatitet për përfshirje në kernelin Linux dhe madje ka marrë vlerësime nga Linus Torvalds dhe Senati i SHBA.

Përparësitë e pretenduara të WireGuard mbi zgjidhjet e tjera VPN:

  • Lehtë për t’u përdorur.
  • Përdor kriptografinë moderne: kornizën e protokollit të zhurmës, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF, etj.
  • Kod kompakt, i lexueshëm, më i lehtë për t'u hetuar për dobësi.
  • Performanca e lartë
  • E qartë dhe e përpunuar Specifikim.

A është gjetur një plumb argjendi? A është koha për të varrosur OpenVPN dhe IPSec? Vendosa të merrem me këtë, dhe në të njëjtën kohë e bëra skript për instalimin automatik të një serveri personal VPN.

Parimet e punës

Parimet e funksionimit mund të përshkruhen diçka si kjo:

  • Krijohet një ndërfaqe WireGuard dhe i është caktuar një çelës privat dhe adresa IP. Janë ngarkuar cilësimet e kolegëve të tjerë: çelësat e tyre publikë, adresat IP, etj.
  • Të gjitha paketat IP që vijnë në ndërfaqen WireGuard janë të kapsuluara në UDP dhe dorëzuar në mënyrë të sigurt moshatarët e tjerë.
  • Klientët specifikojnë adresën IP publike të serverit në cilësimet. Serveri njeh automatikisht adresat e jashtme të klientëve kur të dhënat e vërtetuara saktë merren prej tyre.
  • Serveri mund të ndryshojë adresën IP publike pa ndërprerë punën e tij. Në të njëjtën kohë, ai do të dërgojë një alarm për klientët e lidhur dhe ata do të përditësojnë konfigurimin e tyre menjëherë.
  • Përdoret koncepti i rrugëzimit Rruga me kriptoçelës. WireGuard pranon dhe dërgon pako bazuar në çelësin publik të kolegëve. Kur serveri deshifron një paketë të vërtetuar saktë, kontrollohet fusha e saj src. Nëse përputhet me konfigurimin allowed-ips e vërtetuar nga kolegët, paketa merret nga ndërfaqja WireGuard. Kur dërgoni një paketë dalëse, ndodh procedura përkatëse: merret fusha dst e paketës dhe, në bazë të saj, zgjidhet peer përkatës, paketa nënshkruhet me çelësin e saj, kodohet me çelësin e kolegut dhe dërgohet në pikën përfundimtare të largët. .

E gjithë logjika bazë e WireGuard merr më pak se 4 mijë rreshta kodi, ndërsa OpenVPN dhe IPSec kanë qindra mijëra rreshta. Për të mbështetur algoritmet moderne kriptografike, propozohet të përfshihet një API e re kriptografike në kernelin Linux. zink. Aktualisht po zhvillohet një diskutim nëse kjo është një ide e mirë.

prodhimtari

Avantazhi maksimal i performancës (krahasuar me OpenVPN dhe IPSec) do të jetë i dukshëm në sistemet Linux, pasi WireGuard zbatohet si një modul kernel atje. Për më tepër, macOS, Android, iOS, FreeBSD dhe OpenBSD mbështeten, por në to WireGuard funksionon në hapësirën e përdoruesve me të gjitha pasojat e performancës që pasojnë. Mbështetja për Windows pritet të shtohet në të ardhmen e afërt.

Rezultatet referuese me faqen zyrtare:

A është WireGuard VPN e shkëlqyer e së ardhmes?

Përvoja ime e përdorimit

Unë nuk jam ekspert VPN. Dikur vendosa OpenVPN manualisht dhe ishte shumë e lodhshme, dhe as nuk e provova IPSec. Ka shumë vendime për të marrë, është shumë e lehtë të qëllosh veten në këmbë. Prandaj, kam përdorur gjithmonë skriptet e gatshme për të konfiguruar serverin.

Pra, WireGuard, nga këndvështrimi im, është përgjithësisht ideal për përdoruesit. Të gjitha vendimet e nivelit të ulët merren në specifikim, kështu që procesi i përgatitjes së një infrastrukture tipike VPN zgjat vetëm disa minuta. Është pothuajse e pamundur të mashtrosh në konfigurim.

Procesi i instalimit përshkruar në detaje në faqen zyrtare, unë do të doja të shënoja veçmas të shkëlqyerat Mbështetje OpenWRT.

Çelësat e enkriptimit gjenerohen nga programi wg:

SERVER_PRIVKEY=$( wg genkey )
SERVER_PUBKEY=$( echo $SERVER_PRIVKEY | wg pubkey )
CLIENT_PRIVKEY=$( wg genkey )
CLIENT_PUBKEY=$( echo $CLIENT_PRIVKEY | wg pubkey )

Tjetra, ju duhet të krijoni një konfigurim të serverit /etc/wireguard/wg0.conf me përmbajtjen e mëposhtme:

[Interface]
Address = 10.9.0.1/24
PrivateKey = $SERVER_PRIVKEY
[Peer]
PublicKey = $CLIENT_PUBKEY
AllowedIPs = 10.9.0.2/32

dhe ngrini tunelin me një skenar wg-quick:

sudo wg-quick up /etc/wireguard/wg0.conf

Në sistemet me systemd mund ta përdorni këtë në vend të kësaj sudo systemctl start [email protected].

Në makinën e klientit, krijoni një konfigurim /etc/wireguard/wg0.conf:

[Interface]
PrivateKey = $CLIENT_PRIVKEY
Address = 10.9.0.2/24
[Peer]
PublicKey = $SERVER_PUBKEY
AllowedIPs = 0.0.0.0/0
Endpoint = 1.2.3.4:51820 # Внешний IP сервера
PersistentKeepalive = 25 

Dhe ngrini tunelin në të njëjtën mënyrë:

sudo wg-quick up /etc/wireguard/wg0.conf

Gjithçka që mbetet është të konfiguroni NAT në server në mënyrë që klientët të mund të hyjnë në internet dhe ju keni mbaruar!

Kjo lehtësi e përdorimit dhe kompaktësia e bazës së kodit u arrit duke eliminuar funksionalitetin e shpërndarjes së çelësave. Nuk ka asnjë sistem kompleks certifikimi dhe gjithë këtë tmerr të korporatës; çelësat e shkurtër të enkriptimit shpërndahen njësoj si çelësat SSH. Por kjo paraqet një problem: WireGuard nuk do të jetë aq i lehtë për t'u zbatuar në disa rrjete ekzistuese.

Ndër disavantazhet, vlen të përmendet se WireGuard nuk do të funksionojë përmes një përfaqësuesi HTTP, pasi vetëm protokolli UDP është i disponueshëm si transport. Shtrohet pyetja: a do të jetë e mundur të errësohet protokolli? Sigurisht, kjo nuk është detyra e drejtpërdrejtë e një VPN, por për OpenVPN, për shembull, ka mënyra për të maskuar veten si HTTPS, e cila ndihmon banorët e vendeve totalitare të përdorin plotësisht internetin.

Gjetjet

Për ta përmbledhur, ky është një projekt shumë interesant dhe premtues, tashmë mund ta përdorni në serverë personalë. Cili është fitimi? Performancë e lartë në sistemet Linux, lehtësi konfigurimi dhe mbështetje, bazë kodi kompakte dhe e lexueshme. Sidoqoftë, është shumë herët për të nxituar për të transferuar një infrastrukturë komplekse në WireGuard; ia vlen të presësh për përfshirjen e saj në kernelin Linux.

Për të kursyer kohën time (dhe tuajën), unë u zhvilluam Instalues ​​automatik WireGuard. Me ndihmën e tij, ju mund të vendosni një VPN personale për veten dhe miqtë tuaj pa kuptuar asgjë për të.

Burimi: www.habr.com

Shto një koment