Is WireGuard die groot VPN van die toekoms?

Is WireGuard die groot VPN van die toekoms?

Die tyd het aangebreek dat VPN nie meer 'n eksotiese instrument van bebaarde stelseladministrateurs is nie. Gebruikers het verskillende take, maar die feit is dat almal 'n VPN benodig.

Die probleem met huidige VPN-oplossings is dat dit moeilik is om korrek te konfigureer, duur is om te onderhou, en is vol verouderde kode van twyfelagtige gehalte.

'n Paar jaar gelede het die Kanadese inligtingsekuriteitspesialis Jason A. Donenfeld besluit dat hy genoeg daarvan gehad het en begin werk aan WireGuard. WireGuard word nou voorberei vir insluiting in die Linux-kern en het selfs lof ontvang van Linus Torvalds en Amerikaanse Senaat.

Beweerde voordele van WireGuard bo ander VPN-oplossings:

  • Maklik om te gebruik.
  • Gebruik moderne kriptografie: geraasprotokolraamwerk, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF, ens.
  • Kompakte, leesbare kode, makliker om te ondersoek vir kwesbaarhede.
  • Hoë werkverrigting.
  • Duidelik en uitgebrei spesifikasie.

Is 'n silwer koeël gevind? Is dit tyd om OpenVPN en IPSec te begrawe? Ek het besluit om dit te hanteer, en terselfdertyd het ek dit gedoen skrip vir die outomatiese installering van 'n persoonlike VPN-bediener.

Beginsels van werk

Die bedryfsbeginsels kan soos volg beskryf word:

  • 'n WireGuard-koppelvlak word geskep en 'n private sleutel en IP-adres word daaraan toegeken. Die instellings van ander eweknieë word gelaai: hul publieke sleutels, IP-adresse, ens.
  • Alle IP-pakkies wat by die WireGuard-koppelvlak aankom, is ingekapsuleer in UDP en veilig afgelewer ander eweknieë.
  • Kliënte spesifiseer die publieke IP-adres van die bediener in die instellings. Die bediener herken outomaties die eksterne adresse van kliënte wanneer korrek geverifieerde data van hulle ontvang word.
  • Die bediener kan die openbare IP-adres verander sonder om sy werk te onderbreek. Terselfdertyd sal dit 'n waarskuwing aan gekoppelde kliënte stuur en hulle sal hul konfigurasie dadelik opdateer.
  • Die konsep van roetering word gebruik Cryptokey Routing. WireGuard aanvaar en stuur pakkies gebaseer op die eweknie se publieke sleutel. Wanneer die bediener 'n korrek geverifieerde pakkie dekripteer, word sy src-veld gekontroleer. As dit ooreenstem met die konfigurasie allowed-ips geverifieerde eweknie, word die pakkie deur die WireGuard-koppelvlak ontvang. Wanneer 'n uitgaande pakkie gestuur word, vind die ooreenstemmende prosedure plaas: die dst-veld van die pakkie word geneem en, gebaseer daarop, word die ooreenstemmende eweknie gekies, die pakkie word onderteken met sy sleutel, geïnkripteer met die eweknie se sleutel en gestuur na die afgeleë eindpunt .

Al WireGuard se kernlogika neem minder as 4 duisend reëls kode op, terwyl OpenVPN en IPSec honderde duisende reëls het. Om moderne kriptografiese algoritmes te ondersteun, word voorgestel om 'n nuwe kriptografiese API in die Linux-kern in te sluit sink. Daar is tans 'n bespreking aan die gang oor of dit 'n goeie idee is.

produktiwiteit

Die maksimum werkverrigtingvoordeel (in vergelyking met OpenVPN en IPSec) sal op Linux-stelsels merkbaar wees, aangesien WireGuard as 'n kernmodule daar geïmplementeer word. Boonop word macOS, Android, iOS, FreeBSD en OpenBSD ondersteun, maar in hulle werk WireGuard in gebruikersruimte met al die gevolglike prestasie-gevolge. Windows-ondersteuning sal na verwagting in die nabye toekoms bygevoeg word.

Benchmark resultate met amptelike webwerf:

Is WireGuard die groot VPN van die toekoms?

My gebruikservaring

Ek is nie 'n VPN-kenner nie. Ek het OpenVPN een keer met die hand opgestel en dit was baie vervelig, en ek het nie eers IPSec probeer nie. Daar is te veel besluite om te neem, dis baie maklik om jouself in die voet te skiet. Daarom het ek altyd klaargemaakte skrifte gebruik om die bediener op te stel.

Dus, WireGuard, uit my oogpunt, is oor die algemeen ideaal vir die gebruiker. Alle laevlakbesluite word in die spesifikasie geneem, so die proses om 'n tipiese VPN-infrastruktuur voor te berei, neem slegs 'n paar minute. Dit is amper onmoontlik om in die opset te kul.

Installasieproses in detail beskryf op die amptelike webwerf, wil ek afsonderlik let op die uitstekende OpenWRT ondersteuning.

Enkripsiesleutels word deur die nut gegenereer wg:

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

Vervolgens moet u 'n bedienerkonfigurasie skep /etc/wireguard/wg0.conf met die volgende inhoud:

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

en lig die tonnel met 'n skrif wg-quick:

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

Op stelsels met systemd kan jy dit eerder gebruik sudo systemctl start [email protected].

Op die kliëntmasjien, skep 'n konfigurasie /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 

En lig die tonnel op dieselfde manier:

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

Al wat oorbly is om NAT op die bediener op te stel sodat kliënte toegang tot die internet kan kry, en jy is klaar!

Hierdie gebruiksgemak en kompaktheid van die kodebasis is bereik deur die sleutelverspreidingsfunksionaliteit uit te skakel. Daar is geen komplekse sertifikaatstelsel nie en al hierdie korporatiewe afgryse; kort enkripsiesleutels word baie soos SSH-sleutels versprei. Maar dit stel 'n probleem: WireGuard sal nie so maklik wees om op sommige bestaande netwerke te implementeer nie.

Onder die nadele is dit opmerklik dat WireGuard nie via 'n HTTP-instaanbediener sal werk nie, aangesien slegs die UDP-protokol as 'n vervoer beskikbaar is. Die vraag ontstaan: sal dit moontlik wees om die protokol te verduister? Natuurlik is dit nie die direkte taak van 'n VPN nie, maar vir OpenVPN, byvoorbeeld, is daar maniere om homself as HTTPS te vermom, wat inwoners van totalitêre lande help om die internet ten volle te gebruik.

Bevindinge

Om op te som, dit is 'n baie interessante en belowende projek, jy kan dit reeds op persoonlike bedieners gebruik. Wat is die wins? Hoë werkverrigting op Linux-stelsels, gemak van opstelling en ondersteuning, kompakte en leesbare kodebasis. Dit is egter te vroeg om te haas om 'n komplekse infrastruktuur na WireGuard oor te dra; dit is die moeite werd om te wag vir die insluiting daarvan in die Linux-kern.

Om my (en jou) tyd te bespaar, het ek ontwikkel WireGuard outomatiese installeerder. Met die hulp daarvan kan u 'n persoonlike VPN vir u en u vriende opstel sonder om eers iets daarvan te verstaan.

Bron: will.com

Voeg 'n opmerking