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.
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ó.
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.
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.