Да ли је ВиреГуард одличан ВПН будућности?

Да ли је ВиреГуард одличан ВПН будућности?

Дошло је време када ВПН више није нека егзотична алатка брадатих систем администратора. Корисници имају различите задатке, али чињеница је да свима треба ВПН.

Проблем са тренутним ВПН решењима је тај што их је тешко правилно конфигурисати, скупо их је одржавати и што су пуна застарелог кода упитног квалитета.

Пре неколико година, канадски стручњак за информациону безбедност Џејсон А. Доненфелд одлучио је да му је тога доста и почео је да ради на ВиреГуард. ВиреГуард се сада припрема за укључивање у Линук кернел и чак је добио похвале од Линус Торвалдс и амерички сенат.

Тврђене предности ВиреГуард-а у односу на друга ВПН решења:

  • Једноставан за коришћење.
  • Користи савремену криптографију: оквир протокола Ноисе, Цурве25519, ЦхаЦха20, Поли1305, БЛАКЕ2, СипХасх24, ХКДФ, итд.
  • Компактан, читљив код, лакши за истраживање рањивости.
  • Високих перформанси.
  • Јасно и разрађено спецификација.

Да ли је пронађен сребрни метак? Да ли је време да се сахрани ОпенВПН и ИПСец? Одлучио сам да се позабавим овим, а у исто време јесам скрипта за аутоматско инсталирање личног ВПН сервера.

Принцип рада

Принципи рада могу се описати отприлике овако:

  • ВиреГуард интерфејс је креиран и приватни кључ и ИП адреса су му додељени. Учитавају се подешавања других вршњака: њихови јавни кључеви, ИП адресе итд.
  • Сви ИП пакети који стигну на ВиреГуард интерфејс су инкапсулирани у УДП и испоручено безбедно други вршњаци.
  • Клијенти одређују јавну ИП адресу сервера у подешавањима. Сервер аутоматски препознаје спољне адресе клијената када се од њих прими исправно аутентификовани подаци.
  • Сервер може да промени јавну ИП адресу без прекидања рада. Истовремено, он ће послати упозорење повезаним клијентима и они ће ажурирати своју конфигурацију у ходу.
  • Користи се концепт рутирања Цриптокеи Роутинг. ВиреГуард прихвата и шаље пакете на основу јавног кључа пеер-а. Када сервер дешифрује исправно аутентификовани пакет, проверава се његово срц поље. Ако одговара конфигурацији allowed-ips аутентификовани равноправни, пакет прима ВиреГуард интерфејс. Приликом слања одлазног пакета, одвија се одговарајућа процедура: узима се дст поље пакета и на основу њега се бира одговарајући пеер, пакет се потписује својим кључем, шифрује се кључем равноправног партнера и шаље на удаљену крајњу тачку .

Сва основна логика ВиреГуард-а заузима мање од 4 хиљаде линија кода, док ОпенВПН и ИПСец имају стотине хиљада линија. Да би се подржали савремени криптографски алгоритми, предлаже се да се у Линук кернел укључи нови криптографски АПИ цинк. Тренутно се води дискусија о томе да ли је ово добра идеја.

Перформансе

Максимална предност у перформансама (у поређењу са ОпенВПН и ИПСец) биће приметна на Линук системима, пошто је ВиреГуард тамо имплементиран као модул кернела. Поред тога, подржани су мацОС, Андроид, иОС, ФрееБСД и ОпенБСД, али у њима ВиреГуард ради у корисничком простору са свим последицама које произилазе из тога. Очекује се да ће Виндовс подршка бити додата у блиској будућности.

Бенцхмарк резултати са званични сајт:

Да ли је ВиреГуард одличан ВПН будућности?

Моје искуство коришћења

Нисам стручњак за ВПН. Једном сам ручно подесио ОпенВПН и било је веома заморно, а нисам ни пробао ИПСец. Превише је одлука које треба донети, врло је лако пуцати себи у ногу. Због тога сам увек користио готове скрипте за конфигурисање сервера.

Дакле, ВиреГуард је, са моје тачке гледишта, генерално идеалан за корисника. Све одлуке ниског нивоа се доносе у спецификацији, тако да процес припреме типичне ВПН инфраструктуре траје само неколико минута. Готово је немогуће варати у конфигурацији.

Процес инсталације детаљно описано на званичном сајту, посебно бих желео да приметим одлично ОпенВРТ подршка.

Кључеве за шифровање генерише услужни програм wg:

SERVER_PRIVKEY=$( wg genkey )
SERVER_PUBKEY=$( echo $SERVER_PRIVKEY | wg pubkey )
CLIENT_PRIVKEY=$( wg genkey )
CLIENT_PUBKEY=$( echo $CLIENT_PRIVKEY | wg pubkey )

Затим морате да креирате конфигурацију сервера /etc/wireguard/wg0.conf са следећим садржајем:

[Interface]
Address = 10.9.0.1/24
PrivateKey = $SERVER_PRIVKEY
[Peer]
PublicKey = $CLIENT_PUBKEY
AllowedIPs = 10.9.0.2/32

и подићи тунел скриптом wg-quick:

sudo wg-quick up /etc/wireguard/wg0.conf

На системима са системд-ом можете користити ово уместо тога sudo systemctl start [email protected].

На клијентској машини направите конфигурацију /etc/wireguard/wg0.conf:

[Interface]
PrivateKey = $CLIENT_PRIVKEY
Address = 10.9.0.2/24
[Peer]
PublicKey = $SERVER_PUBKEY
AllowedIPs = 0.0.0.0/0
Endpoint = 1.2.3.4:51820 # Внешний IP сервера
PersistentKeepalive = 25 

И подигните тунел на исти начин:

sudo wg-quick up /etc/wireguard/wg0.conf

Остаје само да конфигуришете НАТ на серверу тако да клијенти могу да приступе Интернету и готови сте!

Ова лакоћа коришћења и компактност базе кода постигнута је елиминацијом функционалности дистрибуције кључева. Не постоји сложен систем сертификата и сав овај корпоративни ужас; кратки кључеви за шифровање се дистрибуирају слично као ССХ кључеви. Али ово представља проблем: ВиреГуард неће бити тако лак за имплементацију на неким постојећим мрежама.

Међу недостацима, вреди напоменути да ВиреГуард неће радити преко ХТТП проксија, јер је само УДП протокол доступан као транспорт. Поставља се питање: да ли ће бити могуће замаглити протокол? Наравно, ово није директан задатак ВПН-а, али за ОпенВПН, на пример, постоје начини да се преруши у ХТТПС, који помаже становницима тоталитарних земаља да у потпуности користе Интернет.

Налази

Да резимирамо, ово је веома занимљив и обећавајући пројекат, већ га можете користити на личним серверима. Која је зарада? Високе перформансе на Линук системима, лакоћа подешавања и подршке, компактна и читљива база кода. Међутим, прерано је журити са преношењем сложене инфраструктуре на ВиреГуард; вреди сачекати њено укључивање у језгро Линука.

Да бих уштедела своје (и ваше) време, развио сам се ВиреГуард аутоматски инсталатер. Уз његову помоћ, можете да подесите лични ВПН за себе и своје пријатеље, а да не разумете ништа о томе.

Извор: ввв.хабр.цом

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