В края на юли разработчиците на VPN тунела WireGuard предложиха , които ще направят техния софтуер за организиране на VPN тунели част от ядрото на Linux. Обаче точната дата за реализиране на "замисъла" все още остава неизвестна. Под кат ще говорим за този инструмент по-подробно.
/ фото
Кратко за проекта
WireGuard е VPN тунел от ново поколение, създаден от Джейсън Доненфелд (Jason A. Donenfeld), ръководител на компанията 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 Mbps срещу 258 Mbps съответно. WireGuard изпреварва и стандартното решение за Linux IPsec – то има 881 Mbps. Превъзхожда го и по простота на настройка.
След обмен на ключовете (VPN връзката се инициализира почти като в SSH) и установяване на връзката, WireGuard самостоятелно решава всички останали задачи: няма нужда да се притеснявате за маршрутизацията, контрола на състоянието и др. Допълнителни усилия при настройката ще са необходими само ако искате да използвате симетрично шифроване.

/ фото
За инсталиране ще е необходима дистрибуция с ядро на 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 интерфейс за работа с криптопровайдер . Вместо него, се използва потоково шифриране , криптографска Poly1305 и собствени криптографски хеш-функции.
Секретният ключ се генерира с помощта на на базата на елиптични криви . При хеширането се използват и . В резултат на формата на времевите марки протоколът отхвърля пакети с по-ниска стойност на времевата марка, така предотвратявайки и .
При това WireGuard използва функцията ioctl за контрол на входа/изхода (по-рано се използваше ), което прави кода по-чист и прост. Можете да се уверите в това, като погледнете .
Плановете на разработчиците
Засега WireGuard е out-of-tree модул на ядрото. Но авторът на проекта Джейсън Доненфелд , вярва, че времето е дошло за пълна реализация в ядрото на Linux. Тъй като е по-просто и надеждно от другите решения. Джейсън в това отношение дори самият Линус Торвалдс — той нарече кода на WireGuard "произведение на изкуството".
Но за точните дати на внедряване на WireGuard в ядрото за сега никой не говори. И това ще се случи с излизането на августовското ядро на Linux 4.18. Въпреки това, вероятността това да се случи в най-близко бъдеще: в версия 4.19 или 5.0.
Когато WireGuard бъде добавен в ядрото, разработчиците да усъвършенстват приложението за Android устройства и да започнат да пишат приложение за iOS. Освен това, планирано е завършване на реализации на Go и Rust и пренос на тях на macOS, Windows и BSD. Също така, планира се реализация на WireGuard за по "екзотични системи": , , както и множество други интересни неща. Всички те са изброени в на авторите на проекта.
P.S. Още няколко статии от нашия корпоративен блог:
Основната насока на нашата дейност е предоставянето на облачни услуги:
| | | | | |
Източник: habr.com
