WireGuard "venos" al la Linukso-kerno - kial?

Fine de julio, la programistoj de la tunelo WireGuard VPN proponis flikaĵo aro, kiu faros ilian VPN-tunelan programaron parto de la Linukso-kerno. Tamen, la preciza dato de efektivigo de la "ideo" restas nekonata. Sub la tranĉo ni parolos pri ĉi tiu ilo pli detale.

WireGuard "venos" al la Linukso-kerno - kial?
/ foto Tambako La Jaguaro CC

Mallonge pri la projekto

WireGuard estas venontgeneracia VPN-tunelo kreita de Jason A. Donenfeld, Ĉefoficisto de Edge Security. La projekto estis evoluigita kiel simpligita kaj rapida alternativo al OpenVPN kaj IPsec. La unua versio de la produkto enhavis nur 4 mil liniojn de kodo. Por komparo, OpenVPN havas ĉirkaŭ 120 mil liniojn, kaj IPSec - 420 mil.

Por laŭ programistoj, WireGuard estas facile agordi kaj protokola sekureco estas atingita per pruvitaj kriptografiaj algoritmoj. Kiam oni ŝanĝas reton: Wi-Fi, LTE aŭ Ethernet devas rekonekti al la VPN-servilo ĉiufoje. WireGuard-serviloj ne ĉesigas la konekton, eĉ se la uzanto ricevis novan IP-adreson.

Malgraŭ la fakto, ke WireGuard estis origine dizajnita por la Linukso-kerno, la programistoj prizorgita kaj pri portebla versio de la ilo por Android-aparatoj. La aplikaĵo ankoraŭ ne estas plene disvolvita, sed vi povas provi ĝin nun. Por ĉi tio vi bezonas fariĝi unu el la testantoj.

Ĝenerale, WireGuard estas sufiĉe populara kaj eĉ estis efektivigita pluraj VPN-provizantoj, kiel Mullvad kaj AzireVPN. Eldonita interrete granda nombro de agordaj gvidiloj ĉi tiu decido. Ekzemple, estas gvidiloj, kiuj estas kreitaj de uzantoj, kaj ekzistas gvidiloj, preparita de la aŭtoroj de la projekto.

teknikajn

В oficiala dokumentaro (p. 18) oni rimarkas, ke la trairo de WireGuard estas kvaroble pli alta ol tiu de OpenVPN: 1011 Mbit/s kontraŭ 258 Mbit/s, respektive. WireGuard ankaŭ estas antaŭ la norma solvo por Linukso IPsec - ĝi havas 881 Mbit/s. Ĝi ankaŭ superas ĝin en facileco de aranĝo.

Post kiam la ŝlosiloj estas interŝanĝitaj (la VPN-konekto estas pravigita tre kiel SSH) kaj la konekto estas establita, WireGuard pritraktas ĉiujn aliajn taskojn memstare: ne necesas zorgi pri vojigo, ŝtatkontrolo, ktp. Pliaj agordaj klopodoj nur estos. bezonata se vi volas uzi simetrian ĉifradon.

WireGuard "venos" al la Linukso-kerno - kial?
/ foto Anders Hojbjerg CC

Por instali, vi bezonos distribuon kun Linukso-kerno pli malnova ol 4.1. Ĝi troveblas en la deponejoj de ĉefaj Linuksaj distribuoj.

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

Kiel notas la redaktantoj de xakep.ru, mem-muntado de fontaj tekstoj ankaŭ estas facila. Sufiĉas malfermi la interfacon kaj generi publikajn kaj privatajn ŝlosilojn:

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

WireGuard ne uzas interfaco por labori kun kripta provizanto CryptoAPI. Anstataŭe, fluo-ĉifro estas uzata ChaCha20, kriptografika imita enmetaĵo Poly1305 kaj proprietaj kriptaj hashfunkcioj.

La sekreta ŝlosilo estas generita uzante Diffie-Hellman-protokolo surbaze de elipsa kurbo Curve25519. Kiam hashing, ili uzas haŝfunkcioj BLAKE2 и SipHash. Pro la tempostampo formato TAI64N la protokolo forĵetas pakaĵetojn kun pli malgranda tempostampovaloro, tiel malhelpante DoS- и reludi atakojn.

En ĉi tiu kazo, WireGuard uzas la ioctl-funkcion por kontroli I/O (antaŭe uzatan retligo), kiu faras la kodon pli pura kaj pli simpla. Vi povas kontroli ĉi tion rigardante agorda kodo.

Planoj de programistoj

Nuntempe, WireGuard estas ekster-arba kernomodulo. Sed la aŭtoro de la projekto estas Jason Donenfeld diras, ke venis la tempo por plena efektivigo en la Linukso-kerno. Ĉar ĝi estas pli simpla kaj fidinda ol aliaj solvoj. Jason ĉi-rilate subtenoj eĉ Linus Torvalds mem nomis la WireGuard-kodon "arto."

Sed neniu parolas pri la ĝustaj datoj por la enkonduko de WireGuard en la kernon. KAJ malfacile ĉi tio okazos kun la liberigo de la aŭgusta Linukso-kerno 4.18. Tamen, ekzistas ebleco, ke tio okazos en tre proksima estonteco: en versio 4.19 aŭ 5.0.

Kiam WireGuard estas aldonita al la kerno, programistoj volas fini la aplikaĵon por Android-aparatoj kaj komencu verki aplikaĵon por iOS. Estas ankaŭ planoj kompletigi efektivigojn en Go kaj Rust kaj porti ilin al macOS, Vindozo kaj BSD. Estas ankaŭ planite efektivigi WireGuard por pli "ekzotikaj sistemoj": DPDK, FPGA, same kiel multaj aliaj interesaj aferoj. Ĉiuj ili estas listigitaj en listo da farendaĵoj aŭtoroj de la projekto.

PS Kelkaj pliaj artikoloj de nia kompania blogo:

La ĉefa direkto de nia agado estas la provizado de nubaj servoj:

Virtuala Infrastrukturo (IaaS) | Gastigado de PCI DSS | Nubo FZ-152 | SAP-gastigado | Virtuala stokado | Ĉifrado de datumoj en la nubo | Nuba stokado

fonto: www.habr.com

Aldoni komenton