SSTP versoeit, wou den HTTPS vum Browser geléngt: firwat
SSTP leeft an TLS op Port 443, awer et ass keng Web-Ufro. Test TCP, TLS-Identitéit, den SSTP-Austausch an d'PPP-Authentifikatioun als getrennte Stufen.
Den Browser öffnet den VPN-Hostnumm iwwer HTTPS ouni Klo, an de SSTP-Client refuséiert nach ëmmer ze verbannen. Et ass näischt widderspréchlech un dësem Pair. SSTP benotzt TLS als baussenzege Transport an dréit duerno seng eege Ufro an d'PPP-Last bannent dëser Verbindung aus, sou datt eng erfollegräich Säit nëmmen eng schmuel Saach beweist: den Host äntwert op eng GET op Port 443. De Client stellt eng aner Fro, an de Server äntwert se vläicht schlecht.
D'Säit luedt an den Tunnel net
D'Leit gräifen zur Browsertest, well se séier ass, an huelen d'Resultat duerno als Beweis, datt de Server erreechbar an konfiguréiert ass. Et ass e Beweis iwwer eng GET op de Wee, deen d'Adressbar opgemaach huet, net méi. D'VPN-Gespréich fänkt no der selwechter TLS-Handshake un, schéckt awer eng Method an e Wee, déi eng Websäit ni benotzt. Eng 200 fir de Browser seet also näischt doriwwer, ob den SSTP-Endpunkt existéiert.
Trennt déi zwou Observatiounen an d'Sich gëtt méi kuerz. Transport a Certificatketten funktionéieren, an eppes am Protokollaustausch driwwer funktionéiert net. Dat ass eng aner Enquête wéi e gebrachenen Port oder en ofgelafene Certificat, an et brauch aner Beweiser.
Wat den SSTP-Client tatsächlech schéckt
De Client schéckt eng HTTP-Ufro mat der Method SSTP_DUPLEX_POST op de Wee /sra_{GUID}/, an hält duerno de Kierper vun der Verbindung op als en zweerichtungs-Stream, deen PPP-Framen dréit. En anstännege Server äntwert HTTP/1.1 200 a behält sech net méi wéi e Webserver. Alles anescht ass eng Ënnerschrëft: 405 oder 404 bedeit, den Endpunkt ass net do, 301 oder 302 bedeit, eppes ëmleed d'Ufro, an en direkte FIN bedeit, e Proxy oder Server huet de Stream zougemaach.
Dofir muss d'Zil en SSTP-Server sinn an net e Webserver mat engem TLS-Certificat ugeschrauft. D'Method, de Wee an de laangliewege Kierper sinn Protokollfuerderungen, dofir kann en ëmgekéierte Proxy se net just duerch Konfiguratioun bäisetzen. En Proxy, deen normalt HTTPS perfekt weidergëtt, kann eng Method, déi en net kennt, awer nach ëmmer refuséieren.
Wou e Proxy oder Webserver de Stream brécht
En Tëschemann inspizéiert d'HTTP-Ufroslinn, ier en eppes weidergëtt, an eng personaliséiert Method mat engem ongewéinleche Wee kann a senge Reegele feelen. E puer Geräter servéieren eng normal Säit, wärend se den Tunnel refuséieren oder ënnerbriechen, dofir mellt de Client eng Verbindung, déi ufänkt an duerno stierft, amplaz enger propperer Refus. Anerer akzeptéieren d'Ufro a setzen duerno en Kierper- oder Idle-Timeout, deen d'PPP-Keepalive net iwwerstoen. Béid gesinn aus der Clientssäit d'selwecht aus, dofir ass d'Stufe, déi feelgeschloen ass, wichteger wéi den Feelertext.
Port 443 tëschent enger Websäit an SSTP ze deelen ass eng Routing-Entscheedung, net en Verspriechen, datt all Hop béid Gespréicher gläich behandelt. Wann en Loadbalancer, Firewall oder TLS-Terminator um Wee läit, setzt en op d'Lëscht vun de Verdächtegen, ier Dir d'VPN-Konfiguratioun untippt.
Test d'Stufen getrennt
Fuert d'Kontrollen an der Rei aus a stoppt beim éischte Feeler, well all Stuf eng aner Schicht ausschléisst. Déi TLS-Sond hei drënner trennt d'Certificatsidentitéit vun allem, wat SSTP mécht. Ersetzt den Hostnumm duerch Ären Endpunkt a liest den Subject an d'Kette, déi se dréckt.
openssl s_client -connect vpn.example.com:443 -servername vpn.example.com
Map dann déi reschtlech Beweiser op d'Stufen, amplaz aus dem Clientfeeler ze roden. D'Tabell hei drënner ass d'Checklëscht fir den Ticket, mat der Ënnerschrëft, déi een Feeler vum nächsten trennt.
| Stage | What it proves | Failure signature |
|---|---|---|
| TCP to 443 | A listener exists and the path is open | Timeout or connection refused |
| TLS with SNI | The certificate matches the name you use | Name mismatch or untrusted chain |
| SSTP_DUPLEX_POST exchange | The endpoint is an SSTP server | 405, 404, 301 or an early FIN |
| PPP authentication | The user credential was accepted | Auth failure after a 200 response |
| Inner routing | A permitted destination is reachable | Tunnel up, no reply from the target |
Notéiert déi lescht Stuf, déi geléngt huet, am Ticket, amplaz "kann net verbannen" ze schreiwen. D'MS-SSTP-Spezifikatioun dokumentéiert d'Ufro an den PPP-Austausch, déi no der TLS-Handshake kommen, an ass d'Referenz firwat eng Browsertest keen vun deenen zwou ersetze kann.
Éischter d'Identitéit, duerno PPP
TLS-Identitéit an PPP-Authentifikatioun sinn hannereneen, net alternativ, an hir Verwiesselung schéckt d'Leit op déi falsch Serverastellung. De Client validéiert fir d'éischt den Servercertificat an säi virgesinn Zweck, duerno verhandelt PPP säin eegene Staat an authentifizéiert de Benotzer mat enger Challenge-Response-Method oder EAP. E Certificatsproblem gëtt en anere Feeler wéi en refuséierte Passwuert, a kee vun deenen zwee Feeler beschreift d'Stuf, déi deen aneren deckt.
Den Hostnumm duerch eng Adress ersetzen, oder iwwer d'Certificatwarnung klicken, entfernt d'Kontroll, déi d'feelerhaft Stuf identifizéiert hätt, amplaz se ze fixéieren. Behält d'Warnung a liest se. Setzt och kee PPP-Passwuert zréck, wann den HTTP-Austausch ni d'SSTP-Verhalen erreecht huet, well d'Zougangsdaten ni gefrot goufen.