ProHoster > WireGuard će “doći” u Linux kernel - zašto?
WireGuard će “doći” u Linux kernel - zašto?
Krajem srpnja, programeri WireGuard VPN tunela predložili su set zakrpa, koji će njihov softver za VPN tuneliranje učiniti dijelom Linux kernela. No, točan datum realizacije “ideje” ostaje nepoznat. Ispod rezanja ćemo detaljnije govoriti o ovom alatu.
WireGuard je VPN tunel sljedeće generacije koji je stvorio Jason A. Donenfeld, izvršni direktor tvrtke Edge Security. Projekt je razvijen kao pojednostavljeno i brza alternativa OpenVPN-u i IPsec-u. Prva verzija proizvoda sadržavala je samo 4 tisuće redaka koda. Za usporedbu, OpenVPN ima oko 120 tisuća linija, a IPSec - 420 tisuća.
Na prema programera, WireGuard se lako konfigurira i postiže se sigurnost protokola putem dokazanih kriptografskih algoritama. Prilikom promjene mreže: Wi-Fi, LTE ili Ethernet moraju se svaki put ponovno povezati s VPN poslužiteljem. WireGuard poslužitelji ne prekidaju vezu, čak ni ako je korisnik dobio novu IP adresu.
Unatoč činjenici da je WireGuard izvorno dizajniran za Linux kernel, programeri zbrinuta te o prijenosnoj verziji alata za Android uređaje. Aplikacija još nije u potpunosti razvijena, ali je sada možete isprobati. Za ovo vam je potrebno postanite jedan od testera.
В službena dokumentacija (str. 18) primjećuje se da je propusnost WireGuarda četiri puta veća od one OpenVPN-a: 1011 Mbit/s u odnosu na 258 Mbit/s. WireGuard je također ispred standardnog rješenja za Linux IPsec - ima 881 Mbit/s. Također ga nadmašuje u jednostavnosti postavljanja.
Nakon što se ključevi razmijene (VPN veza se inicijalizira slično kao SSH) i veza se uspostavi, WireGuard sam rješava sve ostale zadatke: nema potrebe brinuti se o usmjeravanju, kontroli stanja itd. Dodatni napori konfiguracije bit će samo potrebno ako želite koristiti simetričnu enkripciju.
Kao što napominju urednici xakep.ru, samosklapanje iz izvornih tekstova također je jednostavno. Dovoljno je otvoriti sučelje i generirati javne i privatne ključeve:
$ sudo ip link add dev wg0 type wireguard
$ wg genkey | tee privatekey | wg pubkey > publickey
WireGuard ne koristi sučelje za rad s kriptoprovajderom CryptoAPI. Umjesto toga, koristi se stream šifra ChaCha20, kriptografski imitacijski umetak Poly1305 i vlasničke kriptografske hash funkcije.
U ovom slučaju WireGuard koristi funkciju ioctl za kontrolu I/O (ranije korištena netlink), što kod čini čišćim i jednostavnijim. To možete provjeriti gledanjem konfiguracijski kod.
Planovi programera
Za sada je WireGuard kernel modul izvan stabla. Ali autor projekta je Jason Donenfeld on govori, da je došlo vrijeme za punu implementaciju u Linux kernelu. Zato što je jednostavnije i pouzdanije od ostalih rješenja. Jason u tom smislu podupire čak je i sam Linus Torvalds nazvao WireGuard kod "umjetničkim djelom".
Ali nitko ne govori o točnim datumima uvođenja WireGuarda u kernel. I jedva to će se dogoditi s izdanjem kolovoza Linux kernela 4.18. Međutim, postoji mogućnost da se to dogodi u vrlo skoroj budućnosti: u verziji 4.19 ili 5.0.
Kada se WireGuard doda kernelu, programeri želite finalizirati aplikaciju za Android uređaje i početi pisati aplikaciju za iOS. Također postoje planovi za dovršetak implementacija u Go i Rust te njihov prijenos na macOS, Windows i BSD. Također se planira implementirati WireGuard za "egzotičnije sustave": DPDK, FPGA, kao i mnoge druge zanimljivosti. Svi su navedeni u popis obaveza autori projekta.
PS Još nekoliko članaka s našeg korporativnog bloga: