WireGuard će “doći” do Linux kernela - zašto?

Krajem jula predložili su programeri WireGuard VPN tunela patch set, što će njihov softver za VPN tuneliranje učiniti dijelom Linux kernela. Međutim, tačan datum implementacije “ideje” ostaje nepoznat. Ispod reza ćemo detaljnije govoriti o ovom alatu.

WireGuard će “doći” do Linux kernela - zašto?
/ photo Tambako Jaguar CC

Ukratko o projektu

WireGuard je VPN tunel nove generacije koji je kreirao Jason A. Donenfeld, izvršni direktor Edge Security-a. Projekat je razvijen kao pojednostavljeno i brza alternativa OpenVPN-u i IPsec-u. Prva verzija proizvoda sadržavala je samo 4 hiljade linija koda. Poređenja radi, OpenVPN ima oko 120 hiljada linija, a IPSec - 420 hiljada.

By prema programeri, WireGuard se lako konfiguriše i postiže se sigurnost protokola kroz dokazane kriptografske algoritme. Prilikom promjene mreže: Wi-Fi, LTE ili Ethernet moraju se svaki put ponovo povezati na VPN server. WireGuard serveri ne prekidaju vezu, čak i ako je korisnik primio novu IP adresu.

Unatoč činjenici da je WireGuard izvorno dizajniran za Linux kernel, programeri zbrinuti i o prenosivoj 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.

Općenito, WireGuard je prilično popularan i čak je bio implementirano nekoliko VPN provajdera, kao što su Mullvad i AzireVPN. Objavljeno online veliki broj vodiči za podešavanje ovu odluku. Na primjer, postoje vodiči, koje kreiraju korisnici, a postoje i vodiči, pripremili autori projekta.

tehnički

В službena dokumentacija (str. 18) primećuje se da je propusnost WireGuarda četiri puta veća od OpenVPN-a: 1011 Mbit/s naspram 258 Mbit/s, respektivno. WireGuard je također ispred standardnog rješenja za Linux IPsec - ima 881 Mbit/s. Takođe ga nadmašuje u jednostavnosti podešavanja.

Nakon što se ključevi razmijene (VPN veza je inicijalizirana slično kao SSH) i uspostavljena veza, WireGuard rješava sve ostale zadatke samostalno: nema potrebe za brigom o rutiranju, kontroli stanja itd. potrebno ako želite koristiti simetrično šifriranje.

WireGuard će “doći” do Linux kernela - zašto?
/ photo Anders Hojbjerg CC

Da biste instalirali, trebat će vam distribucija s Linux kernelom starijim od 4.1. Može se naći u repozitorijumima glavnih Linux distribucija.

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

Kako napominju urednici xakep.ru, samostalno sastavljanje iz izvornih tekstova je također lako. 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 interfejs za rad sa kripto provajderom CryptoAPI. Umjesto toga, koristi se stream šifra ChaCha20, kriptografski umetak imitacije Poly1305 i vlasničke kriptografske hash funkcije.

Tajni ključ se generira pomoću Diffie-Hellman protokol na osnovu eliptičke krive Curve25519. Prilikom heširanja koriste hash funkcije BLAKE2 и SipHash. Zbog formata vremenske oznake TAI64N protokol odbacuje pakete s manjom vrijednošću vremenske oznake sprečavanje DoS-a и ponavljanje napada.

U ovom slučaju, WireGuard koristi funkciju ioctl za kontrolu I/O (ranije korištena netlink), što čini kod čišćim i jednostavnijim. Ovo možete provjeriti gledanjem konfiguracijski kod.

Programerski planovi

Za sada, WireGuard je modul kernela van stabla. Ali autor projekta je Jason Donenfeld kaže, da je došlo vrijeme za punu implementaciju u Linux kernel. Zato što je jednostavnije i pouzdanije od ostalih rješenja. Jason u tom pogledu podržava čak je i sam Linus Torvalds nazvao WireGuard kod „umjetničkim djelom“.

Ali niko ne govori o tačnim datumima za uvođenje WireGuarda u kernel. I jedva ovo će se desiti sa izdavanjem avgustovskog Linux kernela 4.18. Međutim, postoji mogućnost da se to dogodi u vrlo bliskoj budućnosti: u verziji 4.19 ili 5.0.

Kada se WireGuard doda kernelu, programeri željeti finalizirajte aplikaciju za Android uređaje i počnite pisati aplikaciju za iOS. Postoje i planovi da se dovrše implementacije u Go i Rust-u i prenesu na macOS, Windows i BSD. Planira se i implementacija WireGuard-a za „egzotičnije sisteme“: DPDK, FPGA, kao i mnoge druge zanimljive stvari. Svi oni su navedeni u to-do-list autori projekta.

PS Još nekoliko članaka sa našeg korporativnog bloga:

Glavni pravac naše aktivnosti je pružanje usluga u oblaku:

Virtuelna infrastruktura (IaaS) | PCI DSS hosting | Oblak FZ-152 | SAP hosting | Virtuelna pohrana | Šifriranje podataka u oblaku | Cloud storage

izvor: www.habr.com

Dodajte komentar