WireGuard sa „dostane“ do jadra Linux – prečo?

Na konci júla vývojári VPN tunela WireGuard navrhli súbor opráv, ktoré urobia ich softvér na organizáciu VPN tunelov súčasťou jadra Linux. Presný dátum realizácie tejto „myšlienky“ zostáva zatiaľ neznámy. Pod katom sa budeme o tomto nástroji rozprávať podrobnejšie.

WireGuard sa „dostane“ do jadra Linux – prečo?
/ фото Tambako The Jaguar CC

Stručne o projekte

WireGuard je VPN tunel novej generácie, vytvorený Jasonom Donenfeldom, šéfom spoločnosti Edge Security. Projekt bol vyvíjaný ako zjednodušená a rýchla alternatíva k OpenVPN a IPsec. Prvá verzia produktu obsahovala len 4 tisíc riadkov kódu. Pre porovnanie, OpenVPN má približne 120 tisíc riadkov a IPSec okolo 420 tisíc.

V porovnaní súhrnu Na rozdiel od mnohých iných vývojárov, WireGuard je ľahko nastaviť a bezpečnosť protokolu sa dosahuje vďaka overeným kryptografickým algoritmom.. Pri zmene siete: Wi-Fi, LTE alebo Ethernet je potrebné sa zakaždým znovu pripojiť k VPN serveru. Servery WireGuard však neprerušujú pripojenie, aj keď používateľ dostane novú IP adresu.

Napriek tomu, že WireGuard je pôvodne určený pre jadro Linux, vývojári mysleli aj na prenosnú verziu nástroja pre zariadenia so systémom Android. Aplikácia zatiaľ nie je dokončená, ale môžete si ju vyskúšať už teraz. Na to je potrebné stať sa jedným z testerov..

Celkovo má WireGuard pomerne veľkú popularitu a bol implementovaný niekoľkými VPN poskytovateľmi, ako napríklad Mullvad a AzireVPN. Na internete je uverejnené veľké množstvo návodov na nastavenie tohto riešenia. Napríklad, sú tu návody, ktoré vytvorili používatelia, a sú tu návody, pripravené autormi projektu..

Technické podrobnosti

V oficiálnej dokumentácii (str. 18) uvádza, že priepustnosť WireGuard je štyrikrát vyššia ako u OpenVPN: 1011 Mbit/s oproti 258 Mbit/s. WireGuard prekonáva aj štandardné riešenie pre Linux, IPsec, ktoré má 881 Mbit/s. Prekonáva ho aj v jednoduchosti nastavenia.

Po výmene kľúčov (VPN pripojenie sa inicializuje takmer ako v SSH) a nadviazaní spojenia si WireGuard sám rieši všetky ostatné úlohy: nie je potrebné sa obávať smerovania, kontroly stavu a pod. Dodatočné úsilie na nastavenie bude potrebné len v prípade, že chcete využiť symetrické šifrovanie.

WireGuard sa „dostane“ do jadra Linux – prečo?
/ фото Anders Hojbjerg CC

Na inštaláciu budete potrebovať distribúciu s jadrom Linux „staršia“ ako 4.1. Tú môžete nájsť v repozitároch hlavných distribúcií Linux.

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

Ako uvádzajú redaktori xakep.ru, samostatná zostava z pôvodných textov nie je zložitá. Stačí spustiť rozhranie a vygenerovať otvorené a uzavreté kľúče:

$ sudo ip link add dev wg0 type wireguard
$ wg genkey | tee privatekey | wg pubkey > publickey

WireGuard nepoužíva rozhranie na prácu s kryptoproviderom CryptoAPI. Namiesto neho sa používa prúdový šifrovací algoritmus ChaCha20, kryptografická imitačná funkcia Poly1305 a vlastné kryptografické hash funkcie.

Tajný kľúč sa generuje s použitím protokolu Diffie-Hellman na báze eliptickej krivky Curve25519. Pri hashovaní sa využívajú hash funkcie BLAKE2 a SipHash. Vďaka formátu časových značiek TAI64N protokol vylučuje paket s nižšou hodnotou časovej značky, čím predchádza DoS- a replay útokom.

Pri tom WireGuard využíva funkciu ioctl na kontrolu vstupu/výstupu (predtým sa používal Netlink), čo robí kód čistejším a jednoduchším. Uistite sa o tom pozretím na kód konfigurácie.

Plány vývojárov

Pretože zatiaľ je WireGuard dodatočný modul jadra. Ale autor projektu Jason Donenfeld hovorí, že už nastal čas na plnohodnotnú implementáciu v jadre Linux. Pretože je to jednoduchšie a spoľahlivejšie ako iné riešenia. Jasona v tomto smere podporuje požiadal aj sám Linus Torvalds – označil kód WireGuard za "dielo umenia".

Ale o presných dátumoch zavedenia WireGuard do jadra zatiaľ nikto nehovorí. A nepravdepodobne sa to stane s uvoľnením augustového jadra Linux 4.18. Avšak existuje pravdepodobnosť, že sa to stane v najbližšej budúcnosti: v verzii 4.19 alebo 5.0.

Keď bude WireGuard pridaný do jadra, vývojári chcú vylepšiť aplikáciu pre zariadenia Android a začať písať aplikáciu pre iOS. Okrem toho sa plánuje dokončiť implementáciu na Go a Rust a preniesť ich na macOS, Windows a BSD. Plánuje sa aj realizácia WireGuard pre viac "exotických systémov": DPDK, FPGA, ako aj množstvo ďalších zaujímavých vecí. Všetky sú uvedené v to-do zozname autorov projektu.

P.S. Ešte niekoľko článkov z nášho firemného blogu:

Hlavným smerom našej činnosti je poskytovanie cloudových služieb:

Virtuálna infraštruktúra (IaaS) | Hosting v súlade s PCI DSS | Cloud FZ-152 | SAP hosting | Virtuálna SÚS | Šifrovanie údajov v cloude | Cloudové úložisko

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster