Is WireGuard de grutte VPN fan 'e takomst?

Is WireGuard de grutte VPN fan 'e takomst?

De tiid is kommen dat VPN net mear in eksoatysk ark is fan bearded systeembehearders. Brûkers hawwe ferskillende taken, mar it feit is dat elkenien in VPN nedich hat.

It probleem mei hjoeddeistige VPN-oplossingen is dat se lestich binne om goed te konfigurearjen, djoer om te ûnderhâlden, en binne fol mei legacy-koade fan twifele kwaliteit.

In pear jier lyn besleat de Kanadeeske spesjalist foar ynformaasjefeiligens Jason A. Donenfeld dat hy der genôch fan hie en begûn te wurkjen oan WireGuard. WireGuard wurdt no taret foar opname yn 'e Linux-kernel en hat sels lof krigen fan Linus Torvalds en yn Amerikaanske Senaat.

Bewearde foardielen fan WireGuard boppe oare VPN-oplossingen:

  • Maklik te brûken.
  • Brûkt moderne kryptografy: Noise protocol framework, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF, ensfh.
  • Kompakte, lêsbere koade, makliker te ûndersiikjen foar kwetsberens.
  • Hege prestaasjes.
  • Dúdlik en útwurke spesifikaasje.

Is der in sulveren kûgel fûn? Is it tiid om OpenVPN en IPSec te begraven? Ik besleat om te gean mei dit, en tagelyk die ik skript foar it automatysk ynstallearjen fan in persoanlike VPN-tsjinner.

Wurkprinsipes

De wurkingsprinsipes kinne sa sa beskreaun wurde:

  • In WireGuard-ynterface wurdt makke en in privee kaai en IP-adres wurde dêroan tawiisd. De ynstellings fan oare peers wurde laden: har iepenbiere kaaien, IP-adressen, ensfh.
  • Alle IP-pakketten dy't oankomme by de WireGuard-ynterface binne ynkapsele yn UDP en feilich levere oare leeftydsgenoaten.
  • Kliïnten spesifisearje it iepenbiere IP-adres fan 'e tsjinner yn' e ynstellings. De tsjinner herkent automatysk de eksterne adressen fan kliïnten as korrekt authentisearre gegevens fan har wurde ûntfongen.
  • De tsjinner kin it iepenbiere IP-adres feroarje sûnder syn wurk te ûnderbrekken. Tagelyk sil it in warskôging stjoere nei ferbûne kliïnten en se sille har konfiguraasje op 'e flecht bywurkje.
  • It konsept fan routing wurdt brûkt Cryptokey Routing. WireGuard akseptearret en ferstjoert pakketten basearre op de iepenbiere kaai fan 'e peer. As de tsjinner in goed authentisearre pakket ûntsiferet, wurdt it src-fjild kontrolearre. As it oerienkomt mei de konfiguraasje allowed-ips authentisearre peer, it pakket wurdt ûntfongen troch de WireGuard-ynterface. By it ferstjoeren fan in útgeand pakket komt de oerienkommende proseduere foar: it dst-fjild fan it pakket wurdt nommen en op basis dêrfan wurdt de oerienkommende peer selektearre, it pakket wurdt ûndertekene mei syn kaai, fersifere mei de peer-kaai en stjoerd nei it einpunt op ôfstân .

Alle kearnlogika fan WireGuard nimt minder dan 4 tûzen rigels koade op, wylst OpenVPN en IPSec hûnderttûzenen rigels hawwe. Om moderne kryptografyske algoritmen te stypjen, wurdt foarsteld om in nije kryptografyske API op te nimmen yn 'e Linux kernel Sink. Der is op dit stuit in diskusje oer de fraach oft dit in goed idee is.

Produktiviteit

De maksimale prestaasjesfoardiel (yn ferliking mei OpenVPN en IPSec) sil op Linux-systemen merkber wêze, om't WireGuard dêr as kernelmodule wurdt ymplementearre. Derneist wurde macOS, Android, iOS, FreeBSD en OpenBSD stipe, mar dêryn rint WireGuard yn brûkersromte mei alle konsekwinsjes foar prestaasjes. Windows-stipe wurdt ferwachte dat se yn 'e heine takomst wurde tafoege.

Benchmark resultaten mei offisjele webstee:

Is WireGuard de grutte VPN fan 'e takomst?

Myn gebrûk ûnderfining

Ik bin gjin VPN-ekspert. Ik haw OpenVPN ienris hân ynsteld en it wie heul ferfeelsum, en ik haw IPSec net iens besocht. D'r binne tefolle besluten om te nimmen, it is heul maklik om josels yn 'e foet te sjitten. Dêrom haw ik altyd klearmakke skripts brûkt om de tsjinner te konfigurearjen.

Dat, WireGuard, út myn eachpunt, is oer it algemien ideaal foar de brûker. Alle besluten op leech nivo wurde makke yn 'e spesifikaasje, dus it proses fan it tarieden fan in typyske VPN-ynfrastruktuer duorret mar in pear minuten. It is hast ûnmooglik om te cheat yn 'e konfiguraasje.

Ynstallaasjeproses yn detail beskreaun op 'e offisjele webside, Ik soe graach apart note de treflik OpenWRT-stipe.

Fersiferingskaaien wurde oanmakke troch it hulpprogramma wg:

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

Folgjende moatte jo in serverkonfiguraasje oanmeitsje /etc/wireguard/wg0.conf mei de folgjende ynhâld:

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

en ferheegje de tunnel mei in skript wg-quick:

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

Op systemen mei systemd kinne jo dit ynstee brûke sudo systemctl start [email protected].

Op 'e kliïntmasjine meitsje in konfiguraasje /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 ferheegje de tunnel op deselde manier:

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

Alles wat oerbliuwt is om NAT op 'e tsjinner te konfigurearjen sadat kliïnten tagong krije ta it ynternet, en jo binne klear!

Dit gemak fan gebrûk en kompaktheid fan 'e koadebasis waard berikt troch it eliminearjen fan de funksjonaliteit fan' e kaaiferdieling. D'r is gjin kompleks sertifikaatsysteem en al dizze horror foar bedriuwen; koarte fersiferingskaaien wurde ferspraat folle as SSH-kaaien. Mar dit soarget foar in probleem: WireGuard sil net sa maklik wêze om te ymplementearjen op guon besteande netwurken.

Under de neidielen is it de muoite wurdich op te merken dat WireGuard net wurket fia in HTTP-proxy, om't allinich it UDP-protokol beskikber is as ferfier. De fraach ûntstiet: sil it mooglik wêze om it protokol te fertsjusteren? Fansels is dit net de direkte taak fan in VPN, mar foar OpenVPN, bygelyks, binne d'r manieren om himsels te ferklaaien as HTTPS, wat helpt ynwenners fan totalitêre lannen it ynternet folslein te brûken.

befinings

Om gearfetsje, dit is in heul ynteressant en belofte projekt, jo kinne it al brûke op persoanlike servers. Wat is de winst? Hege prestaasjes op Linux-systemen, gemak fan opset en stipe, kompakte en lêsbere koadebasis. It is lykwols te betiid om te haasten om in komplekse ynfrastruktuer oer te bringen nei WireGuard; it is it wurdich te wachtsjen op syn opnimmen yn 'e Linux-kernel.

Om myn (en dyn) tiid te bewarjen, haw ik ûntwikkele WireGuard automatyske ynstallearder. Mei har help kinne jo in persoanlike VPN foar josels en jo freonen ynstelle sûnder der sels wat oer te begripen.

Boarne: www.habr.com

Add a comment