Port 443 odpovedá, SSTP stále zlyháva: ktorá fáza sa zlomila?
Niečo prijalo spojenie a tunel sa napriek tomu nepostaví. Oddeľte transport, certifikát, vyjednávanie SSTP a overovanie PPP.
Dokončenie TCP handshake na port 443, zatiaľ čo sa tunel nikdy nepostaví, dokazuje jednu vec, a je to malá vec. Niečo počúva a je ochotné prijať spojenie na tejto adrese. Neidentifikuje to službu, certifikát, ktorý bude predložený, ani čo sa stane po prvých bajtoch.
Medzi týmto handshake a fungujúcim tunelom stoja štyri fázy a každá produkuje inú chybu.
Otvorený port opisuje len jednu vrstvu
Prijať TCP spojenie znamená, že proces vlastní socket a cesta umožňuje handshake. Nič to nehovorí o tom, či je tento proces SSTP server, či má certifikát platný pre názov vo vašom profile, alebo či autorizuje váš účet. Webový server na tej istej adrese odpovedá na handshake dokonale a potom odpovie na vašu SSTP požiadavku chybou HTTP. Všetko nad týmto handshake zostáva neotestované.
Berte test portu ako najlacnejší možný filter, nie ako verdikt. Jeho hodnota je v tom, že odstraňuje celú kategóriu zlyhaní, nie v tom, že potvrdzuje všetko nad sebou.
Zámena týchto dvoch je dôvod, prečo ľudia preinštalúvajú klientov po teste, ktorý nikdy nepreskúmal skutočný problém klienta.
Oddeľte štyri fázy dôkazmi
Fázy sú dosiahnuteľnosť transportu, validácia TLS, výmena SSTP cez HTTPS a overovanie PPP vnútri tunela. Cesta, ktorá prejde prvou a zlyhá na štvrtej, potrebuje opravu prihlasovacích údajov; tá, ktorá zlyhá na druhej, potrebuje opravu certifikátu alebo názvu. Tieto opravy nemajú nič spoločné a výber nesprávnej plytvá výpadkom.
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/
Tretí príkaz stojí za pozorné prečítanie. 200 z bežnej webovej stránky vám hovorí, že webová služba existuje; nehovorí, že SSTP požiadavka bude pochopená. 404 z tej istej adresy je rovnako neinformatívny o VPN. Len klientsky log vám povie, ktorú zo štyroch fáz dosiahol.
Všimnite si, aký názov každý príkaz použil. Certifikát sa vyberá podľa názvu, ktorý odošlete, takže nesúlad medzi profilom a testom je nesúlad, ktorý ste zaviedli vy. Zapísanie tohto názvu vedľa výsledku neskôr zabráni zámene.
Čítajte čiastočný úspech správnym smerom
Sprostredkovateľ môže povoliť bežné prehliadanie a odmietnuť neskoršiu výmenu, preto proxy, ktoré funguje pre weby, môže stále zlyhať pre tunel. Rovnaký vzor sa objavuje, keď je certifikát platný pre názov prehliadača, ale nie pre názov nakonfigurovaný v profile: prehliadač je spokojný a klient nie, a obaja majú pravdu v tom, čo skontrolovali.
Ponechajte overovanie servera zapnuté, kým to diagnostikujete. Vypnutie premení nesúlad certifikátu na úspešný handshake a skryje jediný dôkaz, ktorý by zlyhanie vysvetlil.
Ak ten istý profil funguje z inej siete, rozdiel závisí od cesty. To zúži hľadanie na sprostredkovateľov bez toho, aby povedalo ktorého, a stále je to užitočný krok vpred. Zaznamenajte sieť, ktorú ste použili, pretože porovnanie je bez nej bezcenné.
Potom testujte aplikáciu, nielen reláciu
Keď relácia existuje, overte zamýšľanú trasu, preklad názvov a povolenie služby z klienta, ktorý ich potrebuje. Pripojený tunel môže mať stále chýbajúce preposielanie na vzdialenej strane alebo spätnú trasu, ktorá nikdy neexistovala, a tieto zlyhania vyzerajú pre čakajúceho človeka presne ako problém aplikácie.
Držte každý záver pripnutý k fáze, ktorá ho vytvorila. Nazvať otvorený port fungujúcim VPN je spôsob, akým sa päťminútová kontrola certifikátu zmení na deň preinštalácie softvéru.