Ускладите Linux VPN клијент са протоколом старог уређаја
Прочитајте објављене портове уређаја, затим инсталирајте одговарајући клијент: pppd преко GRE-а, strongSwan за IKEv1 XAuth или openconnect за портал.
Четири породице протокола покривају скоро сваки уређај који још стоји у рацку, и свака на Linux-у отказује на другачији начин. Објављени портови и конфигурисани предлози даље стране одређују ваш пакет, а не дистрибуција коју случајно покрећете. Инсталирати оно што помиње објава на форуму и затим уређивати док се нешто не повеже јесте начин на који поподне нестане. Прочитајте уређај, инсталирајте као друго, проверите као треће.
Забележите шта објављује даља страна
Запишите протокол, портове и аутентификацију које уређај очекује пре него што отворите менаџер пакета. Четири породице покривају већину старе опреме, а табела испод је цела одлука на једном екрану.
| Family | Ports | Linux side |
|---|---|---|
| PPTP | TCP 1723 plus GRE, IP protocol 47 | pppd with a peer file |
| L2TP/IPsec | UDP 500, 4500, 1701 | NetworkManager plugin over strongSwan |
| IKEv1 aggressive with XAuth | UDP 500 | native strongSwan connection |
| AnyConnect-style portal | TCP 443 | openconnect with a TUN device |
Приручник и сопствена правила заштитног зида уређаја поузданији су од назива протокола на његовој страници за пријаву. Уређај који рекламира IPsec можда говори само IKEv1, а издање фирмвера које нико није применио можда је оно што на крају додаје IKEv2. Потврдите и пут података и порт за подешавање, јер се управо ту стара опрема и модерне мреже разилазе. Погрешити у овом кораку значи тражити грешке у клијенту према функцији коју друга страна никада није имала.
PPTP: докажите GRE пре него што уредите pppd
PPTP на Linux-у није демон који покрећете него позив pppd-а, а параметри везе живе у именованој peer датотеци коју pppd чита када се позове. Дистрибуције га још пакују, иако познате слабости протокола чине га непримереним за било шта осетљиво, па га држите строго за уређај који не нуди ништа друго. Пратите GRE док клијент преговара, кратким снимањем уместо претпоставке. Неуспех који губи највише времена није аутентификација него пут података који недостаје.
pppd call branch-office
tcpdump -ni any proto gre -c 5
Ако се подешавање заврши, а веза никада не преноси саобраћај, посумњајте у пут GRE пре него што додирнете акредитиве. Облачне безбедносне групе захтевају изричито правило за протокол 47, а неке мреже га потпуно блокирају без видљиве грешке. Тестирајте из мреже коју ћете стварно користити, а не из лабораторије која дозвољава све.
L2TP/IPsec: један одговарајући предлог побеђује десет покушаја
Читајте дневник демона, а не дијалог на радној површини, јер дијалог спаја неколико различитих неуспеха у једну поруку. Грешка NO_PROPOSAL_CHOSEN припада првој фази: клијент је понудио шифровање, хеш или Diffie-Hellman групу коју сервер неће прихватити. Набројте шта уређај подржава и напишите један одговарајући предлог, јер случајне комбинације обично дају исту грешку спорије. На радној површини практичан клијент је додатак NetworkManager L2TP са strongSwan-ом или Libreswan-ом испод.
Ниска предлога која за додатак на радној површини значи једно, за демона коме предаје посао може да значи нешто друго, зато држите синтаксу примерену слоју који уређујете. Ако уређај тражи и тајну тунела, то је одвојена фаза од IPsec кључа. Потврдите за које од двоје интерфејс пита пре него што у њега упишете било шта.
Агресивни IKEv1 са XAuth-ом и случај портала
Крајња тачка у стилу FortiGate-а обично жели агресивни режим са XAuth-ом и адресу у конфигурисаном режиму, што графички додатак можда уопште не приказује. Уграђени демон се тиме бави, а блок испод је облик те конфигурације, не потпуна датотека. Проверите актуелну документацију произвођача за вредности предлога.
conn branch
keyexchange=ikev1
aggressive=yes
leftauth=psk
leftauth2=xauth
leftsourceip=%config
right=203.0.113.10
Старија издања strongSwan-а користила су xauth=client тамо где верзија 5 користи leftauth2=xauth, па копирани исечак може да откаже само због синтаксе. За TLS портал openconnect, који говори протокол AnyConnect, бави се Cisco-ом и већином преименованих брендова, и потребан му је TUN уређај плус привилегије да га конфигурише. Проследите адресу портала тачно онако како је приказује прегледач, укључујући сваку путању коју уређај очекује, па проверите додељену адресу пре него што тестирате било шта иза ње. Унапред створен интерфејс уклања једну класу изненађења током подешавања.
sudo ip tuntap add dev tun0 mode tun
sudo openconnect --protocol=anyconnect vpn.example.com
Повежите се, затим проверите у фиксном редоследу
Покрећите тачно један VPN менаџер одједном, јер ће се профил NetworkManager-а и ручно покренут демон борити око рута и DNS-а. Спустите профил пре него што тестирате ручну везу и потврдите да није преживео ниједан стари интерфејс тунела. Затим проверите овим редоследом: адреса тунела, рута до јединог унутрашњег хоста који вам треба, разрешавање имена и на крају стварни захтев. Зелена икона доказује аутентификацију и ништа друго.
ip -4 addr show tun0
ip route get 10.20.30.10
getent hosts app.internal
Ако неки корак не успе, зауставите се тамо уместо да тестирате следећи, јер неуспех DNS-а низводно од сломљене руте не учи вас ничему. Сачувајте копију радног профила пре експериментисања, јер се избрисана датотека везе лако изгуби и тешко поново састави. Држите вредности предлога у истој белешци као модел уређаја и верзију фирмвера, јер је та белешка разлика између миграције и археолошког пројекта када се кутија замени.