WireGuard — a jövő csodás VPN-je?

WireGuard — a jövő csodás VPN-je?

Elérkezett az idő, amikor a VPN már nem egy egzotikus eszköz a szakállas rendszergazdák számára. A felhasználóknak különböző feladataik vannak, de a tény az, hogy a VPN most már mindenkinek szükséges.

A jelenlegi VPN megoldások problémája, hogy nehezen állíthatók be, drágán karbantarthatók, valamint tele vannak kétes minőségű örökségkóddal.

Néhány évvel ezelőtt Jason A. Donenfeld, egy kanadai információbiztonsági szakértő úgy döntött, hogy elég ennyiből, és elkezdte a munkát a WireGuard. Jelenleg a WireGuard készül arra, hogy bekerüljön a Linux kernelbe, még a Linus Torvalds és a amerikai szenátusában is elismerést nyert..

A WireGuard állítólagos előnyei más VPN megoldásokkal szemben:

  • Könnyen használható.
  • Modern kriptográfiát használ: Noise protocol framework, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF stb.
  • Kompakt és olvasható kód, könnyebben kutatható sebezhetőségek után.
  • Magas teljesítmény.
  • Világos és átgondolt TC39 Legacy RegExp funkciók a JavaScriptben.

Valóban megtalálták az ezüst lövedéket? Itt az ideje, hogy eltemessük az OpenVPN-t és az IPSec-et? Ezzel foglalkozni szerettem volna, és emellett készítettem egy scriptet a személyes VPN szerver automatikus telepítéséhez..

A működési elvek

A működési elveket körülbelül így lehet leírni:

  • Létrejön a WireGuard interfész, amelyhez hozzárendelnek egy privát kulcsot és egy IP címet. Betöltődnek a többi peer beállításai: azok nyilvános kulcsai, IP címei stb.
  • Minden IP csomag, amely a WireGuard interfészre érkezik, UDP-ba van csomagolva és biztonságosan eljut más peer-ekhez.
  • A kliensek a beállításokban megadják a szerver nyilvános IP címét. A szerver automatikusan észleli a kliensek külső címeit, amikor helyesen hitelesített adatokat kap tőlük.
  • A szerver megváltoztathatja a nyilvános IP címét anélkül, hogy megszakítaná a működést. Ezalatt értesítést küld a csatlakozott klienseknek, és azok frissítik a konfigurációjukat menet közben.
  • Használják a routing koncepciót Cryptokey Routing. A WireGuard a peer nyilvános kulcsa alapján fogadja és küldi a csomagokat. Amikor a szerver helyesen dekódolja a hitelesített csomagot, ellenőrzi annak src mezőjét. Ha az megfelel a konfigurációnak, allowed-ips Hitelesített peer esetén a csomag a WireGuard interfész által kerül feldolgozásra. A kimenő csomag küldésekor a megfelelő eljárás zajlik: a csomag dst mezőjét veszik, és annak alapján választják ki a megfelelő peert, a csomag a saját kulcsával aláírásra kerül, a peer kulcsával titkosítják, majd elküldik a távoli végponthoz.

A WireGuard fő logikája kevesebb mint 4000 kódsorból áll, míg az OpenVPN és az IPSec számos ezer sort tartalmaz. A modern kriptográfiai algoritmusok támogatása érdekében új kriptográfiai API integrálását javasolják a Linux kernelbe. könyvtárból. Jelenleg az ötlet sikerességéről folynak a viták.

Teljesítmény

A teljesítmény max megtartása (az OpenVPN és IPSec-hoz képest) különösen Linux rendszereken lesz nyilvánvaló, mivel a WireGuard itt kernelmodulként valósul meg. Ezenkívül támogatja a macOS-t, Androidot, iOS-t, FreeBSD-t és OpenBSD-t is, de ezek esetén a WireGuard a felhasználói térben működik, ami teljesítménycsökkenést eredményez. A Windows támogatását a közeljövőben ígérik.

Benchmarkeredmények a Microsoft. Mint mindig, a cég fokozatosan vezeti be az új frissítést. Ezért a hír írása idején a Windows frissítési központban nem biztos, hogy elérhető a Chromium-alapú Edge böngésző letöltési ajánlata. A telepítés után a rendszer újraindítást kér.:

WireGuard — a jövő csodás VPN-je?

Saját tapasztalataim alapján

Nem vagyok VPN beállítási szakértő. Egyszer manuálisan állítottam be az OpenVPN-t, ami nagyon fárasztó volt, az IPSec beállításába pedig még csak nem is merültem bele. Túl sok döntést kell hozni, és nagyon könnyű rontani a dolgokat. Ezért mindig készen álló szkripteket használtam a szerver beállításához.

Tehát a WireGuard véleményem szerint tökéletes a felhasználók számára. Mivel az összes alacsony szintű döntést a specifikáció tartalmazza, a tipikus VPN infrastruktúra előkészítése csupán néhány percet vesz igénybe. A konfigurációban szinte lehetetlen hibázni.

A telepítési folyamat részletesen le van írva a hivatalos weboldalon, külön szeretném kiemelni a kiváló támogatást az OpenWRT számára..

A titkosító kulcsokat a 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 hozni a szerver konfigurációt /etc/wireguard/wg0.conf az alábbi tartalommal:

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

és a tunnel elindítása a következő paranccsal: $ sudo wg-quick up wg0 $ sudo systemctl enable wg-quick@wg0.service:

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

A systemd-s rendszerekben ehelyett használható: sudo systemctl start wg-quick@wg0.service.

A kliens gépen konfigurációt kell létrehozni /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 # A szerver külső IP címe
PersistentKeepalive = 25 

És pontosan ugyanígy elindítani a tunnelt:

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

Be kell állítani a NAT-ot a szerveren, hogy az ügyfelek csatlakozni tudjanak az Internethez, és minden készen áll!

Ez a használhatóság és a kódalap tömörsége a kulcsok terjesztésének funkciójának elhagyásával érhető el. Itt nincsenek bonyolult tanúsítványrendszerek és egyéb vállalati borzalmak, a rövid titkosítási kulcsokat hozzávetőlegesen úgy osztják meg, mint az SSH kulcsokat. De emiatt felmerül egy probléma: a WireGuard nem lesz olyan egyszerűen implementálható néhány már létező hálózatban.

A hátrányok közül megemelhető, hogy a WireGuard nem működik HTTP proxy-n keresztül, mivel csak UDP protokollt használ a szállításhoz. Felmerül a kérdés, hogy lehetséges-e a protokoll elrejtése? Természetesen ez nem a VPN közvetlen célja, de például az OpenVPN-nek vannak módjai, hogy HTTPS-ként álcázza magát, ami segíti a totalitárius országok lakóit az Internet teljes használatában.

Következtetések

Összegzésül, ez egy nagyon érdekes és ígéretes projekt, már most is használható személyes szervereken. Milyen előnyökkel jár? Magas teljesítmény Linux rendszereken, könnyű beállítás és támogatás, tömör és olvasható kódalap. Azonban még korai lenne átállni a komplex infrastruktúrát WireGuard-ra, várni kell, amíg bekerül a Linux kernelbe.

A (saját és a ti időtök) megtakarítása érdekében kidolgoztam a WireGuard automatikus telepítőt. Ezzel személyes VPN-t állíthatsz fel magadnak és ismerőseidnek anélkül, hogy bármit is értenél hozzá.

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster