Klient stále znova skúša, log sa zastaví pred dokončením handshake a server nezaznamená vôbec nič. Tento vzorec odvádza pozornosť od prihlasovacích údajov k ceste: niečo medzi oboma koncami odmieta prenášať protokol, ktorý tunel potrebuje. Určte, kde sa pakety zastavia, skôr než sa dotknete ktorejkoľvek z oboch konfigurácií, pretože filtrovaný protokol a nesprávne heslo dávajú vo väčšine klientov rovnakú láskavú chybu. Testy sú zoradené podľa nákladov, najlacnejší prvý.

Dokážte, kde sa prevádzka zastaví

Snímajte súčasne na výstupnom rozhraní klienta a na serveri. Porovnajte, čo odišlo, s tým, čo dorazilo, a poznamenajte, v ktorom smere sa rozdiel objaví.

Nič na serveri znamená, že prevádzku zahadzuje cesta alebo prvý NAT, zatiaľ čo príchody bez odpovedí ukazujú na firewall na serveri alebo na neexistujúcu spätnú trasu. Router, ktorý často ukončuje tunely, zvyčajne nevedie užitočný log, takže záznamom sa stane snímka. Zapíšte cieľový port a číslo protokolu, pretože obe zlyhania vyzerajú v dialógu klienta rovnako.

PPTP umiera bez protokolu 47

PPTP prenáša riadenie po TCP 1723 a svoje dáta vnútri GRE, čo je IP protokol 47, nie číslo portu. Presmerovanie iba 1723 prináša klasický výsledok: spojenie sa autentifikuje a potom stíchne, pretože pre protokol, ktorý nesie užitočné zaťaženie, neexistuje žiadne pravidlo. Klient to nedokáže odlíšiť od odmietnutého hesla, a preto musí snímka prísť pred zmenami konfigurácie.

Priechod funguje v opačnom smere ako prichádzajúce presmerovanie a firmware dostatočne často používa jednu značku pre oboje, aby pomýlil všetkých. Na linuxovom klientovi môže miestny firewall zahodiť GRE dávno predtým, než router vôbec zasiahne, takže protokol 47 potrebuje vlastné pravidlo a pomocník conntrack musí byť načítaný. ufw v Ubuntu drží tieto pravidlá v súbore before, pretože bežné pravidlá allow nedokážu vyjadriť číslo protokolu. Potom firewall znova načítajte, namiesto reštartovania stroja.

# /etc/ufw/before.rules, inside *filter
-A ufw-before-input -p gre -j ACCEPT
sudo ufw allow 1723/tcp
sudo modprobe nf_conntrack_pptp
sudo conntrack -L | grep gre

L2TP a IPsec za dvoma NAT

L2TP vnútri IPsec potrebuje UDP 500 na výmenu kľúčov, UDP 4500 pri zistení NAT a ESP ako protokol 50. Každé z nich sa filtruje nezávisle, takže pravidlo povoľujúce jedno nič nedokazuje o ostatných dvoch. Dva routery v sérii prekladajú každý paket dvakrát a koncové body sa už nezhodujú na tom, čo bolo dohodnuté.

Premosťte vonkajší modem alebo vypnite NAT na vnútornom routeri, aby sa verejná adresa dostala k zariadeniu, ktoré tunel ukončuje. Kde nie je možné ani jedno, tunel sa musí iniciovať zvnútra hranice dvojitého NAT, nie tam ukončovať.

Siete operátorov a zdieľanie adries

WAN adresa v rozsahu 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 alebo 100.64.0.0/10 znamená, že router nemá verejnú adresu a žiadne prichádzajúce presmerovanie z internetu sa k nemu nedostane. NAT na úrovni operátora navyše filtruje protokoly, ktoré neočakáva, a GRE je na mobilných linkách častou obeťou. Porovnajte WAN adresu na samotnom routeri, nie adresu, ktorú uvádza vyhľadávacia stránka pre klienta za ním.

Prevádzka toho istého routera na káblovej linke oddelí zistenie o operátorovi od chyby v konfigurácii jediným testom. Kde operátor protokol odmieta, zostávajú možnosti iný transport na 443 alebo tunel iniciovaný zvnútra.

Prečítajte si zoznam poslucháčov, než zavriete porty

Znepokojujúce skenovanie portov je často len sada funkcií, ktorá sa dodáva zapnutá. Zinventarizujte poslucháčov, priraďte každý socket k funkcii a potom funkciu vypnite namiesto blokovania portu, aby sa oba pohľady nerozišli.

ss -lntup
systemctl list-units --type=service --state=running | grep -i vpn
nc -vz 203.0.113.10 1723
nc -vzu 203.0.113.10 4500

Predvolené nastavenia SoftEther sú dobrý príklad: TCP 443, 992 a 5555, pričom funkcie L2TP/IPsec a DNS tunela pridávajú vlastné sockety. Vypnutie týchto funkcií poslucháčov odstráni, namiesto toho aby ich skrylo, a test z vonkajšieho hostiteľa povie, či operátor port vôbec prepustí. Poslucháč, ktorý odpovedá lokálne, môže byť stále zatvorený vyššie, preto porovnajte vlastnú WAN adresu routera s tým, čo hlási vonkajšia služba.

Súvisiace články