Dokončení TCP handshake na port 443, zatímco se tunel nikdy nepostaví, dokazuje jednu věc, a je to malá věc. Něco naslouchá a je ochotno přijmout spojení na této adrese. Neidentifikuje to službu, certifikát, který bude předložen, ani co se stane po prvních bajtech.

Mezi tímto handshake a fungujícím tunelem stojí čtyři fáze a každá produkuje jinou chybu.

Otevřený port popisuje jen jednu vrstvu

Přijmout TCP spojení znamená, že proces vlastní socket a cesta umožňuje handshake. Nic to neříká o tom, zda je tento proces SSTP server, zda má certifikát platný pro jméno ve vašem profilu, nebo zda autorizuje váš účet. Webový server na stejné adrese odpovídá na handshake dokonale a pak na váš SSTP požadavek odpoví chybou HTTP. Vše nad tímto handshake zůstává neotestované.

Berte test portu jako nejlevnější možný filtr, ne jako verdikt. Jeho hodnota je v tom, že odstraňuje celou kategorii selhání, ne v tom, že potvrzuje vše nad sebou.

Záměna těchto dvou věcí je důvod, proč lidé přeinstalovávají klienty po testu, který nikdy neprozkoumal skutečný problém klienta.

Oddělte čtyři fáze důkazy

Fáze jsou dosažitelnost transportu, validace TLS, výměna SSTP přes HTTPS a ověřování PPP uvnitř tunelu. Cesta, která projde první a selže na čtvrté, potřebuje opravu přihlašovacích údajů; ta, která selže na druhé, potřebuje opravu certifikátu nebo jména. Tyto opravy nemají nic společného a volba špatné plýtvá výpadkem.

nc -vz vpn.example.net 443
openssl s_client -connect vpn.example.net:443 -servername vpn.example.net -brief
curl -sS -o /dev/null -w '%{http_code}\n' https://vpn.example.net/

Třetí příkaz stojí za pozorné přečtení. 200 z běžné webové stránky vám říká, že tam webová služba je; neříká, že SSTP požadavek bude pochopen. 404 ze stejné adresy je stejně neinformativní o VPN. Jen klientský log vám řekne, které ze čtyř fází dosáhl.

Všimněte si, jaké jméno každý příkaz použil. Certifikát se vybírá podle jména, které odešlete, takže nesoulad mezi profilem a testem je nesoulad, který jste zavedli vy. Zapsání tohoto jména vedle výsledku později zabrání zmatení.

Čtěte částečný úspěch správným směrem

Zprostředkovatel může povolit běžné prohlížení a odmítnout pozdější výměnu, proto proxy, která funguje pro weby, může stále selhat pro tunel. Stejný vzor se objevuje, když je certifikát platný pro jméno prohlížeče, ale ne pro jméno nakonfigurované v profilu: prohlížeč je spokojený a klient ne, a oba mají pravdu v tom, co zkontrolovaly.

Ponechte ověřování serveru zapnuté, dokud to diagnostikujete. Vypnutí promění nesoulad certifikátu v úspěšný handshake a skryje jediný důkaz, který by selhání vysvětlil.

Pokud stejný profil funguje z jiné sítě, rozdíl závisí na cestě. To zúží hledání na zprostředkovatele, aniž by řeklo kterého, a je to stále užitečný krok vpřed. Zaznamenejte síť, kterou jste použili, protože srovnání je bez ní bezcenné.

Potom testujte aplikaci, ne jen relaci

Jakmile relace existuje, ověřte zamýšlenou trasu, překlad jmen a oprávnění služby z klienta, který je potřebuje. Připojený tunel může mít stále chybějící přesměrování na vzdálené straně nebo zpětnou trasu, která nikdy neexistovala, a tato selhání vypadají pro čekajícího člověka přesně jako problém aplikace.

Držte každý závěr připojený k fázi, která ho vytvořila. Nazvat otevřený port fungující VPN je způsob, jak se pětiminutová kontrola certifikátu změní v den přeinstalace softwaru.

Související články