WireGuard — njĂ« VPN e shkĂ«lqyer e sĂ« ardhmes?

WireGuard — njĂ« VPN e shkĂ«lqyer e sĂ« ardhmes?

Ka ardhur koha kur VPN nuk është më një mjet ekzotik për administratoret e sistemit me mjekër. Përdoruesit kanë nevoja të ndryshme, por e vërteta është se VPN është bërë i nevojshëm për të gjithë.

Problemi me zgjidhjet aktuale të VPN është se ato janë të vështira për t'u konfiguruar siç duhet, kushtojnë shtrenjtë për t'u mbajtur, dhe kanë shumë kod të trashëguar të dyshimtë.

Disa vite më parë, specialisti kanadez i sigurisë informatike Jason A. Donenfeld vendosi se ishte koha ta ndalte këtë, dhe nisi punën mbi WireGuard. Tani WireGuard po përgatitet për t'u përfshirë në bërthamën e Linux, madje ka marrë lavdërime nga Linus Torvalds dhe në senati amerikan.

Avantazhet e deklaruara të WireGuard mbi zgjidhjet e tjera të VPN janë:

  • I lehtĂ« pĂ«r t'u pĂ«rdorur.
  • PĂ«rdor kriptografi moderne: Noise protocol framework, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF etj.
  • Kod kompakt dhe tĂ« lexueshĂ«m, mĂ« e lehtĂ« pĂ«r t'u hetuar pĂ«r dobĂ«si.
  • PerformancĂ« e lartĂ«.
  • Koncepte tĂ« qarta dhe tĂ« punuara specifikimi.

A është gjetur një plumb argjendi? A duhet të varrosim OpenVPN dhe IPSec? Unë vendosa të kuptoj këtë, dhe përveç kësaj, bëra një skript për instalimin automatik të një serveri personal VPN.

Princippin e funksionimit

Parimet e funksionimit mund të përshkruhen për afërsisht në këtë mënyrë:

  • Krijohet njĂ« ndĂ«rfaqe WireGuard, i caktohet njĂ« çelĂ«s privat dhe njĂ« adresĂ« IP. Ngarkohet konfigurimi i pjesĂ«marrĂ«sve tĂ« tjerĂ«: çelĂ«sat e tyre publikĂ«, adresat IP etj.
  • TĂ« gjithĂ« paketat IP qĂ« vijnĂ« nĂ« ndĂ«rfaqen WireGuard inkapsulohen nĂ« UDP dhe dĂ«rgohen nĂ« mĂ«nyrĂ« tĂ« sigurt te pjesĂ«marrĂ«sit e tjerĂ«.
  • KlientĂ«t vendosin adresĂ«n IP publike tĂ« serverit nĂ« konfigurim. Serveri automatikisht merr informacionin e adresave tĂ« jashtme tĂ« klientĂ«ve kur merr tĂ« dhĂ«na tĂ« verifikuara.
  • Serveri mund tĂ« ndryshojĂ« adresĂ«n IP publike pa e ndĂ«rprerĂ« punĂ«n. NĂ« kĂ«tĂ« rast, ai do tĂ« dĂ«rgojĂ« njĂ« njoftim klientĂ«ve tĂ« lidhur dhe ata do tĂ« pĂ«rditĂ«sojnĂ« konfigurimin e tyre nĂ« kohĂ« reale.
  • PĂ«rdoret koncepti i rrugĂ«zimit RrugĂ«zimi me çelĂ«sin kriptografik. WireGuard pranon dhe dĂ«rgon paketa nĂ« pĂ«rputhje me çelĂ«sin publik tĂ« pjesĂ«marrĂ«sit. Kur serveri deshifron njĂ« paketĂ« tĂ« verifikuar siç duhet, kontrollohet fusha e saj src. NĂ« qoftĂ« se ajo pĂ«rputhet me konfigurimin allowed-ips e pjesĂ«marrĂ«sit tĂ« verifikuar, atĂ«herĂ« paketa pranohen nga ndĂ«rfaqja WireGuard. Kur dĂ«rgohet njĂ« paketĂ« dalĂ«se, ndodh njĂ« procedurĂ« e ngjashme: fusha dst e paketĂ«s merret dhe pĂ«r bazĂ« tĂ« saj zgjidhet pjesĂ«marrĂ«si pĂ«rkatĂ«s, paketa nĂ«nshkruhet me çelĂ«sin e saj, kodifikohet me çelĂ«sin e pjesĂ«marrĂ«sit dhe dĂ«rgohet nĂ« pikĂ«n e largĂ«t.

Të gjitha logjika kryesore 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 algoritmët modernë të kriptimit, propozohet të përfshihet një API kriptografik i ri në bërthamën Linux. Zinc. Aktualisht po diskutohet nëse kjo është një ide e mirë.

Performanca

Maksimalja e përfitimit në performancë (në krahasim me OpenVPN dhe IPSec) do të jetë e dukshme në sistemet Linux, sepse aty WireGuard realizohet si një modul bërthamor. Përveç kësaj, mbështeten macOS, Android, iOS, FreeBSD dhe OpenBSD, por aty WireGuard funksionon në userspace me të gjitha pasojat për performancën. Mbështetja për Windows premtohet të shtohet në të ardhmen e afërt.

Rezultatet e benchmarkeve me faqja zyrtare:

WireGuard — njĂ« VPN e shkĂ«lqyer e sĂ« ardhmes?

Përvoja ime e përdorimit

Nuk jam ekspert në konfigurimin e VPN-ve. Njëherë konfigurisa OpenVPN manualisht dhe ishte shumë e ndërlikuar, ndërsa për IPSec as nuk u përpoqa. Ka shumë vendime për të marrë, shumë lehtësisht mund të të shosh për këmbë. Prandaj gjithmonë kam përdorur skripte të gatshme për konfigurimin e serverit.

Pra, WireGuard, në opinionin tim, është krejtësisht i përsosur për përdoruesit. Të gjitha zgjidhjet në nivel të ulët janë marrë në spesifikimin, kështu që procesi i përgatitjes së infrastrukturës tipike VPN zgjat vetëm disa minuta. Të bësh gabime në konfigurim është praktikisht e pamundur.

Procesi i instalimit është përshkruar në detaje në faqen zyrtare, të veçoj mbështetje të shkëlqyer për OpenWRT.

ÇelĂ«sat e kriptimit gjenerohen me mjetin wg:

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

Më pas, duhet të krijoni konfigurimin e 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 të ngrihet tuneli me skriptin wg-quick:

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

Në sistemet me systemd, mund të përdorni në vend të kësaj sudo systemctl start wg-quick@wg0.service.

Në makinën klient, krijoni konfigurimin /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 i jashtëm i serverit
PersistentKeepalive = 25 

Dhe njësoj ngrihet tuneli:

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

Duhet të konfigurohet NAT në server, në mënyrë që klientët të mund të dalin në Internet, dhe gjithçka është gati!

Kjo thjeshtësi përdorimi dhe kompaktësia e kodit janë arritur duke hequr dorë nga funksionaliteti i shpërndarjes së çelësave. Nuk ka një sistem të komplikuar certifikatash dhe gjithë këtyre frikësëve korporativë, çelësat e shkurtër të enkriptimit shpërndahen më ose pak si çelësat SSH. Por për këtë lind një problem: WireGuard nuk do të jetë aq e lehtë për t'u integruar në disa rrjeta ekzistuese.

Një nga mangësitë është se WireGuard nuk do të punojë përmes proxy HTTP, pasi transporti është vetëm protokolli UDP. Lind pyetja, a do të jetë e mundur të obfuzosh protokollin? Sigurisht, kjo nuk është një detyrë direkte për VPN, por për OpenVPN, për shembull, ekzistojnë mënyra për t'u maskuar si HTTPS, që ndihmon banorët e vendeve totalitare të përdorin plotësisht Internetin.

Përfundimet

Duke përmbledhur, ky është një projekt shumë interesant dhe premtues, mund të filloni ta përdorni tani në serverët tuaj personalë. Cili është përfitimi? Performancë e lartë në sistemet Linux, thjeshtësi në konfigurim dhe mbështetje, një kod kompakt dhe lexueshme. Megjithatë, është akoma herët të kaloni një infrastrukturë të kompletuar në WireGuard, duhet të presim për përfshirjen e tij në bërthamën e Linux.

Për të kursyer kohën time (dhe tuajën) kam zhvilluar një installer automatike për WireGuard. Me ndihmën e tij mund të ngrini një VPN personale për veten dhe miqtë tuaj, pa pasur nevojë të kuptoni asgjë rreth saj.

Burimi: habr.com

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster