La retumilo malfermas la VPN-gastigantan nomon per HTTPS sen plendo, kaj la SSTP-kliento ankoraŭ rifuzas konektiĝi. Nenio en tiu paro estas kontraŭdira. SSTP uzas TLS kiel eksteran transporton kaj poste plenumas sian propran peton kaj PPP-ŝarĝon ene de tiu konekto, do sukcesa paĝa ŝarĝo pruvas nur unu mallarĝan aferon: la gastiganto respondas al GET sur pordo 443. La kliento demandas alian demandon, kaj la servilo eble respondos ĝin malbone.

La paĝo ŝarĝiĝas kaj la tunelo ne

Homoj turnas sin al la retumila testo ĉar ĝi estas rapida, kaj poste traktas la rezulton kiel pruvon, ke la servilo estas atingebla kaj agordita. Ĝi estas pruvo pri GET al tiu vojo, kiun malfermis la adresbreto, nenio pli. La VPN-babilado komenciĝas post la sama TLS-manpremo, sed sendas metodon kaj vojon, kiujn retpaĝo neniam uzas. Do respondo 200 por la retumilo diras nenion pri tio, ĉu la SSTP-finpunkto ekzistas.

Apartigu la du observojn kaj la serĉado mallongiĝas. Transporto kaj atestila ĉeno funkcias, kaj io en la protokola interŝanĝo super ili ne funkcias. Tio estas alia esploro ol rompita pordo aŭ eksvalidiĝinta atestilo, kaj ĝi postulas aliajn pruvojn.

Kion la SSTP-kliento efektive sendas

La kliento sendas HTTP-peton kun la metodo SSTP_DUPLEX_POST al la vojo /sra_{GUID}/, poste tenas la korpon de la konekto malferma kiel dudirekta fluo portanta PPP-kadrojn. Konforma servilo respondas HTTP/1.1 200 kaj ĉesas konduti kiel retservilo. Io ajn alia estas subskribo: 405 aŭ 404 signifas, ke la finpunkto ne ekzistas, 301 aŭ 302 signifas, ke io alidirektas la peton, kaj tuja FIN signifas, ke prokurilo aŭ servilo fermis la fluon.

Tial la celo devas esti SSTP-servilo, ne retservilo kun alŝraŭbita TLS-atestilo. La metodo, la vojo kaj la longdaŭra korpo estas protokolaj postuloj, do inversa prokurilo ne povas aldoni ilin nur per agordo. Prokurilo, kiu perfekte plusendas ordinaran HTTPS, tamen povas rifuzi metodon, kiun ĝi ne rekonas.

Kie prokurilo aŭ retservilo rompas la fluon

Interulo inspektas la HTTP-petan linion antaŭ ol plusendi ion, kaj propra metodo kun nekutima vojo povas malsukcesi ĉe ĝiaj reguloj. Iuj aparatoj servas normalan paĝon dum ili rifuzas aŭ interrompas la tunelon, do la kliento raportas konekton, kiu komenciĝas kaj poste mortas, anstataŭ puran rifuzon. Aliaj akceptas la peton, poste aplikas limtempon de korpo aŭ senaktiveco, kiun la PPP-keepalive ne postvivas. Ambaŭ aspektas same de la klienta flanko, tial la etapo, kiu malsukcesis, pli gravas ol la erarteksto.

Dividi pordon 443 inter retejo kaj SSTP estas enkursiga decido, ne promeso, ke ĉiu salteto traktas ambaŭ babiladojn same. Se en la vojo sidas ŝarĝbalancilo, fajroŝirmilo aŭ TLS-finilo, aldonu ĝin al la listo de suspektatoj antaŭ ol tuŝi la VPN-agordon.

Testu la etapojn aparte

Plenumu la kontrolojn laŭorde kaj haltu ĉe la unua malsukceso, ĉar ĉiu etapo ekskludas alian tavolon. La TLS-sondilo sube apartigas atestilan identecon de ĉio, kion SSTP faras. Anstataŭigu la gastigantan nomon per via finpunkto kaj legu la subjekton kaj la ĉenon, kiujn ĝi presas.

openssl s_client -connect vpn.example.com:443 -servername vpn.example.com

Poste mapu la ceterajn pruvojn al la etapoj anstataŭ diveni el la klienta eraro. La tabelo sube estas la kontrol-listo por citi en la bileto, kun la subskribo, kiu apartigas unu malsukceson de la sekva.

StageWhat it provesFailure signature
TCP to 443A listener exists and the path is openTimeout or connection refused
TLS with SNIThe certificate matches the name you useName mismatch or untrusted chain
SSTP_DUPLEX_POST exchangeThe endpoint is an SSTP server405, 404, 301 or an early FIN
PPP authenticationThe user credential was acceptedAuth failure after a 200 response
Inner routingA permitted destination is reachableTunnel up, no reply from the target

Notu en la bileto la lastan etapon, kiu sukcesis, anstataŭ skribi "ne eblas konekti". La MS-SSTP-specifikaĵo dokumentas la peton kaj la PPP-interŝanĝon, kiuj sekvas la TLS-manpremon, kaj estas la referenco por kial retumila testo ne povas anstataŭi iun el ili.

Unue identeco, poste PPP

TLS-identeco kaj PPP-aŭtentikigo estas sinsekvaj, ne alternativaj, kaj konfuzi ilin sendas homojn al malĝusta servila agordo. La kliento unue validigas la servilan atestilon kaj ĝian celitan uzon, poste PPP intertraktas sian propran staton kaj aŭtentikigas la uzanton per defio-responda metodo aŭ EAP. Atestila problemo produktas alian eraron ol rifuzita pasvorto, kaj nek unu eraro priskribas la etapon, kiun la alia kovras.

Anstataŭigi la gastigantan nomon per adreso aŭ klaki preter la atestila averto forigas la kontrolon, kiu identigus la malsukcesan etapon, anstataŭ ripari ĝin. Konservu la averton kaj legu ĝin. Ne restarigu PPP-pasvorton, kiam la HTTP-interŝanĝo neniam atingis la SSTP-konduton, ĉar la akreditaĵoj neniam estis petitaj.

Rilataj artikoloj