WireGuard »pride« v jedro Linuxa — zakaj?

Na koncu julija so razvijalci VPN-tunela WireGuard predlagali sklop popravkov, ki bo njihova programska oprema za organizacijo VPN-tunelov postala del jedra Linuxa. Vendar pa točen datum realizacije "ideje" ostaja neznan. Podrobneje o tem orodju bomo govorili spodaj.

WireGuard »pride« v jedro Linuxa — zakaj?
/ фото Tambako The Jaguar CC

Kratko o projektu

WireGuard je VPN-tunel nove generacije, ki ga je ustvaril Jason Donenfeld, vodja podjetja Edge Security. Projekt se je razvijal kot poenostavljena in hitra alternativa OpenVPN in IPsec. Prva različica izdelka je vsebovala le 4000 vrstic kode. Za primerjavo, OpenVPN vsebuje okoli 120.000 vrstic, IPsec pa 420.000.

Po besedah Razvijalci WireGuard so enostavno konfigurirali, varnost protokola pa je dosežena z zaupanja vrednimi kriptografskimi algoritmi.. Ob preklopu omrežja: Wi-Fi, LTE ali Ethernet, se je treba vsakič ponovno povezati z VPN strežnikom. Strežniki WireGuard pa ne prekinjajo povezave, tudi če uporabnik dobi nov IP naslov.

Kljub temu da je WireGuard prvotno zasnovan za jedro Linux, so razvijalci poskrbeli tudi za prenosno različico orodja za naprave Android. Aplikacija še ni popolna, vendar jo lahko preizkusite že zdaj. Za to morate postati eden od testerjev..

Na splošno uživa WireGuard precejšnjo priljubljenost in je bil je realiziran vključen pri nekaterih VPN ponudnikih, kot sta Mullvad in AzireVPN. Na spletu je objavljenih veliko število vodnikov za nastavitev tega rešitev. Na primer, obstajajo vodiči, ki jih ustvarjajo uporabniki, ter vodiči, pripravljeni od avtorjev projekta..

Tehnološke podrobnosti

V uradni dokumentaciji (str.18) so navedle, da je prepustnost pri WireGuard štirikrat višja kot pri OpenVPN: 1011 Mbit/s proti 258 Mbit/s. WireGuard prekaša tudi standardno rešitev za Linux IPsec - ta dosega 881 Mbit/s. Po enostavnosti nastavitve ga tudi prekaša.

Po izmenjavi ključev (VPN povezava se začenja skoraj kot pri SSH) in vzpostavitvi povezave WireGuard samostojno reši vse druge naloge: ni potrebe, da bi se skrbeli za usmerjanje, preverjanje stanja itd. Dodatna prizadevanja za nastavitev so potrebna le, če želite uporabiti simetrično šifriranje.

WireGuard »pride« v jedro Linuxa — zakaj?
/ фото Anders Hojbjerg CC

Za namestitev potrebujete distribucijo z jedrom Linux, ki je "starejše" od 4.1. To lahko najdete v repozitorijih glavnih distribucij Linux.

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

Kot so zapisali uredniki xakep.ru, samostojna kompilacija iz izvorne kode ni zapletena. Dovolj je vzpostaviti vmesnik in ustvariti javni ter zasebni ključ:

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

WireGuard ne uporablja vmesnik za delo s kriptografi CryptoAPI. Namesto njega se uporablja tokovni šifrant ChaCha20, kriptografski vstavitev posrednika Poly1305 in lastne kriptografske funkcije hasha.

Zasebni ključ se generira z uporabo Diffie-Hellman protokola na osnovi eliptične krivulje Curve25519. Pri hasheranju se uporabljajo funkcije hasha BLAKE2 in SipHash. Zaradi formata časovnega žiga TAI64N protokol zavrže pakete s manjšim časovnim žigom, s čimer preprečuje DoS- in napade ponovnega predvajanja.

Pri tem WireGuard uporablja funkcijo ioctl za nadzor vhodno/izhodnih funkcij (prej se je uporabljal Netlink), kar naredi kodo bolj čisto in preprosto. Preverite lahko to tako, da pokukate v kodo konfiguracije.

Načrti razvijalcev

Trenutno je WireGuard zunaj drevesa modul jedra. Ampak avtor projekta Jason Donenfeld kaže, da je že prišel čas za popolno implementacijo v jedro Linuxa. Ker je preprostejši in zanesljivejši od drugih rešitev. Jasona v tem pogledu podpira je celo sam Linus Torvalds — imenoval je kodo WireGuard za "umetniško delo".

A o natančnih datumih uvajanja WireGuard v jedro še ni nihče govoril. In skoraj sekretizacija ne bo prišla z izidom avgustovskega Linux kernel 4.18. Vendar pa obstaja verjetnost, da se bo to zgodilo v bližnji prihodnosti: v različici 4.19 ali 5.0.

Ko bo WireGuard dodan v jedro, razvijalci želijo dokončati aplikacijo za naprave Android in začeti pisati aplikacijo za iOS. Poleg tega je načrtovano dokončanje izvedb na Go in Rust ter prenos na macOS, Windows in BSD. Pripravljena je tudi izvedba WireGuard za bolj "ekzotične sisteme": DPDK, FPGA, pa tudi številne druge zanimive stvari. Vse so navedene v seznamu opravil avtorjev projekta.

P.S. Še nekaj člankov iz našega korporativnega bloga:

Glavna smer našega dela je zagotavljanje oblačnih storitev:

Virtualna infrastruktura (IaaS) | PCI DSS gostovanje | Cloud FZ-152 | SAP gostovanje | Virtualna shranjevanje podatkov | Šifriranje podatkov v oblaku | Облачное хранилище

Izvor: habr.com

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster