WireGuard ще "дойде" в ядрото на Linux - защо?

В края на юли разработчиците на VPN тунела WireGuard предложиха комплект лепенки, което ще направи техния софтуер за VPN тунелиране част от ядрото на Linux. Точната дата на реализиране на „идеята“ обаче остава неизвестна. По-долу ще говорим за този инструмент по-подробно.

WireGuard ще "дойде" в ядрото на Linux - защо?
/ снимка Тамбако Ягуарът 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 ще "дойде" в ядрото на Linux - защо?
/ снимка Андерс Хойберг CC

За да инсталирате, ще ви трябва дистрибуция с Linux ядро, по-старо от 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 не използва интерфейс за работа с крипто доставчик CryptoAPI. Вместо това се използва поточен шифър ChaCha20, криптографски имитация на вложка Poly1305 и собствени криптографски хеш функции.

Тайният ключ се генерира с помощта на Протокол на Дифи-Хелман на базата на елиптична крива Curve25519. При хеширане те използват хеш функции БЛЕЙК 2 и SipHash. Поради формата на клеймото за време TAI64N по този начин протоколът отхвърля пакети с по-малка стойност на клеймото за време предотвратяване на DoS- и повторни атаки.

В този случай WireGuard използва функцията ioctl за контрол на I/O (използвана преди това мрежова връзка), което прави кода по-чист и по-прост. Можете да проверите това, като погледнете конфигурационен код.

Планове на разработчици

Засега WireGuard е модул на ядрото извън дървото. Но авторът на проекта е Джейсън Доненфелд Той говори, че е дошло времето за пълно внедряване в ядрото на Linux. Защото е по-просто и по-надеждно от други решения. Джейсън в това отношение поддържа дори самият Линус Торвалдс нарече кода на WireGuard „произведение на изкуството“.

Но никой не говори за точните дати за въвеждане на WireGuard в ядрото. И едва ли това ще се случи с пускането на август ядрото на Linux 4.18. Има обаче възможност това да се случи в много близко бъдеще: във версия 4.19 или 5.0.

Когато WireGuard се добави към ядрото, разработчиците искам финализирайте приложението за Android устройства и започнете да пишете приложение за iOS. Има също планове за завършване на внедрявания в Go и Rust и пренасянето им към macOS, Windows и BSD. Също така се планира да се внедри WireGuard за по-„екзотични системи“: DPDK, FPGA, както и много други интересни неща. Всички те са изброени в списък със задачи автори на проекта.

PS Още няколко статии от нашия корпоративен блог:

Основното направление на нашата дейност е предоставянето на облачни услуги:

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

Източник: www.habr.com

Добавяне на нов коментар