WireGuard "nāks" uz Linux kodolu - kāpēc?

JÅ«lija beigās WireGuard VPN tuneļa izstrādātāji ierosināja ielāpu komplekts, kas padarÄ«s viņu VPN tunelÄ“Å”anas programmatÅ«ru par daļu no Linux kodola. Tomēr precÄ«zs ā€œidejasā€ Ä«stenoÅ”anas datums joprojām nav zināms. Zem griezuma mēs par Å”o rÄ«ku runāsim sÄ«kāk.

WireGuard "nāks" uz Linux kodolu - kāpēc?
/ foto Tambako Jaguārs CC

ÄŖsi par projektu

WireGuard ir nākamās paaudzes VPN tunelis, ko izveidojis Edge Security izpilddirektors Džeisons A. Donenfelds. Projekts tika izstrādāts kā vienkārÅ”ots un ātra alternatÄ«va OpenVPN un IPsec. Produkta pirmajā versijā bija tikai 4 tÅ«kstoÅ”i koda rindiņu. SalÄ«dzinājumam, OpenVPN ir aptuveni 120 tÅ«kstoÅ”i lÄ«niju, bet IPSec - 420 tÅ«kstoÅ”i.

Par saskaņā ar izstrādātājiem, WireGuard ir viegli konfigurējams un tiek panākta protokola droŔība izmantojot pārbaudÄ«tus kriptogrāfijas algoritmus. Mainot tÄ«klu: Wi-Fi, LTE vai Ethernet ir nepiecieÅ”ams atkārtoti izveidot savienojumu ar VPN serveri katru reizi. WireGuard serveri nepārtrauc savienojumu, pat ja lietotājs ir saņēmis jaunu IP adresi.

Neskatoties uz to, ka WireGuard sākotnēji bija paredzēts Linux kodolam, izstrādātāji aprÅ«pēts un par rÄ«ka portatÄ«vo versiju Android ierÄ«cēm. Lietojumprogramma vēl nav pilnÄ«bā izstrādāta, taču tagad varat to izmēģināt. Å im nolÅ«kam jums ir nepiecieÅ”ams kļūt par vienu no pārbaudÄ«tājiem.

Vispār WireGuard ir diezgan populārs un pat ir bijis Ä«stenota vairāki VPN pakalpojumu sniedzēji, piemēram, Mullvad un AzireVPN. Publicēts tieÅ”saistē liels skaits iestatÄ«Å”anas rokasgrāmatas Å”o lēmumu. Piemēram, ir ceļveži, ko izveidojuÅ”i lietotāji, un ir pieejami ceļveži, sagatavojuÅ”i projekta autori.

Tehniskās detaļas

Š’ oficiālā dokumentācija (18. lpp.) tiek atzÄ«mēts, ka WireGuard caurlaidspēja ir četras reizes lielāka nekā OpenVPN: attiecÄ«gi 1011 Mbit/s pret 258 Mbit/s. WireGuard apsteidz arÄ« standarta risinājumu Linux IPsec ā€“ tam ir 881 Mbit/s. Tas pārspēj to arÄ« iestatÄ«Å”anas vienkārŔībā.

Pēc atslēgu apmaiņas (VPN savienojums ir inicializēts lÄ«dzÄ«gi kā SSH) un savienojums ir izveidots, WireGuard pats veic visus citus uzdevumus: nav jāuztraucas par marÅ”rutÄ“Å”anu, stāvokļa kontroli utt. Papildu konfigurācijas centieni bÅ«s tikai nepiecieÅ”ams, ja vēlaties izmantot simetrisku Å”ifrÄ“Å”anu.

WireGuard "nāks" uz Linux kodolu - kāpēc?
/ foto Anderss Hojbjergs CC

Lai instalētu, jums bÅ«s nepiecieÅ”ams izplatÄ«jums ar Linux kodolu, kas ir vecāks par 4.1. To var atrast lielāko Linux izplatÄ«jumu krātuvēs.

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

Kā atzÄ«mē xakep.ru redaktori, arÄ« paÅ”komplektÄ“Å”ana no avota tekstiem ir vienkārÅ”a. Pietiek atvērt saskarni un Ä£enerēt publiskās un privātās atslēgas:

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

WireGuard neizmanto saskarne darbam ar kriptogrāfijas pakalpojumu sniedzēju KriptoAPI. Tā vietā tiek izmantots straumes Å”ifrs ChaCha20, kriptogrāfijas imitācijas ieliktnis Poly1305 un patentētas kriptogrāfijas jaucējfunkcijas.

Slepenā atslēga tiek Ä£enerēta, izmantojot Difija-Helmena protokols pamatojoties uz eliptisku lÄ«kni Curve25519. Veicot jaukÅ”anu, viņi izmanto hash funkcijas BLAKE2 Šø SipHash. Laika zÄ«moga formāta dēļ TAI64N protokols izmet paketes ar mazāku laikspiedola vērtÄ«bu, tādējādi novērst DoS- Šø atkārtot uzbrukumus.

Å ajā gadÄ«jumā WireGuard izmanto ioctl funkciju, lai kontrolētu I/O (iepriekÅ” izmantota tÄ«kla saite), kas padara kodu tÄ«rāku un vienkārŔāku. Par to varat pārliecināties, apskatot konfigurācijas kods.

Izstrādātāju plāni

Pagaidām WireGuard ir ārpus koka esoŔā kodola modulis. Bet projekta autors ir Džeisons Donenfelds saka, ka ir pienācis laiks pilnīgai ievieŔanai Linux kodolā. Jo tas ir vienkārŔāks un uzticamāks par citiem risinājumiem. Džeisons Ŕajā sakarā atbalsta Pat Linuss Torvalds pats WireGuard kodu nosauca par "mākslas darbu".

Bet neviens nerunā par precÄ«ziem datumiem WireGuard ievieÅ”anai kodolā. UN diez vai tas notiks lÄ«dz ar Augusta Linux kodola 4.18 izlaiÅ”anu. Tomēr pastāv iespēja, ka tas notiks ļoti tuvā nākotnē: versijā 4.19 vai 5.0.

Kad kodolam tiek pievienots WireGuard, izstrādātāji gribu pabeidziet lietojumprogrammu Android ierÄ«cēm un sāciet rakstÄ«t lietojumprogrammu iOS. Ir arÄ« plānots pabeigt ievieÅ”anu Go and Rust un portēt tos uz macOS, Windows un BSD. Plānots arÄ« ieviest WireGuard ā€œeksotiskākām sistēmāmā€: DPDK, FPGA, kā arÄ« daudzas citas interesantas lietas. Visi no tiem ir uzskaitÄ«ti darāmo lietu saraksts projekta autori.

PS Vēl daži raksti no mūsu korporatīvā emuāra:

MÅ«su darbÄ«bas galvenais virziens ir mākoņpakalpojumu sniegÅ”ana:

Virtuālā infrastruktÅ«ra (IaaS) | PCI DSS mitināŔana | Mākonis FZ-152 | SAP mitināŔana | Virtuālā krātuve | Datu Å”ifrÄ“Å”ana mākonÄ« | Mākoņglabātuve

Avots: www.habr.com

Pievieno komentāru