Onko WireGuard tulevaisuuden loistava VPN?

Onko WireGuard tulevaisuuden loistava VPN?

On tullut aika, jolloin VPN ei ole enää mikään eksoottinen parrallisten järjestelmänvalvojien työkalu. Käyttäjillä on erilaisia ​​tehtäviä, mutta tosiasia on, että kaikki tarvitsevat VPN: n.

Nykyisten VPN-ratkaisujen ongelmana on, että niitä on vaikea määrittää oikein, ne ovat kalliita ylläpitää ja ne ovat täynnä kyseenalaista laatua olevaa vanhaa koodia.

Useita vuosia sitten kanadalainen tietoturva-asiantuntija Jason A. Donenfeld päätti, että hän oli saanut tarpeekseen, ja aloitti työskentelyn WireGuard. WireGuardia valmistellaan nyt sisällytettäväksi Linux-ytimeen, ja se on jopa saanut kiitosta Linus Torvalds ja Yhdysvaltain senaatti.

WireGuardin väitetyt edut muihin VPN-ratkaisuihin verrattuna:

  • Helppo käyttää.
  • Käyttää modernia kryptografiaa: Noise protocol framework, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF jne.
  • Kompakti, luettava koodi, jonka haavoittuvuudet on helpompi tutkia.
  • Korkea suorituskyky.
  • Selkeää ja yksityiskohtaista erittely.

Onko hopealuodi löytynyt? Onko aika haudata OpenVPN ja IPSec? Päätin käsitellä tätä, ja samalla tein komentosarja henkilökohtaisen VPN-palvelimen automaattiseen asentamiseen.

Työperiaatteet

Toimintaperiaatteet voidaan kuvata näin:

  • WireGuard-liitäntä luodaan ja sille määritetään yksityinen avain ja IP-osoite. Muiden vertaiskäyttäjien asetukset ladataan: heidän julkiset avaimet, IP-osoitteet jne.
  • Kaikki WireGuard-rajapinnalle saapuvat IP-paketit on kapseloitu UDP- ja toimitetaan turvallisesti muut vertaiset.
  • Asiakkaat määrittävät asetuksissa palvelimen julkisen IP-osoitteen. Palvelin tunnistaa automaattisesti asiakkaiden ulkoiset osoitteet, kun heiltä vastaanotetaan oikein todennettua tietoa.
  • Palvelin voi muuttaa julkista IP-osoitetta keskeyttämättä työtään. Samalla se lähettää hälytyksen yhdistetyille asiakkaille ja he päivittävät kokoonpanonsa lennossa.
  • Käytetään reitityksen käsitettä Cryptokey-reititys. WireGuard hyväksyy ja lähettää paketteja vertaiskumppanin julkisen avaimen perusteella. Kun palvelin purkaa oikein todetun paketin salauksen, sen src-kenttä tarkistetaan. Jos se vastaa kokoonpanoa allowed-ips todennettu vertaiskäyttäjä, WireGuard-liitäntä vastaanottaa paketin. Lähtevää pakettia lähetettäessä tapahtuu vastaava menettely: otetaan paketin dst-kenttä ja sen perusteella valitaan vastaava vertaiskumppani, paketti allekirjoitetaan avaimellaan, salataan vertaisavaimella ja lähetetään etäpäätepisteeseen. .

Kaikki WireGuardin ydinlogiikka vie alle 4 tuhatta koodiriviä, kun taas OpenVPN:ssä ja IPSecissä on satoja tuhansia rivejä. Nykyaikaisten salausalgoritmien tukemiseksi ehdotetaan uuden kryptografisen API:n sisällyttämistä Linux-ytimeen sinkki. Parhaillaan käydään keskustelua siitä, onko tämä hyvä idea.

Suorituskyky

Suurin suorituskykyetu (verrattuna OpenVPN:ään ja IPSeciin) on havaittavissa Linux-järjestelmissä, koska WireGuard on toteutettu siellä ydinmoduulina. Lisäksi tuetaan macOS:tä, Androidia, iOS:ää, FreeBSD:tä ja OpenBSD:tä, mutta niissä WireGuard toimii käyttäjätilassa kaikilla siitä seuraavilla suorituskyvyn seurauksilla. Windows-tuen odotetaan lisäävän lähitulevaisuudessa.

Vertailutulosten kanssa virallinen sivusto:

Onko WireGuard tulevaisuuden loistava VPN?

Omat käyttökokemukseni

En ole VPN-asiantuntija. Asensin kerran OpenVPN:n manuaalisesti ja se oli erittäin tylsää, enkä edes yrittänyt IPSeciä. On liian monia päätöksiä tehtävänä, on erittäin helppoa ampua itseäsi jalkaan. Siksi käytin aina valmiita komentosarjoja palvelimen määrittämiseen.

Joten WireGuard on mielestäni yleensä ihanteellinen käyttäjälle. Kaikki matalan tason päätökset tehdään spesifikaatiossa, joten tyypillisen VPN-infrastruktuurin valmistelu kestää vain muutaman minuutin. Kokoonpanossa on lähes mahdotonta huijata.

Asennusprosessi kuvattu yksityiskohtaisesti virallisella verkkosivustolla, haluaisin erikseen mainita erinomaisen OpenWRT-tuki.

Apuohjelma luo salausavaimet wg:

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

Seuraavaksi sinun on luotava palvelimen kokoonpano /etc/wireguard/wg0.conf jolla on seuraava sisältö:

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

ja nosta tunneli käsikirjoituksen avulla wg-quick:

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

Järjestelmässä, jossa on systemd, voit käyttää tätä sen sijaan sudo systemctl start [email protected].

Luo kokoonpano asiakaskoneella /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 

Ja nosta tunneli samalla tavalla:

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

Jäljelle jää vain määrittää NAT palvelimelle, jotta asiakkaat voivat käyttää Internetiä, ja olet valmis!

Tämä koodikannan helppokäyttöisyys ja kompaktisuus saavutettiin poistamalla avainten jakelutoiminto. Ei ole olemassa monimutkaista varmennejärjestelmää ja kaikkea tätä yrityksen kauhua; lyhyitä salausavaimia jaetaan samalla tavalla kuin SSH-avaimia. Mutta tämä aiheuttaa ongelman: WireGuard ei ole niin helppo ottaa käyttöön joissakin olemassa olevissa verkoissa.

Haitoista on syytä huomata, että WireGuard ei toimi HTTP-välityspalvelimen kautta, koska vain UDP-protokolla on käytettävissä siirtona. Herää kysymys: onko protokollaa mahdollista hämärtää? Tämä ei tietenkään ole VPN:n suora tehtävä, mutta esimerkiksi OpenVPN:ssä on tapoja naamioitua HTTPS:ksi, mikä auttaa totalitaaristen maiden asukkaita käyttämään Internetiä täysimääräisesti.

Tulokset

Yhteenvetona voidaan todeta, että tämä on erittäin mielenkiintoinen ja lupaava projekti, voit jo käyttää sitä henkilökohtaisilla palvelimilla. Mikä on voitto? Korkea suorituskyky Linux-järjestelmissä, helppo asennus ja tuki, kompakti ja luettava koodipohja. On kuitenkin liian aikaista kiirehtiä siirtämään monimutkaista infrastruktuuria WireGuardille, kannattaa odottaa sen sisällyttämistä Linux-ytimeen.

Kehittelin säästääkseni minun (ja sinun) aikaasi WireGuard automaattinen asennusohjelma. Sen avulla voit määrittää henkilökohtaisen VPN:n itsellesi ja ystävillesi edes ymmärtämättä siitä mitään.

Lähde: will.com

Lisää kommentti