ProHoster > "Darating" ang WireGuard sa Linux kernel - bakit?
"Darating" ang WireGuard sa Linux kernel - bakit?
Sa katapusan ng Hulyo, iminungkahi ng mga developer ng WireGuard VPN tunnel set ng patch, na gagawing bahagi ng Linux kernel ang kanilang VPN tunneling software. Gayunpaman, ang eksaktong petsa ng pagpapatupad ng "ideya" ay nananatiling hindi alam. Sa ibaba ng hiwa ay pag-uusapan natin ang tool na ito nang mas detalyado.
Ang WireGuard ay isang susunod na henerasyong VPN tunnel na nilikha ni Jason A. Donenfeld, CEO ng Edge Security. Ang proyekto ay binuo bilang pinasimple at isang mabilis na alternatibo sa OpenVPN at IPsec. Ang unang bersyon ng produkto ay naglalaman lamang ng 4 na libong linya ng code. Para sa paghahambing, ang OpenVPN ay may humigit-kumulang 120 libong linya, at IPSec - 420 libo.
Sa ayon sa mga developer, madaling i-configure ang WireGuard at nakakamit ang seguridad ng protocol sa pamamagitan ng napatunayang cryptographic algorithm. Kapag nagpapalit ng network: Kailangang kumonekta muli ang Wi-Fi, LTE o Ethernet sa VPN server sa bawat oras. Hindi tinatapos ng mga server ng WireGuard ang koneksyon, kahit na nakatanggap ang user ng bagong IP address.
Sa kabila ng katotohanan na ang WireGuard ay orihinal na idinisenyo para sa Linux kernel, ang mga developer inaalagaan at tungkol sa isang portable na bersyon ng tool para sa mga Android device. Ang application ay hindi pa ganap na binuo, ngunit maaari mo itong subukan ngayon. Para dito kailangan mo maging isa sa mga tester.
Π opisyal na dokumentasyon (p. 18) nabanggit na ang throughput ng WireGuard ay apat na beses na mas mataas kaysa sa OpenVPN: 1011 Mbit/s kumpara sa 258 Mbit/s, ayon sa pagkakabanggit. Ang WireGuard ay nauuna din sa karaniwang solusyon para sa Linux IPsec - mayroon itong 881 Mbit/s. Nahihigitan din nito ito sa kadalian ng pag-setup.
Pagkatapos na palitan ang mga susi (ang koneksyon ng VPN ay sinisimulan na katulad ng SSH) at ang koneksyon ay naitatag, ang WireGuard ay humahawak sa lahat ng iba pang mga gawain nang mag-isa: hindi na kailangang mag-alala tungkol sa pagruruta, kontrol ng estado, atbp. Ang mga karagdagang pagsisikap sa pagsasaayos ay magkakaroon lamang kinakailangan kung gusto mong gumamit ng simetriko na pag-encrypt.
Upang mai-install, kakailanganin mo ng pamamahagi na may Linux kernel na mas luma sa 4.1. Ito ay matatagpuan sa mga repositoryo ng mga pangunahing distribusyon ng Linux.
Tulad ng tala ng mga editor ng xakep.ru, madali din ang pagpupulong sa sarili mula sa mga pinagmulang teksto. Ito ay sapat na upang buksan ang interface at bumuo ng pampubliko at pribadong mga susi:
$ sudo ip link add dev wg0 type wireguard
$ wg genkey | tee privatekey | wg pubkey > publickey
WireGuard hindi gumagamit interface para sa pagtatrabaho sa isang crypto provider Cryptoapi. Sa halip, isang stream cipher ang ginagamit ChaCha20, cryptographic pagsingit ng imitasyon Poly1305 at proprietary cryptographic hash functions.
Sa kasong ito, ginagamit ng WireGuard ang function na ioctl upang kontrolin ang I/O (dating ginamit netlink), na ginagawang mas malinis at mas simple ang code. Maaari mong i-verify ito sa pamamagitan ng pagtingin sa code ng pagsasaayos.
Mga plano ng developer
Sa ngayon, ang WireGuard ay isang out-of-tree kernel module. Ngunit ang may-akda ng proyekto ay si Jason Donenfeld Siya ay nagsasalita, na ang oras ay dumating na para sa ganap na pagpapatupad sa Linux kernel. Dahil ito ay mas simple at mas maaasahan kaysa sa iba pang mga solusyon. Jason sa bagay na ito sumusuporta kahit si Linus Torvalds mismo ay tinawag ang WireGuard code bilang isang "gawa ng sining."
Ngunit walang nagsasalita tungkol sa eksaktong mga petsa para sa pagpapakilala ng WireGuard sa kernel. AT mahirap mangyayari ito sa paglabas ng August Linux kernel 4.18. Gayunpaman, may posibilidad na mangyari ito sa malapit na hinaharap: sa bersyon 4.19 o 5.0.
Kapag naidagdag ang WireGuard sa kernel, ang mga developer gusto tapusin ang application para sa mga Android device at magsimulang magsulat ng application para sa iOS. Mayroon ding mga plano na kumpletuhin ang mga pagpapatupad sa Go at Rust at i-port ang mga ito sa macOS, Windows at BSD. Pinlano din na ipatupad ang WireGuard para sa higit pang "mga kakaibang sistema": DPDK, FPGA, pati na rin ang maraming iba pang mga kawili-wiling bagay. Lahat sila ay nakalista sa to-do-list mga may-akda ng proyekto.
PS Ilan pang artikulo mula sa aming corporate blog: