ProHoster > WireGuard „príde“ do linuxového jadra – prečo?
WireGuard „príde“ do linuxového jadra – prečo?
Koncom júla navrhli vývojári tunela WireGuard VPN sada náplastí, čím sa ich softvér na tunelovanie VPN stane súčasťou linuxového jadra. Presný dátum realizácie „nápadu“ však zostáva neznámy. Pod rezom budeme hovoriť o tomto nástroji podrobnejšie.
WireGuard je VPN tunel novej generácie, ktorý vytvoril Jason A. Donenfeld, generálny riaditeľ spoločnosti Edge Security. Projekt bol vypracovaný ako zjednodušené a rýchla alternatíva k OpenVPN a IPsec. Prvá verzia produktu obsahovala iba 4 tisíc riadkov kódu. Pre porovnanie, OpenVPN má asi 120 tisíc liniek a IPSec - 420 tisíc.
Na podľa vývojárov, WireGuard sa ľahko konfiguruje a dosahuje sa bezpečnosť protokolu prostredníctvom overených kryptografických algoritmov. Pri zmene siete: Wi-Fi, LTE alebo Ethernet sa musia zakaždým znova pripojiť k serveru VPN. Servery WireGuard neukončujú pripojenie, aj keď používateľ dostal novú IP adresu.
Napriek tomu, že WireGuard bol pôvodne navrhnutý pre jadro Linuxu, vývojári Postarať sa o a o prenosnej verzii nástroja pre zariadenia so systémom Android. Aplikácia ešte nie je úplne vyvinutá, ale už teraz si ju môžete vyskúšať. Na to potrebujete staňte sa jedným z testerov.
В oficiálna dokumentácia (str. 18) je potrebné poznamenať, že priepustnosť WireGuard je štyrikrát vyššia ako priepustnosť OpenVPN: 1011 Mbit/s oproti 258 Mbit/s, v tomto poradí. WireGuard predbieha aj štandardné riešenie pre Linux IPsec – má 881 Mbit/s. Prevyšuje ho aj jednoduchosťou nastavenia.
Po výmene kľúčov (pripojenie VPN je inicializované podobne ako SSH) a nadviazaní spojenia zvládne WireGuard všetky ostatné úlohy sám: nie je potrebné sa starať o smerovanie, kontrolu stavu atď. potrebné, ak chcete použiť symetrické šifrovanie.
Ako poznamenávajú redaktori xakep.ru, jednoduchá je aj vlastná montáž zo zdrojových textov. Stačí otvoriť rozhranie a vygenerovať verejné a súkromné kľúče:
$ sudo ip link add dev wg0 type wireguard
$ wg genkey | tee privatekey | wg pubkey > publickey
WireGuard nepoužíva rozhranie pre prácu s poskytovateľom kryptomien CryptoAPI. Namiesto toho sa používa prúdová šifra ChaCha20, kryptografický imitácia vložky Poly1305 a proprietárne kryptografické hašovacie funkcie.
V tomto prípade WireGuard používa funkciu ioctl na ovládanie I/O (predtým používané netlink), vďaka čomu je kód čistejší a jednoduchší. Môžete si to overiť pohľadom na konfiguračný kód.
Developerské plány
Momentálne je WireGuard modul jadra mimo stromu. Autorom projektu je ale Jason Donenfeld говорит, že nastal čas na plnú implementáciu v jadre Linuxu. Pretože je to jednoduchšie a spoľahlivejšie ako iné riešenia. Jason v tomto smere podporuje dokonca aj sám Linus Torvalds označil kód WireGuard za „umelecké dielo“.
Ale nikto nehovorí o presných dátumoch zavedenia WireGuard do jadra. A ťažko toto sa stane s vydaním augustového linuxového jadra 4.18. Existuje však možnosť, že sa tak stane vo veľmi blízkej budúcnosti: vo verzii 4.19 alebo 5.0.
Keď sa do jadra pridá WireGuard, vývojári chcieť dokončite aplikáciu pre zariadenia Android a začnite písať aplikáciu pre iOS. Plánuje sa aj dokončenie implementácií v Go a Rust a ich portovanie na macOS, Windows a BSD. Plánuje sa tiež implementácia WireGuard pre „exotickejšie systémy“: DPDK, FPGA, ako aj mnoho iných zaujímavostí. Všetky sú uvedené v zoznam úloh autorov projektu.
PS Niekoľko ďalších článkov z nášho firemného blogu: