Štyri rodiny protokolov pokrývajú takmer každé zariadenie, ktoré ešte stojí v racku, a každá na Linuxe zlyháva inak. Publikované porty a nakonfigurované návrhy druhej strany určujú váš balík, nie distribúcia, ktorú práve používate. Nainštalovať to, čo spomína príspevok na fóre, a potom upravovať, kým sa niečo nepripojí, je spôsob, akým zmizne popoludnie. Prečítajte zariadenie, nainštalujte ako druhé, overte ako tretie.

Zapíšte, čo druhá strana publikuje

Pred otvorením správcu balíkov zapíšte protokol, porty a autentifikáciu, ktoré zariadenie očakáva. Štyri rodiny pokrývajú väčšinu starého vybavenia a tabuľka nižšie je celé rozhodnutie na jednej obrazovke.

FamilyPortsLinux side
PPTPTCP 1723 plus GRE, IP protocol 47pppd with a peer file
L2TP/IPsecUDP 500, 4500, 1701NetworkManager plugin over strongSwan
IKEv1 aggressive with XAuthUDP 500native strongSwan connection
AnyConnect-style portalTCP 443openconnect with a TUN device

Príručka a vlastné pravidlá firewallu zariadenia sú spoľahlivejšie než názov protokolu na jeho prihlasovacej stránke. Zariadenie inzerujúce IPsec môže hovoriť len IKEv1 a vydanie firmvéru, ktoré nikto nenainštaloval, môže byť to, čo napokon pridá IKEv2. Overte dátovú cestu aj port nastavenia, pretože práve tam sa staré vybavenie a moderné siete rozchádzajú. Pomýliť sa v tomto kroku znamená ladiť klienta proti funkcii, ktorú druhá strana nikdy nemala.

PPTP: dokážte GRE, skôr než upravíte pppd

PPTP na Linuxe nie je démon, ktorý spustíte, ale volanie pppd, a parametre pripojenia žijú v pomenovanom peer súbore, ktorý pppd prečíta pri zavolaní. Distribúcie ho stále balia, hoci známe slabiny protokolu ho robia nevhodným pre čokoľvek citlivé, takže ho držte striktne pre zariadenie, ktoré neponúka nič iné. Sledujte GRE, kým klient vyjednáva, krátkym zachytením namiesto hádania. Zlyhanie, ktoré stratí najviac času, nie je autentifikácia, ale chýbajúca dátová cesta.

pppd call branch-office
tcpdump -ni any proto gre -c 5

Ak sa nastavenie dokončí a spojenie nikdy neprenáša prevádzku, podozrievajte cestu GRE, skôr než sa dotknete prihlasovacích údajov. Cloudové bezpečnostné skupiny potrebujú výslovné pravidlo pre protokol 47 a niektoré siete ho úplne blokujú bez viditeľnej chyby. Testujte zo siete, ktorú skutočne použijete, nie z laboratória, ktoré dovolí všetko.

L2TP/IPsec: jeden zodpovedajúci návrh porazí desať pokusov

Čítajte log démona, nie dialóg na ploche, pretože dialóg zlieva niekoľko rôznych zlyhaní do jednej správy. Chyba NO_PROPOSAL_CHOSEN patrí k prvej fáze: klient ponúkol šifrovanie, hash alebo skupinu Diffie-Hellman, ktoré server neprijme. Vypíšte, čo zariadenie podporuje, a napíšte jeden zodpovedajúci návrh, pretože náhodné kombinácie väčšinou dajú tú istú chybu pomalšie. Na ploche je praktickým klientom plugin NetworkManager L2TP so strongSwan alebo Libreswan pod ním.

Reťazec návrhu, ktorý pre plugin na ploche znamená jedno, môže pre démona, ktorému odovzdáva prácu, znamenať niečo iné, takže držte syntax primeranú vrstve, ktorú upravujete. Ak zariadenie žiada aj tajomstvo tunela, je to samostatná fáza od kľúča IPsec. Overte, na ktoré z dvoch sa rozhranie pýta, skôr než doň čokoľvek napíšete.

Agresívny IKEv1 s XAuth a prípad portálu

Koncový bod v štýle FortiGate zvyčajne chce agresívny režim s XAuth a adresu v konfigurovanom režime, čo grafický plugin nemusí vôbec zobraziť. Natívny démon to zvládne a blok nižšie je podoba takej konfigurácie, nie úplný súbor. Pre hodnoty návrhu si pozrite aktuálnu dokumentáciu výrobcu.

conn branch
    keyexchange=ikev1
    aggressive=yes
    leftauth=psk
    leftauth2=xauth
    leftsourceip=%config
    right=203.0.113.10

Staršie vydania strongSwan používali xauth=client tam, kde verzia 5 používa leftauth2=xauth, takže skopírovaný úryvok môže zlyhať už na syntaxi. Pre portál TLS openconnect hovoriaci protokolom AnyConnect zvládne Cisco a väčšinu premenovaných značiek a potrebuje zariadenie TUN a oprávnenia na jeho konfiguráciu. Odovzdajte adresu portálu presne tak, ako ju zobrazuje prehliadač, vrátane prípadnej cesty, ktorú zariadenie očakáva, a potom skontrolujte pridelenú adresu, skôr než čokoľvek za ňou otestujete. Vytvorenie rozhrania vopred odstráni jednu triedu prekvapení počas nastavenia.

sudo ip tuntap add dev tun0 mode tun
sudo openconnect --protocol=anyconnect vpn.example.com

Pripojte sa, potom overujte v pevnom poradí

Spúšťajte vždy len jedného správcu VPN, pretože profil NetworkManager a ručne spustený démon sa budú biť o trasy a DNS. Pred testovaním ručného pripojenia profil zložte a overte, že nezostalo žiadne staré rozhranie tunela. Potom overujte v tomto poradí: adresa tunela, trasa k jedinému internému hostiteľovi, ktorého potrebujete, preklad mien a nakoniec skutočná požiadavka. Zelená ikona dokazuje autentifikáciu a nič iné.

ip -4 addr show tun0
ip route get 10.20.30.10
getent hosts app.internal

Ak niektorý krok zlyhá, zastavte sa tam namiesto testovania ďalšieho, pretože zlyhanie DNS po rozbitej trase vás nič nenaučí. Pred experimentovaním uložte kópiu funkčného profilu, pretože vymazaný súbor pripojenia sa ľahko stratí a ťažko obnovuje. Uchovávajte hodnoty návrhu v tej istej poznámke ako model zariadenia a verziu firmvéru, pretože tá poznámka je rozdiel medzi migráciou a archeologickým projektom, keď sa krabica vymení.

Súvisiace články