WireGuard „tuleb” Linuxi tuumasse — miks?

Juuli lõpus pakkusid WireGuardi VPN-tunnelite arendajad patchide komplekt, et nende tarkvara VPN-tunnelite loomiseks muutub osa Linuxi kernelist. Siiski jääb täpne rakendamise kuupäev teadmata. Allpool arutame selle tööriista üle üksikasjalikumalt.

WireGuard „tuleb” Linuxi tuumasse — miks?
/ фото Tambako The Jaguar CC

Projektist lühidalt

WireGuard on järgmise põlvkonna VPN-tunnel, mille lõi Jason Donenfeld, Edge Security'i juht. Projekt töötati välja kui lihtsustatud ja kiire alternatiiv OpenVPN-ile ja IPsec-ile. Toote esimene versioon sisaldas vaid 4000 koodi rida. Võrdluseks: OpenVPN-l on umbes 120 000 rida, IPSec-il aga 420 000.

Kohal sõnadega arendajate arvust, WireGuard'i seadistamine on lihtne, ja protokolli turvalisus saavutatakse katsetatud krüptograafiliste algoritmide abil.. Võrgu vahetamisel: Wi-Fi, LTE või Ethernet, tuleb igal korral VPN-serverisse uuesti ühenduda. WireGuardi serverid ei katkesta ühendust, isegi kui kasutaja saab uue IP-aadressi.

Kuigi WireGuard on algselt loodud Linuxi kernelile, on arendajad mõelnud ka tööriista kaasaskantavale versioonile Android-seadmete jaoks. Rakendus ei ole veel välja töötatud, kuid seda saab juba praegu proovida. Selleks on vajalik saat üks testijatest.

Kokkuvõttes on WireGuard üsna populaarne ja seda on kasutanud rakendatud mitmed VPN-teenuse pakkujad, näiteks Mullvad ja AzireVPN. Võrgus on avaldatud suure hulga seadistamisjuhiseid selle lahenduse kohta. Näiteks on kasutajate koostatud juhendeid ja on ka juhendeid,mida on koostanud projekti autorid Tehnilised detailid.

(lk 18) on mainitud, et WireGuard'i läbilaskevõime on neli korda kõrgem kui OpenVPN'il: 1011 Mbit/s võrreldes 258 Mbit/s. WireGuard ületab ka standardset lahendust Linuxile IPsec - selle läbilaskevõime on 881 Mbit/s. Ta on ka lihtsamini seadistatav.

V ametlikus dokumentatsioonis (стр.18) отмечено, что пропускная способность у WireGuard в четыре раза выше, чем у OpenVPN: 1011 Мбит/с против 258 Мбит/с соответственно. WireGuard опережает и стандартное решение для Linux IPsec ― у того 881 Мбит/с. Превосходит он его и по простоте настройки.

Pärast võtmete vahetamist (VPN-ühendus algatatakse peaaegu nagu SSH) ja ühenduse loomist lahendab WireGuard kõik ülejäänud ülesanded: ei ole vaja muretseda marsruutimise, oleku kontrollimise jne üle. Täiendavaid jõupingutusi seadistamiseks on vaja vaid juhul, kui soovitakse kasutada sümmeetrilist krüpteerimist.

WireGuard „tuleb” Linuxi tuumasse — miks?
/ фото Anders Hojbjerg CC

Seadistamiseks on vajalik Linuxi tuumadist, mis on "vanem" kui 4.1. Seda saab leida peamiste Linuxi distributsioonide hoidlatest.

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

Nagu toimetajad xakep.ru märgivad, on allika koodidest iseseisev koostamine samuti lihtne. Piisab liidese üles seadmisest ja avatud ning privaatvõtmete genereerimisest:

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

WireGuard ei kasuta liidest krüptoprovajderiga töötamiseks CryptoAPI. Selle asemel kasutatakse voogkrüptošifreid ChaCha20, krüptograafilist imitatsioonisisestust Poly1305 ja omatehtud krüptograafilisi hajutamisfunktsioone.

Salajane võti genereeritakse kasutades Diffie-Hellmani protokolli elliptsete kõverate alusel Curve25519. Hajutamisel kasutatakse hajutamisfunktsioone BLAKE2 ja SipHash. Aja tempode formaadi tõttu TAI64N protokoll viskab välja paketid, mille ajatempos on väiksem väärtus, sellega ennetades DoS- ja taaskäivitamise rünnakuid..

Selle juures kasutab WireGuard ioctl funktsiooni sisendi/väljundi kontrollimiseks (varem kasutati Netlink), mis teeb koodi puhtamaks ja lihtsamaks. Seda asjaolu saab kontrollida, visates pilgu konfiguratsioonikoodi.

Arendajate plaanid

Praegu on WireGuard out-of-tree kerneli moodul. Kuid projekti autor Jason Donenfeld ütleb, et et on juba aeg täielikuks rakendamiseks Linuxi tuumal. Kuna see on lihtsam ja usaldusväärsem kui teised lahendused. Jasoni osas toetab ise Linus Torvalds - ta nimetas WireGuardi koodi 'kunstiteoseks'.

Kuid WireGuardi täpsete rakendamise kuupäevade kohta ei räägi keegi veel. Ja vaevalt see juhtub augustikuisel Linux kernel 4.18 väljalaskmisel. Kuid on tõenäolisem, et see toimub lähitulevikus: versioonides 4.19 või 5.0.

Kui WireGuard lisatakse tuum, soovivad arendajad töötada ära Androidi seadmete rakenduse ning alustada iOS-i rakenduse kirjutamist. Samuti on plaanis lõpule viia teostused Go ja Rustis ning portida need macOS-ile, Windowsile ja BSD-le. Samuti on plaanis WireGuardi teostamine rohkem 'eksootilistele süsteemidele': DPDK, FPGA, samuti palju muid põnevaid asju. Kõik need on loetletud to-do-nimekirjas projekti autorite poolt.

P.S. Veel mõned artiklid meie ettevõtte blogist:

Meie põhiline tegevusala on pilveteenuste pakkumine:

Virtuaalne infrastruktuur (IaaS) | PCI DSS hostimine | FZ-152 pilv | SAP-teenus | Virtuaalne salvestusüksus | Andmete krüptimine pilves | Pilvesalvestus

Allikas: habr.com

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster