Mae SSTP yn methu lle mae HTTPS y porwr yn llwyddo: pam
Mae SSTP yn rhedeg y tu mewn i TLS ar borth 443, ond nid yw'n gais gwe. Profwch TCP, hunaniaeth TLS, cyfnewid SSTP a dilysu PPP fel camau ar wahân.
Mae'r porwr yn agor enw gwesteiwr y VPN dros HTTPS heb gŵyn, ac mae'r cleient SSTP yn dal i wrthod cysylltu. Nid oes dim yn groes i'w gilydd yn y pâr hwnnw. Mae SSTP yn defnyddio TLS fel cludydd allanol ac yna'n rhedeg ei gais ei hun a'i lwyth PPP y tu mewn i'r cysylltiad hwnnw, felly mae llwytho tudalen yn llwyddiannus yn profi un peth cul yn unig: mae'r gwesteiwr yn ateb GET ar borth 443. Mae'r cleient yn gofyn cwestiwn gwahanol, ac efallai y bydd y gweinydd yn ei ateb yn wael.
Mae'r dudalen yn llwytho a'r twnnel ddim
Mae pobl yn troi at y prawf porwr oherwydd ei fod yn gyflym, ac yna'n trin y canlyniad fel prawf bod y gweinydd yn gyrraeddadwy ac wedi'i ffurfweddu. Prawf am GET i ba bynnag lwybr y agorodd y bar cyfeiriad ydyw, dim mwy. Mae sgwrs y VPN yn dechrau ar ôl yr un cydlawenhau TLS, ond mae'n anfon dull a llwybr nad yw tudalen we byth yn eu defnyddio. Felly nid yw ateb 200 i'r porwr yn dweud dim am a yw'r pwynt terfyn SSTP yn bodoli.
Gwahanwch y ddau arsylwad ac mae'r chwilio'n mynd yn fyrrach. Mae'r cludydd a'r gadwyn dystysgrif yn gweithio, ac mae rhywbeth yn y gyfnewid protocol uwch eu pennau nad yw'n gweithio. Mae hynny'n ymchwiliad gwahanol i borth wedi torri neu dystysgrif wedi dod i ben, ac mae angen tystiolaeth wahanol.
Beth mae'r cleient SSTP yn ei anfon mewn gwirionedd
Mae'r cleient yn anfon cais HTTP gyda'r dull SSTP_DUPLEX_POST i'r llwybr /sra_{GUID}/, ac yna'n cadw corff y cysylltiad ar agor fel ffrwd ddwyffordd sy'n cario fframiau PPP. Mae gweinydd cydymffurfiol yn ateb HTTP/1.1 200 ac yn rhoi'r gorau i ymddwyn fel gweinydd gwe. Unrhyw beth arall yw llofnod: 405 neu 404 yn golygu nad yw'r pwynt terfyn yno, 301 neu 302 yn golygu bod rhywbeth yn ailgyfeirio'r cais, ac FIN yn syth yn golygu bod dirprwy neu weinydd wedi cau'r ffrwd.
Dyna pam mae'n rhaid i'r targed fod yn weinydd SSTP yn hytrach na gweinydd gwe ag atodedig dystysgrif TLS. Mae'r dull, y llwybr a'r corff hirhoedlog yn ofynion protocol, felly ni all dirprwy gwrthdro eu hychwanegu o ffurfweddiad yn unig. Gall dirprwy sy'n trosglwyddo HTTPS cyffredin yn berffaith wrthod dull nad yw'n ei adnabod o hyd.
Lle mae dirprwy neu weinydd gwe yn torri'r ffrwd
Mae cyfryngwr yn archwilio llinell gais HTTP cyn trosglwyddo unrhyw beth, ac efallai y bydd dull addasedig â llwybr anarferol yn methu ei reolau. Mae rhai dyfeisiau'n gwasanaethu tudalen arferol wrth wrthod neu dorri'r twnnel, felly mae'r cleient yn adrodd am gysylltiad sy'n dechrau ac yna'n marw yn hytrach na gwrthodiad glân. Mae eraill yn derbyn y cais, ac yna'n cymhwyso terfyn amser corff neu segur na all cadw'n fyw PPP oroesi. Mae'r ddau'n edrych yn debyg o ochr y cleient, a dyna pam mae'r cam a fethodd yn bwysicach na thestun y gwall.
Mae rhannu porth 443 rhwng gwefan a SSTP yn ddewis llwybro, nid yn addewid bod pob naid yn trin y ddwy sgwrs yr un ffordd. Os oes cydbwyswr llwyth, mur gwarchod neu derfynydd TLS ar y llwybr, ychwanegwch ef at y rhestr amheuon cyn cyffwrdd â ffurfweddiad y VPN.
Profwch y camau ar wahân
Rhedwch y gwiriadau mewn trefn a stopiwch ar y methiant cyntaf, oherwydd mae pob cam yn diystyru haen wahanol. Mae'r prawf TLS isod yn gwahanu hunaniaeth y dystysgrif oddi wrth unrhyw beth y mae SSTP yn ei wneud. Amnewidiwch yr enw gwesteiwr â'ch pwynt terfyn a darllenwch y pwnc a'r gadwyn y mae'n eu hargraffu.
openssl s_client -connect vpn.example.com:443 -servername vpn.example.com
Yna mapiwch y dystiolaeth sy'n weddill i'r camau yn hytrach na dyfalu o wall y cleient. Y tabl isod yw'r rhestr wirio i'w dyfynnu yn y tocyn, gyda'r llofnod sy'n gwahanu un methiant o'r nesaf.
| 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 |
Cofnodwch y cam olaf a lwyddodd yn y tocyn yn hytrach nag ysgrifennu "methu cysylltu". Mae manyleb MS-SSTP yn dogfennu'r cais a'r gyfnewid PPP sy'n dilyn y cydlawenhau TLS, a dyna'r cyfeiriad at ba reswm na all prawf porwr sefyll i mewn am y naill na'r llall.
Hunaniaeth yn gyntaf, yna PPP
Mae hunaniaeth TLS a dilysu PPP yn olynol, nid yn amgen, ac mae eu drysu'n anfon pobl at osodiad gweinydd anghywir. Mae'r cleient yn dilysu tystysgrif y gweinydd a'i bwrpas bwriadedig yn gyntaf, yna mae PPP yn trafod ei gyflwr ei hun ac yn dilysu'r defnyddiwr gyda dull her-ac-ateb neu EAP. Mae problem dystysgrif yn cynhyrchu gwall gwahanol i gyfrinair a wrthodwyd, ac nid yw'r naill wall yn disgrifio'r cam y mae'r llall yn ei gwmpasu.
Mae amnewid yr enw gwesteiwr â chyfeiriad, neu glicio heibio'r rhybudd tystysgrif, yn dileu'r gwiriad a fyddai wedi nodi'r cam sy'n methu yn hytrach na'i drwsio. Cadwch y rhybudd a'i ddarllen. Peidiwch ag ailosod cyfrinair PPP pan na chyrhaeddodd y gyfnewid HTTP ymdygiad SSTP o gwbl, oherwydd ni ofynnwyd am y cymhwyster byth.