WireGuard ќе „дојде“ до кернелот на Линукс - зошто?

На крајот на јули, програмерите на тунелот WireGuard VPN предложија сет на закрпи, што ќе го направи нивниот софтвер за тунелирање VPN дел од кернелот Линукс. Сепак, точниот датум на имплементација на „идејата“ останува непознат. Под сечењето ќе зборуваме за оваа алатка подетално.

WireGuard ќе „дојде“ до кернелот на Линукс - зошто?
/ фотографија Тамбако Јагуар CC

Накратко за проектот

WireGuard е VPN тунел од следната генерација создаден од Џејсон А. Доненфелд, извршен директор на Edge Security. Проектот беше развиен како поедноставен и брза алтернатива на OpenVPN и IPsec. Првата верзија на производот содржеше само 4 илјади линии код. За споредба, OpenVPN има околу 120 илјади линии, а IPSec - 420 илјади.

На според програмери, WireGuard е лесен за конфигурирање и се постигнува безбедност на протоколот преку докажани криптографски алгоритми. Кога менувате мрежа: Wi-Fi, LTE или Ethernet треба повторно да се поврзуваат со серверот VPN секој пат. Серверите WireGuard не ја прекинуваат врската, дури и ако корисникот добил нова IP адреса.

И покрај фактот дека WireGuard првично беше дизајниран за Linux кернелот, програмерите згрижени и за пренослива верзија на алатката за уреди со Android. Апликацијата сè уште не е целосно развиена, но можете да ја испробате сега. За ова ви треба станете еден од тестерите.

Во принцип, WireGuard е доста популарен, па дури и бил имплементирани неколку провајдери на VPN, како што се Mullvad и AzireVPN. Објавено на интернет голем број на водичи за поставување оваа одлука. На пример, има водичи, кои се креирани од корисници, а има и водичи, подготвени од авторите на проектот.

Техничка

В официјална документација (стр. 18) се забележува дека пропусната моќ на WireGuard е четири пати поголема од онаа на OpenVPN: 1011 Mbit/s наспроти 258 Mbit/s, соодветно. WireGuard е исто така пред стандардното решение за Linux IPsec - има 881 Mbit/s. Го надминува и по леснотијата на поставување.

Откако ќе се разменат клучевите (врската VPN е иницијализирана слично како SSH) и ќе се воспостави врската, WireGuard сам се справува со сите други задачи: нема потреба да се грижите за рутирање, контрола на состојбата итн. Дополнителни напори за конфигурација ќе бидат само потребно е ако сакате да користите симетрично шифрирање.

WireGuard ќе „дојде“ до кернелот на Линукс - зошто?
/ фотографија Андерс Хојбјерг CC

За да инсталирате, ќе ви треба дистрибуција со кернел Линукс постар од 4.1. Може да се најде во складиштата на главните дистрибуции на Linux.

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

Како што забележуваат уредниците на xakep.ru, самосклопувањето од изворните текстови е исто така лесно. Доволно е да го отворите интерфејсот и да генерирате јавни и приватни клучеви:

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

WireGuard не користи интерфејс за работа со крипто провајдер КриптоАПИ. Наместо тоа, се користи шифра за поток ChaCha20, криптографски вметнување за имитација Poly1305 и сопственички криптографски хаш функции.

Тајниот клуч се генерира со користење Дифи-Хелман протокол врз основа на елипсовидна крива Curve25519. При хаширање, користат хаш функции БЛАК2 и SipHash. Поради форматот на временскиот печат TAI64N протоколот ги отфрла пакетите со помала вредност на временскиот печат, со тоа спречување на DoS- и повторување напади.

Во овој случај, WireGuard ја користи функцијата ioctl за контрола на I/O (претходно користена netlink), што го прави кодот почист и поедноставен. Можете да го потврдите ова со гледање код за конфигурација.

Планови на програмери

Засега, WireGuard е модул на јадрото надвор од дрвото. Но, автор на проектот е Џејсон Доненфелд вели, дека дојде време за целосна имплементација во кернелот Линукс. Затоа што е поедноставно и посигурно од другите решенија. Џејсон во овој поглед поддржува дури и самиот Линус Торвалдс го нарече кодот WireGuard „уметничко дело“.

Но, никој не зборува за точните датуми за воведување на WireGuard во кернелот. И тешко ова ќе се случи со објавувањето на кернелот на Linux за август 4.18. Сепак, постои можност тоа да се случи во многу блиска иднина: во верзија 4.19 или 5.0.

Кога WireGuard е додаден во кернелот, програмерите сака финализирајте ја апликацијата за уредите со Android и започнете да пишувате апликација за iOS. Исто така, се планира да се завршат имплементациите во Go и Rust и да се пренесат на macOS, Windows и BSD. Исто така, планирано е да се имплементира WireGuard за повеќе „егзотични системи“: ДПДК, FPGA, како и многу други интересни работи. Сите од нив се наведени во листа со обврски автори на проектот.

PS Уште неколку написи од нашиот корпоративен блог:

Главната насока на нашата активност е обезбедување на облак услуги:

Виртуелна инфраструктура (IaaS) | PCI DSS хостинг | Облак FZ-152 | SAP хостинг | Виртуелно складирање | Шифрирање на податоци во облакот | Складирање во облак

Извор: www.habr.com

Додадете коментар