Brauser avab VPN-i hostinime HTTPS-i kaudu ilma nurisemata ja SSTP klient keeldub endiselt ühendumast. Selles paaris pole midagi vastuolulist. SSTP kasutab TLS-i välimise transpordina ja käivitab seejärel oma päringu ja PPP kandevõime selle ühenduse sees, seega tõestab edukas lehe laadimine ainult üht kitsast asja: host vastab GET-ile pordil 443. Klient esitab teise küsimuse ja server võib vastata sellele halvasti.

Leht laaditakse ja tunnel mitte

Inimesed haaravad brauseritesti järele, sest see on kiire, ja käsitlevad seejärel tulemust tõendina, et server on kättesaadav ja konfigureeritud. See on tõend GET-i kohta aadressiribale avatud teele, mitte rohkem. VPN-vestlus algab sama TLS-i kätluse järel, kuid saadab meetodi ja tee, mida veebileht ei kasuta kunagi. Seega ei ütle vastus 200 brauserile midagi selle kohta, kas SSTP lõpp-punkt on olemas.

Eraldage kaks tähelepanekut ja otsing lüheneb. Transport ja sertifikaadiahel töötavad ning midagi nende kohal olevas protokollivahetuses ei tööta. See on teistsugune uurimine kui katkine port või aegunud sertifikaat ja nõuab teistsuguseid tõendeid.

Mida SSTP klient tegelikult saadab

Klient saadab HTTP-päringu meetodiga SSTP_DUPLEX_POST teele /sra_{GUID}/ ja hoiab seejärel ühenduse keha avatuna kahesuunalise voona, mis kannab PPP kaadreid. Vastav server vastab HTTP/1.1 200 ja lõpetab veebiserverina käitumise. Kõik muu on allkiri: 405 või 404 tähendab, et lõpp-punkti pole, 301 või 302 tähendab, et miski suunab päringu ümber, ja kohene FIN tähendab, et puhverserver või server sulges voo.

Seetõttu peab sihtmärk olema SSTP server, mitte veebiserver, millele on külge kruvitud TLS-sertifikaat. Meetod, tee ja kauakestev keha on protokolli nõuded, seega ei saa vastupuhverserver neid ainult konfiguratsiooniga lisada. Puhverserver, mis edastab tavalist HTTPS-i täiuslikult, võib siiski keelduda meetodist, mida ta ei tunne.

Kus puhverserver või veebiserver voo katkestab

Vahendaja kontrollib HTTP-päringu rida enne millegi edastamist ja ebahariliku teega kohandatud meetod võib tema reeglitega mitte sobida. Mõned seadmed serveerivad tavalist lehte, samal ajal kui lükkavad tunneli tagasi või katkestavad selle, seega klient teatab ühendusest, mis algab ja siis sureb, mitte puhtast keeldumisest. Teised võtavad päringu vastu ja rakendavad seejärel keha või jõudeoleku ajalõpu, mida PPP keepalive'id ei ela üle. Mõlemad näevad kliendi poolelt ühesugused välja, mistõttu on ebaõnnestunud etapp veatekstist olulisem.

Pordi 443 jagamine veebisaidi ja SSTP vahel on marsruutimisotsus, mitte lubadus, et iga hüpe käsitleb mõlemat vestlust ühtemoodi. Kui teel on koormusjaotur, tulemüür või TLS-i terminaator, lisage see kahtlaste nimekirja enne VPN-i konfiguratsiooni puudutamist.

Testige etappe eraldi

Tehke kontrollid järjekorras ja peatuge esimese ebaõnnestumise juures, sest iga etapp välistab erineva kihi. Allolev TLS-i sond eraldab sertifikaadi identiteedi kõigest, mida SSTP teeb. Asendage hostinimi oma lõpp-punktiga ja lugege subjekt ja ahel, mille see prindib.

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

Seejärel vastendage ülejäänud tõendid etappidega, selle asemel et kliendi veast oletada. Allolev tabel on piletil tsiteeritav kontroll-loend koos allkirjaga, mis eraldab ühe ebaõnnestumise järgmisest.

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

Märkige piletil viimane õnnestunud etapp, selle asemel et kirjutada "ühenduda ei saa". MS-SSTP spetsifikatsioon dokumenteerib päringu ja PPP vahetuse, mis järgnevad TLS-i kätlusele, ja on viide sellele, miks brauseritest ei saa kumbagi neist asendada.

Esmalt identiteet, seejärel PPP

TLS-i identiteet ja PPP autentimine on järjestikused, mitte alternatiivsed, ja nende segiajamine suunab inimesed vale serveriseadeni. Klient valideerib esmalt serveri sertifikaadi ja selle kavandatud otstarbe, seejärel PPP läbiräägib oma oleku ja autentib kasutaja väljakutse-vastuse meetodi või EAP-iga. Sertifikaadiprobleem annab teistsuguse vea kui tagasilükatud parool ja kumbki viga ei kirjelda etappi, mida teine katab.

Hostinime asendamine aadressiga või sertifikaadihoiatuse vahelejätmine eemaldab kontrolli, mis oleks tuvastanud ebaõnnestunud etapi, selle parandamise asemel. Jätke hoiatus alles ja lugege seda. Ärge lähtestage ka PPP parooli, kui HTTP vahetus ei jõudnud kunagi SSTP käitumiseni, sest mandaati ei küsitud kunagi.

Seotud artiklid