SSTP spojenie zlyháva dvoma spôsobmi, ktoré z pohľadu používateľa vyzerajú rovnako, a oprava každého leží v inej vrstve. Časový limit znamená, že povinná výmena sa nikdy neskončila; chyba certifikátu znamená, že materiál identity dorazil a bol odmietnutý. Ak druhé považujete za prvé, idete po firewalloch a heslách, ktoré nikdy neboli problémom. Rozlišujúci dôkaz je v logu samotného klienta, ak si ho prečítate skôr, než čokoľvek zmeníte.

Dve zlyhania, dve rôzne výmeny

SSTP nesie tunel vnútri relácie v tvare HTTPS, preto prežíva v sieťach, ktoré nepovoľujú nič iné ako 443. Klient dokončí TLS handshake, odošle HTTP požiadavku s metódou špecifickou pre protokol a potom tunel beží vnútri tohto toku. Zlyhanie v ktoromkoľvek z týchto krokov spojenie zastaví a len tie neskoršie zahŕňajú prihlasovacie údaje.

Toto poradie je diagnostika. Ak sa TLS handshake nikdy nedokončí, neboli odoslané žiadne prihlasovacie údaje, takže reset hesla nepomôže. Ak sa handshake dokončí a potom uviazne, identita bola prijatá a niečo na ceste požiadavky ju odmietlo. Ak handshake zlyhá s validačnou správou, server odpovedal a klientovi sa nepáčilo, čo počul. Tri výsledky, tri vrstvy.

Riadok v logu zvyčajne hovorí, v ktorom z troch prípadov ste, preto sa ho oplatí zachytiť pred prvou zmenou.

Časový limit znamená, že fáza sa nikdy neskončila

Začnite prekladom mien a dostupnosťou TCP, pretože časový limit tam vyzerá rovnako ako časový limit neskôr. Kontrola portu, ktorá hlási, že 443 je otvorený, dokazuje len to, že naslúchajúci prijal spojenie, a nič viac.

Ďalší podozrivý je cesta, nie hostiteľ. Proxy a firewally rozpoznávajúce aplikácie niekedy odmietnu metódu požiadavky, ktorú SSTP používa, alebo zahodia tok, ktorý zostáva otvorený hodiny, a oba prejavy vyzerajú z pohľadu klienta ako časový limit. Bežná stránka HTTPS z toho istého hostiteľa sa načíta bezchybne, zatiaľ čo metóda tunela je odmietnutá, preto prehliadanie koncového bodu dokazuje tak málo. Otestujte to zo siete bez proxy, aby ste oba prípady oddelili.

Test-NetConnection vpn.example.com -Port 443
netsh http show sslcert
Get-WinEvent -LogName 'Microsoft-Windows-RasSstp/Operational' -MaxEvents 20

Časový limit pred akoukoľvek odpoveďou protistrany nič nehovorí o účte a zmena hesla v tej chvíli len pridá premennú.

Chyba certifikátu znamená, že identita bola odmietnutá

Tu server skutočne odpovedal, takže sieť funguje a otázka sa presúva k identite. Porovnajte názov, ktorým klient volá, s názvami, ktoré certifikát skutočne tvrdí, a potom skontrolujte dátumy platnosti a vydavateľský reťazec.

Súkromná CA, ktorej klient nedôveruje, vytvára rovnakú triedu chyby ako prepadnutý certifikát, a rovnako aj hodiny, ktoré sa rozchádzajú o hodiny. Volanie na surovú adresu vytvára novú nezhodu, pretože certifikát tvrdí názvy, nie adresy. V riadenom nasadení si vyžiadajte zamýšľanú konfiguráciu dôvery od jej správcu namiesto toho, aby ste prijali náhradný koreň ponúkaný chybovou stránkou. Validácia zostáva zapnutá, kým príčinu neopravíte.

openssl s_client -connect vpn.example.com:443 -servername vpn.example.com </dev/null 2>/dev/null | openssl x509 -noout -subject -issuer -dates -ext subjectAltName
w32tm /query /status

Úspešnú TLS fázu nechajte po prechode nedotknutú, pretože jej neskoršie zrušenie skryje, ktorá zmena tunel skutočne opravila.

Kde sa obe mýlia

Obe zlyhania vyzerajú ako spojenie, ktoré sa nezdvihne, a obe prichádzajú po tom, čo používateľ zmenil niečo nesúvisiace. Práve tá zhoda robí nesprávnu opravu na chvíľu uveriteľnou.

Dva zvyky ich držia oddelené. Zachyťte log klienta skôr, než sa dotknete konfigurácie, aby prvý stav zostal. Meňte jednu vrstvu na pokus, aby nasledujúci výsledok patril známej premennej. Kontrola portu aj prehliadač sú čiastočné pozorovania, nie celá postupnosť, a ani jedno nenahrádza vlastnú správu klienta. Ani jeden zvyk nič nestojí a oba skracujú vyšetrovanie.

Otázka certifikátu a otázka dostupnosti sú zdokumentované oddelene z nejakého dôvodu.

Otestujte znova skutočným klientom a potom choďte dovnútra

Keď je konkrétna oprava na mieste, skúste to znova so skutočným klientom SSTP a opravdovým profilom, nie s kartou prehliadača.

rasdial "Corp SSTP" /disconnect
rasdial "Corp SSTP" user '*'
Get-VpnConnection -Name "Corp SSTP" | Select-Object ServerAddress, TunnelType, AuthenticationMethod

Ak sa relácia pripojí a zdroje stále zlyhávajú, tunel už nie je podozrivý: prejdite na smerovanie, DNS a prístup k službám. To je iné vyšetrovanie s inými dôkazmi. Zachovanie funkčných fáz TLS a overovania bráni tomu, aby sa to stalo opakovaním prvého. Zapíšte do tiketu fázu, ktorá zlyhala, inak ďalší človek začne znova od začiatku.

Súvisiace články