A WireGuard a jövő nagyszerű VPN-je?

A WireGuard a jövő nagyszerű VPN-je?

Eljött az idő, amikor a VPN már nem a szakállas rendszergazdák egzotikus eszköze. A felhasználóknak különböző feladataik vannak, de tény, hogy mindenkinek szüksége van VPN-re.

A jelenlegi VPN-megoldások problémája az, hogy nehéz helyesen konfigurálni, költséges a karbantartásuk, és tele vannak megkérdőjelezhető minőségű örökölt kóddal.

Néhány évvel ezelőtt a kanadai információbiztonsági szakértő, Jason A. Donenfeld úgy döntött, hogy elege van ebből, és elkezdett dolgozni WireGuard. A WireGuard most készül a Linux kernelbe való felvételére, és még dicséretet is kapott tőle Linus Torvalds és Amerikai Szenátus.

A WireGuard állítólagos előnyei más VPN-megoldásokhoz képest:

  • Könnyen kezelhető.
  • Modern kriptográfiát használ: Zaj protokoll keretrendszer, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF stb.
  • Kompakt, olvasható kód, könnyebben kivizsgálható a sebezhetőség.
  • Nagy teljesítményű.
  • Világos és kidolgozott leírás.

Találtak egy ezüstgolyót? Ideje eltemetni az OpenVPN-t és az IPSec-et? Elhatároztam, hogy ezzel foglalkozom, és ezzel egy időben meg is tettem szkript egy személyes VPN-kiszolgáló automatikus telepítéséhez.

Munka alapelvei

A működési elvek a következőképpen írhatók le:

  • Létrejön egy WireGuard interfész, és hozzá van rendelve egy privát kulcs és IP-cím. A többi társ beállításai betöltődnek: nyilvános kulcsaik, IP-címeik stb.
  • A WireGuard interfészre érkező összes IP-csomag UDP-be van tokozva, ill biztonságosan szállítják más társaik.
  • Az ügyfelek a beállításokban adják meg a szerver nyilvános IP-címét. A szerver automatikusan felismeri a kliensek külső címeit, amikor megfelelően hitelesített adatok érkeznek tőlük.
  • A szerver megváltoztathatja a nyilvános IP-címet anélkül, hogy megszakítaná munkáját. Ezzel egyidejűleg riasztást küld a csatlakoztatott ügyfeleknek, és menet közben frissítik konfigurációjukat.
  • Az útválasztás fogalmát használják Cryptokey Routing. A WireGuard a partner nyilvános kulcsa alapján fogadja és küldi el a csomagokat. Amikor a kiszolgáló visszafejt egy megfelelően hitelesített csomagot, az src mező ellenőrzésre kerül. Ha megfelel a konfigurációnak allowed-ips hitelesített peer, a csomagot a WireGuard interfész fogadja. Kimenő csomag küldésekor a megfelelő eljárás történik: a csomag dst mezőjét veszik, és ennek alapján kiválasztják a megfelelő partnert, a csomagot aláírják a kulcsával, titkosítják a partner kulcsával és elküldik a távoli végpontra. .

A WireGuard összes alapvető logikája kevesebb, mint 4 ezer sornyi kódot foglal el, míg az OpenVPN és az IPSec több százezer sorral rendelkezik. A modern kriptográfiai algoritmusok támogatása érdekében javasolt egy új kriptográfiai API beépítése a Linux kernelbe cink. Jelenleg vita folyik arról, hogy ez jó ötlet-e.

termelékenység

A maximális teljesítményelőny (az OpenVPN-hez és az IPSec-hez képest) Linux rendszereken lesz észrevehető, mivel ott a WireGuard kernelmodulként van implementálva. Emellett a macOS, az Android, az iOS, a FreeBSD és az OpenBSD támogatott, de ezekben a WireGuard a felhasználói térben fut, az ebből következő teljesítménykövetkezményekkel együtt. A Windows támogatása a közeljövőben várható.

Összehasonlítási eredmények ezzel hivatalos honlapja:

A WireGuard a jövő nagyszerű VPN-je?

Használati tapasztalatom

Nem vagyok VPN szakértő. Egyszer manuálisan beállítottam az OpenVPN-t, és nagyon fárasztó volt, és az IPSec-et meg sem próbáltam. Túl sok döntést kell meghozni, nagyon könnyű lábon lőni magát. Ezért mindig kész szkripteket használtam a szerver beállításához.

Tehát a WireGuard az én szempontomból általában ideális a felhasználó számára. Minden alacsony szintű döntés a specifikációban történik, így egy tipikus VPN-infrastruktúra előkészítése csak néhány percet vesz igénybe. A konfigurációban szinte lehetetlen csalni.

Telepítési folyamat részletesen leírva a hivatalos weboldalon külön szeretném megjegyezni a kiváló OpenWRT támogatás.

A titkosítási kulcsokat a segédprogram állítja elő wg:

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

Ezután létre kell hoznia egy szerver konfigurációt /etc/wireguard/wg0.conf a következő tartalommal:

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

és emeld fel az alagutat egy forgatókönyvvel wg-quick:

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

A systemd-vel rendelkező rendszereken ezt is használhatja sudo systemctl start [email protected].

Az ügyfélgépen hozzon létre egy konfigurációt /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 

És emelje fel az alagutat ugyanúgy:

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

Már csak be kell állítani a NAT-ot a szerveren, hogy a kliensek hozzáférhessenek az Internethez, és kész!

A kódbázisnak ezt a könnyű használhatóságát és kompaktságát a kulcselosztási funkciók megszüntetésével érték el. Nincs bonyolult tanúsítványrendszer és mindez a vállalati borzalom; a rövid titkosítási kulcsokat az SSH-kulcsokhoz hasonlóan osztják el. Ez azonban problémát jelent: a WireGuard-ot nem lesz olyan könnyű megvalósítani néhány meglévő hálózaton.

A hátrányok között érdemes megjegyezni, hogy a WireGuard nem működik HTTP-proxyn keresztül, mivel csak az UDP protokoll érhető el átvitelként. Felmerül a kérdés: sikerül-e elhomályosítani a protokollt? Ez persze nem a VPN közvetlen feladata, de például az OpenVPN esetében is van mód arra, hogy HTTPS-nek álcázza magát, ami segít a totalitárius országok lakosainak teljes körűen használni az internetet.

Álláspontja

Összefoglalva, ez egy nagyon érdekes és ígéretes projekt, személyes szervereken már használható. Mi a profit? Nagy teljesítmény Linux rendszereken, egyszerű beállítás és támogatás, kompakt és olvasható kódbázis. Egy bonyolult infrastruktúra WireGuard-ba való átvitelével azonban még korai sietni, érdemes megvárni, hogy bekerüljön a Linux kernelbe.

Az én (és a te) időmet spórolandó fejlesztettem WireGuard automatikus telepítő. Segítségével személyes VPN-t állíthat be magának és barátainak anélkül, hogy bármit is értene róla.

Forrás: will.com

Hozzászólás