Vai WireGuard ir lieliskais nākotnes VPN?

Vai WireGuard ir lieliskais nākotnes VPN?

Ir pienācis laiks, kad VPN vairs nav kāds eksotisks bārdainu sistēmu administratoru rÄ«ks. Lietotājiem ir dažādi uzdevumi, taču fakts ir tāds, ka ikvienam ir nepiecieÅ”ams VPN.

PaÅ”reizējo VPN risinājumu problēma ir tā, ka tos ir grÅ«ti pareizi konfigurēt, tos ir dārgi uzturēt, un tie ir pilni ar apÅ”aubāmas kvalitātes mantoto kodu.

Pirms vairākiem gadiem kanādieÅ”u informācijas droŔības speciālists Džeisons A. Donenfelds nolēma, ka viņam ar to ir gana, un sāka strādāt pie WireGuard. WireGuard tagad tiek gatavots iekļauÅ”anai Linux kodolā un pat saņēmis atzinÄ«bu no Linuss Torvalds un ASV Senāts.

Apgalvotās WireGuard priekŔrocības salīdzinājumā ar citiem VPN risinājumiem:

  • Ērti lietojams.
  • Izmanto modernu kriptogrāfiju: Noise protokolu ietvars, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF u.c.
  • Kompakts, lasāms kods, vieglāk izmeklēt ievainojamÄ«bas.
  • Augsta veiktspēja.
  • Skaidrs un izstrādāts specifikācija.

Vai ir atrasta sudraba lode? Vai ir pienācis laiks aprakt OpenVPN un IPSec? Es nolēmu ar to tikt galā, un tajā paŔā laikā es to darÄ«ju skripts personiskā VPN servera automātiskai instalÄ“Å”anai.

Darba principi

Darbības principus var aprakstīt Ŕādi:

  • Tiek izveidots WireGuard interfeiss, un tam tiek pieŔķirta privātā atslēga un IP adrese. Tiek ielādēti citu vienaudžu iestatÄ«jumi: viņu publiskās atslēgas, IP adreses utt.
  • Visas IP paketes, kas nonāk WireGuard saskarnē, ir iekapsulētas UDP un piegādāts droÅ”i citi vienaudži.
  • Klienti iestatÄ«jumos norāda servera publisko IP adresi. Serveris automātiski atpazÄ«st klientu ārējās adreses, kad no tiem tiek saņemti pareizi autentificēti dati.
  • Serveris var mainÄ«t publisko IP adresi, nepārtraucot savu darbu. Tajā paŔā laikā tas nosÅ«tÄ«s brÄ«dinājumu savienotajiem klientiem, un viņi lidojuma laikā atjauninās savu konfigurāciju.
  • Tiek izmantots marÅ”rutÄ“Å”anas jēdziens Kriptoatslēgas marÅ”rutÄ“Å”ana. WireGuard pieņem un nosÅ«ta paketes, pamatojoties uz vienādranga publisko atslēgu. Kad serveris atÅ”ifrē pareizi autentificētu paketi, tiek pārbaudÄ«ts tās src lauks. Ja tas atbilst konfigurācijai allowed-ips autentificēts lÄ«dzinieks, paketi saņem WireGuard interfeiss. NosÅ«tot izejoÅ”o paketi, notiek atbilstoŔā procedÅ«ra: tiek ņemts paketes lauks dst un, pamatojoties uz to, tiek atlasÄ«ts atbilstoÅ”ais lÄ«dzinieks, pakete tiek parakstÄ«ta ar tās atslēgu, Å”ifrēta ar partnera atslēgu un nosÅ«tÄ«ta uz attālo galapunktu. .

Visa WireGuard pamata loÄ£ika aizņem mazāk nekā 4 tÅ«kstoÅ”us koda rindiņu, savukārt OpenVPN un IPSec ir simtiem tÅ«kstoÅ”u rindiņu. Lai atbalstÄ«tu mÅ«sdienu kriptogrāfijas algoritmus, tiek ierosināts iekļaut jaunu kriptogrāfijas API Linux kodolā Cinks. PaÅ”laik notiek diskusija par to, vai tā ir laba ideja.

ŠŸŃ€Š¾ŠøŠ·Š²Š¾Š“ŠøтŠµŠ»ŃŒŠ½Š¾ŃŃ‚ŃŒ

Maksimālā veiktspējas priekÅ”rocÄ«ba (salÄ«dzinājumā ar OpenVPN un IPSec) bÅ«s pamanāma Linux sistēmās, jo WireGuard tur ir ieviests kā kodola modulis. Turklāt tiek atbalstÄ«tas macOS, Android, iOS, FreeBSD un OpenBSD, taču tajās WireGuard darbojas lietotāja telpā ar visām no tā izrietoÅ”ajām veiktspējas sekām. Paredzams, ka tuvākajā nākotnē tiks pievienots Windows atbalsts.

Etalona rezultāti ar oficiālā vietne:

Vai WireGuard ir lieliskais nākotnes VPN?

Mana lietoŔanas pieredze

Es neesmu VPN eksperts. Es reiz iestatÄ«ju OpenVPN manuāli, un tas bija ļoti nogurdinoÅ”i, un es pat neizmēģināju IPSec. Ir pārāk daudz lēmumu, kas jāpieņem, ir ļoti viegli ieÅ”aut sev kājā. Tāpēc servera konfigurÄ“Å”anai vienmēr izmantoju gatavus skriptus.

Tātad, WireGuard, no mana viedokļa, parasti ir ideāls lietotājam. Visi zema lÄ«meņa lēmumi tiek pieņemti specifikācijā, tāpēc tipiskas VPN infrastruktÅ«ras sagatavoÅ”anas process aizņem tikai dažas minÅ«tes. Konfigurācijā ir gandrÄ«z neiespējami krāpties.

UzstādÄ«Å”anas process sÄ«ki aprakstÄ«ts oficiālajā vietnē es vēlētos atseviŔķi atzÄ«mēt izcilo OpenWRT atbalsts.

Å ifrÄ“Å”anas atslēgas Ä£enerē utilÄ«ta wg:

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

Tālāk jums ir jāizveido servera konfigurācija /etc/wireguard/wg0.conf ar Ŕādu saturu:

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

un paceliet tuneli ar skriptu wg-quick:

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

Sistēmās ar systemd varat to izmantot tā vietā sudo systemctl start [email protected].

Klienta datorā izveidojiet konfigurāciju /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 

Un paceliet tuneli tādā paŔā veidā:

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

Atliek tikai konfigurēt NAT serverī, lai klienti varētu piekļūt internetam, un esat pabeidzis!

Å Ä« koda bāzes lietoÅ”anas vienkārŔība un kompaktums tika panākts, likvidējot atslēgu izplatÄ«Å”anas funkcionalitāti. Nav sarežģītas sertifikātu sistēmas un visas Ŕīs korporatÄ«vās Å”ausmas; Ä«sās Å”ifrÄ“Å”anas atslēgas tiek izplatÄ«tas lÄ«dzÄ«gi kā SSH atslēgas. Bet tas rada problēmu: WireGuard nebÅ«s tik viegli ieviest dažos esoÅ”ajos tÄ«klos.

Starp trÅ«kumiem ir vērts atzÄ«mēt, ka WireGuard nedarbosies, izmantojot HTTP starpniekserveri, jo kā transports ir pieejams tikai UDP protokols. Rodas jautājums: vai izdosies apmulsināt protokolu? Protams, tas nav VPN tieÅ”ais uzdevums, taču, piemēram, OpenVPN ir veidi, kā maskēties kā HTTPS, kas palÄ«dz totalitāro valstu iedzÄ«votājiem pilnvērtÄ«gi izmantot internetu.

Atzinumi

Rezumējot, Å”is ir ļoti interesants un daudzsoloÅ”s projekts, to jau var izmantot personÄ«gajos serveros. Kāda ir peļņa? Augsta veiktspēja Linux sistēmās, vienkārÅ”a iestatÄ«Å”ana un atbalsts, kompakta un lasāma kodu bāze. Tomēr ir pāragri steigties nodot sarežģītu infrastruktÅ«ru WireGuard, ir vērts gaidÄ«t tās iekļauÅ”anu Linux kodolā.

Lai ietaupītu savu (un jūsu) laiku, es izstrādāju WireGuard automātiskais instalētājs. Ar tās palīdzību jūs varat iestatīt personīgo VPN sev un saviem draugiem, pat neko par to nesaprotot.

Avots: www.habr.com

Pievieno komentāru