WireGuard „přijde“ do jádra Linux – proč?

Na konci července vývojáři VPN tunelu WireGuard navrhli sada patchů, které učiní jejich software pro organizaci VPN tunelů součástí jádra Linux. Přesný termín realizace „nápadu“ však zatím zůstává neznámý. Pod článkem si o tomto nástroji povíme více.

WireGuard „přijde“ do jádra Linux – proč?
/ фото Tambako The Jaguar CC

Stručně o projektu

WireGuard je VPN tunel nové generace, vytvořený Jasonem Donenfeldem, šéfem společnosti Edge Security. Projekt byl vyvinut jako jednoduchá a rychlá alternativa k OpenVPN a IPsec. První verze produktu obsahovala pouze 4 tisíce řádků kódu. Pro srovnání, OpenVPN má přibližně 120 tisíc řádků, zatímco IPSec - 420 tisíc.

Podle slov vývojáři, WireGuard se snadno nastavuje, a bezpečnost protokolu je zajištěna pomocí osvědčených kryptografických algoritmů. Při změně sítě: Wi-Fi, LTE nebo Ethernet je třeba se vždy znovu připojit k VPN serveru. Servery WireGuard však nepřerušují spojení, i když uživatel získal novou IP adresu.

I když je WireGuard od začátku navržen pro Linux jádro, vývojáři mysleli i na přenosnou verzi nástroje pro zařízení Android. Aplikace zatím není dokončená, ale lze ji již nyní vyzkoušet. K tomu je potřeba stát se jedním z testerů.

Celkově WireGuard si získává poměrně velkou popularitu a dokonce byl realizováno několika VPN poskytovateli, jako jsou Mullvad a AzireVPN. V síti bylo publikováno velké množství návodů na nastavení tohoto řešení. Například, existují průvodci, které vytvářejí uživatelé, a jsou také průvodci, připravené autory projektu.

Technické detaily

V oficiální dokumentaci (str. 18) uvádí, že propustnost WireGuard je čtyřikrát vyšší než OpenVPN: 1011 Mbit/s oproti 258 Mbit/s. WireGuard také překonává standardní řešení pro Linux IPsec – to má 881 Mbit/s. Předčí ho také v jednoduchosti nastavení.

Po výměně klíčů (VPN připojení se inicializuje téměř jako v SSH) a vytvoření spojení WireGuard samo řeší všechny ostatní úkoly: není nutné se starat o směrování, monitorování stavu atd. Dodatečné úsilí na nastavení bude potřeba jen v případě, že chcete využít symetrické šifrování.

WireGuard „přijde“ do jádra Linux – proč?
/ фото Anders Hojbjerg CC

K instalaci bude potřeba distribuce s jádrem Linux „starším“ než 4.1. Můžete ji najít v repozitářích hlavních distribucí Linux.

$ sudo add-apt-repository ppa:hda-me/wireguard
$ sudo apt update
$ sudo apt install wireguard-dkms wireguard-tools

Jak poznamenávají redaktoři xakep.ru, samostatná sestava ze zdrojových textů také není složitá. Stačí spustit rozhraní a vygenerovat otevřené 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 kryptografickým poskytovatelem CryptoAPI. Místo něj se používá proudový šifrovací algoritmus ChaCha20, kryptografická makrosyntaxe Poly1305 a vlastní kryptografické hashovací funkce.

Tajný klíč se generuje pomocí protokolu Diffie-Hellman na základě eliptické křivky Curve25519. Při hashování se využívají hashovací funkce BLAKE2 a SipHash.Díky formátu časových razítek TAI64N protokol odmítá pakety s nižší hodnotou timestamp, čímž zabraňuje DoS- a replay-útokům..

Přitom WireGuard využívá funkci ioctl pro kontrolu vstupu/výstupu (dříve se používalo Netlink), což činí kód čistější a jednodušší. O tom se můžete přesvědčit, když nahlédnete do konfiguračního kódu..

Plány vývojářů

Zatím je WireGuard modul jádra mimo strom. Ale autor projektu Jason Donenfeld říká, že už nastal čas na plnohodnotnou implementaci v jádře Linuxu. Protože je jednodušší a spolehlivější než jiná řešení. Jasona v tomto ohledu srcset dokonce sám Linus Torvalds — nazval kód WireGuard „uměleckým dílem“.

Ale o přesných datech zavádění WireGuard do jádra zatím nikdo nemluví. A to sotva se stane s vydáním srpnového jádra Linuxu 4.18. Nicméně je pravděpodobné, že k tomu dojde v nejbližší budoucnosti: ve verzi 4.19 nebo 5.0.

Když bude WireGuard přidán do jádra, vývojáři chtějí vylepšit aplikaci pro zařízení Android a začít psát aplikaci pro iOS. Kromě toho se plánuje dokončení implementací v Go a Rust a přenést je na macOS, Windows a BSD. Také se plánuje implementace WireGuard pro více „exotických systémů“: DPDK, FPGA, a také mnoho dalších zajímavých věcí. Všechny jsou uvedeny v to-do seznamu autorů projektu.

P.S. Ještě několik článků z našeho firemního blogu:

Hlavním směrem naší činnosti je poskytování cloudových služeb:

Virtuální infrastruktura (IaaS) | PCI DSS hosting | Cloud FZ-152 | SAP hosting | Virtuální úložiště | Šifrování dat v cloudu | Cloudové úložiště

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster