ProHoster > WireGuard „přijde“ do linuxového jádra – proč?
WireGuard „přijde“ do linuxového jádra – proč?
Na konci července navrhli vývojáři tunelu WireGuard VPN sada patchů, díky čemuž bude jejich software pro tunelování VPN součástí linuxového jádra. Přesné datum realizace „nápadu“ však zůstává neznámé. Pod řezem si povíme o tomto nástroji podrobněji.
WireGuard je VPN tunel nové generace vytvořený Jasonem A. Donenfeldem, generálním ředitelem Edge Security. Projekt byl vypracován jako zjednodušený a rychlá alternativa k OpenVPN a IPsec. První verze produktu obsahovala pouze 4 tisíce řádků kódu. Pro srovnání, OpenVPN má asi 120 tisíc linek a IPSec - 420 tisíc.
Na Slova vývojářům, WireGuard se snadno konfiguruje a je dosaženo zabezpečení protokolu pomocí osvědčených kryptografických algoritmů. Při změně sítě: Wi-Fi, LTE nebo Ethernet se musí pokaždé znovu připojit k serveru VPN. Servery WireGuard neukončí připojení, i když uživatel obdržel novou IP adresu.
Navzdory skutečnosti, že WireGuard byl původně navržen pro linuxové jádro, vývojáři postaráno a o přenosné verzi nástroje pro zařízení Android. Aplikace ještě není plně vyvinuta, ale můžete si ji vyzkoušet již nyní. K tomu potřebujete staňte se jedním z testerů.
В oficiální dokumentace (str. 18) je třeba poznamenat, že propustnost WireGuard je čtyřikrát vyšší než propustnost OpenVPN: 1011 Mbit/s oproti 258 Mbit/s. WireGuard je také před standardním řešením pro Linux IPsec – má 881 Mbit/s. Předčí ho i v jednoduchosti nastavení.
Po výměně klíčů (připojení VPN je inicializováno podobně jako SSH) a navázání spojení zvládne WireGuard všechny ostatní úkoly sám: není třeba se starat o směrování, kontrolu stavu atd. Další konfigurační úsilí bude pouze vyžadováno, pokud chcete použít symetrické šifrování.
Jak poznamenávají redaktoři xakep.ru, samosestavení ze zdrojových textů je také snadné. Stačí otevřít rozhraní a vygenerovat veřejné a soukromé klíče:
$ sudo ip link add dev wg0 type wireguard
$ wg genkey | tee privatekey | wg pubkey > publickey
WireGuard nepoužívá rozhraní pro práci s poskytovatelem kryptoměn Cryptoapi. Místo toho se používá proudová šifra ChaCha20, kryptografický imitace vložky Poly1305 a proprietární kryptografické hashovací funkce.
V tomto případě WireGuard používá k ovládání I/O funkci ioctl (dříve používaná netlink), díky čemuž je kód čistší a jednodušší. Můžete si to ověřit pohledem na konfigurační kód.
Developerské plány
Prozatím je WireGuard modul jádra mimo strom. Autorem projektu je ale Jason Donenfeld říká, že nadešel čas pro plnou implementaci v jádře Linuxu. Protože je jednodušší a spolehlivější než jiná řešení. Jason v tomto ohledu podporuje dokonce i sám Linus Torvalds označil kód WireGuard za „umělecké dílo“.
Nikdo ale nemluví o přesných datech zavedení WireGuard do jádra. A stěží to se stane s vydáním srpnového linuxového jádra 4.18. Existuje však možnost, že se tak stane ve velmi blízké budoucnosti: ve verzi 4.19 nebo 5.0.
Když je do jádra přidán WireGuard, vývojáři chcete dokončit aplikaci pro zařízení Android a začít psát aplikaci pro iOS. Plánuje se také dokončení implementací v Go a Rust a jejich portování na macOS, Windows a BSD. Plánuje se také implementace WireGuard pro „exotičtější systémy“: DPDK, FPGA, stejně jako mnoho dalších zajímavostí. Všechny jsou uvedeny v seznam úkolů autory projektu.
PS Několik dalších článků z našeho firemního blogu: