Браузерын HTTPS амжилттай байгаа газар SSTP бүтэлгүйтдэг: яагаад
SSTP нь 443 порт дээр TLS дотор ажилладаг боловч энэ нь веб хүсэлт биш. TCP, TLS таних тэмдэг, SSTP солилцоо, PPP баталгаажуулалтыг тусдаа үе шат болгон шалгана уу.
Браузер VPN хостын нэрийг HTTPS-ээр гомдолгүй нээдэг боловч SSTP клиент холбогдохоос татгалзсаар байна. Энэ хослолд зөрчил байхгүй. SSTP нь TLS-ийг гадаад тээвэр болгон ашиглаад дараа нь тэр холболтын дотор өөрийн хүсэлт болон PPP ачааллыг гүйцэтгэдэг тул хуудас амжилттай ачаалагдсан нь зөвхөн нэг нарийн зүйлийг нотолдог: хост 443 порт дээр GET-д хариулдаг. Клиент өөр асуулт асууж байгаа бөгөөд сервер түүнд муу хариулж болно.
Хуудас ачаалагдаж, туннель ачаалагдахгүй
Хүмүүс браузерын тестийг хурдан гэдгээр нь сонгоод, дараа нь үр дүнг серверийн хүртээмжтэй, тохируулагдсан гэдгийн баталгаа гэж үздэг. Энэ нь хаягийн мөр нээсэн зам руу GET хийсэн тухай баталгаа бөгөөд өөр зүйл биш. VPN яриа мөн ижил TLS гар барилтын дараа эхэлдэг боловч илгээдэг нь вэб хуудас хэзээ ч ашигладаггүй арга, зам. Тиймээс браузерт өгсөн 200 хариулт SSTP төгсгөлийн цэг байгаа эсэхийг огт хэлэхгүй.
Хоёр ажиглалтыг салгавал хайлт богиносоно. Тээвэр, гэрчилгээний гинжин хэлхээ ажиллаж байна, харин тэдний дээрх протоколын солилцоонд ямар нэг зүйл ажиллахгүй байна. Энэ нь эвдэрсэн порт эсвэл хугацаа дууссан гэрчилгээнээс өөр мөрдөн шалгалт бөгөөд өөр нотолгоо шаарддаг.
SSTP клиент үнэндээ юу илгээдэг вэ
Клиент SSTP_DUPLEX_POST аргаар /sra_{GUID}/ зам руу HTTP хүсэлт илгээж, дараа нь холболтын биеийг PPP хүрээ зөөдөг хоёр талын урсгал болгон нээлттэй байлгана. Тохирох сервер HTTP/1.1 200 гэж хариулж, веб сервер мэт ажиллахаа болино. Бусад бүх зүйл бол гарын үсэг: 405 эсвэл 404 нь төгсгөлийн цэг байхгүй, 301 эсвэл 302 нь ямар нэг зүйл хүсэлтийг дахин чиглүүлж байна, шуурхай FIN нь прокси эсвэл сервер урсгалыг хаасан гэсэн үг.
Тиймээс зорилт нь TLS гэрчилгээ наасан веб сервер биш, SSTP сервер байх ёстой. Арга, зам, урт насалсан бие нь протоколын шаардлага тул урвуу прокси тэдгээрийг зөвхөн тохиргоогоор нэмж чадахгүй. Энгийн HTTPS-ийг төгс дамжуулдаг прокси ч танихгүй аргаас татгалзаж болно.
Прокси эсвэл веб сервер урсгалыг хаана тасалдаг вэ
Зуучлагч ямар нэг зүйлийг дамжуулахын өмнө HTTP хүсэлтийн мөрийг шалгадаг бөгөөд ер бусын замтай захиалгат арга түүний дүрмээр унаж болно. Зарим төхөөрөмж ердийн хуудас үзүүлэхдээ туннелийг татгалзах эсвэл тасалдаг тул клиент цэвэр татгалзалтын оронд эхлээд дараа нь үхдэг холболтыг мэдээлдэг. Бусад нь хүсэлтийг хүлээн аваад, дараа нь PPP keepalive-ууд тэсэхгүй бие эсвэл сул зогсолтын хугацаа хязгаарыг хэрэглэдэг. Хоёулаа клиентийн талаас ижил харагддаг тул аль үе шат бүтэлгүйтсэн нь алдааны текстээс илүү чухал.
443 портыг вэбсайт болон SSTP хооронд хуваалцах нь чиглүүлэлтийн сонголт бөгөөд хоп бүр хоёр яриаг ижилхэн шийднэ гэсэн амлалт биш. Хэрэв замд ачааллын тэнцвэржүүлэгч, галт хана эсвэл TLS төгсгөгч байвал VPN тохиргоог хүрэхээс өмнө түүнийг сэжигтнүүдийн жагсаалтад нэмнэ үү.
Үе шатуудыг тусдаа шалгана уу
Шалгалтуудыг дарааллаар нь гүйцэтгээд эхний бүтэлгүйтэл дээр зогсоно уу, учир нь үе шат бүр өөр давхаргыг хасдаг. Доорх TLS зонд гэрчилгээний таних тэмдгийг SSTP-ийн хийдэг бүхнээс тусгаарлана. Хостын нэрийг өөрийн төгсгөлийн цэгээр сольж, хэвлэдэг subject болон гинжийг уншина уу.
openssl s_client -connect vpn.example.com:443 -servername vpn.example.com
Дараа нь клиентийн алдаанаас таамаглахын оронд үлдсэн нотолгоог үе шатуудтай харьцуулна уу. Доорх хүснэгт нь тасалбарт иш татах шалгах хуудас бөгөөд нэг бүтэлгүйтлийг дараагийнхаас ялгах гарын үсэгтэй.
| 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 |
Тасалбарт "холбогдох боломжгүй" гэж бичихийн оронд хамгийн сүүлд амжилттай болсон үе шатыг тэмдэглэнэ үү. MS-SSTP тодорхойлолт нь TLS гар барилтын дараах хүсэлт болон PPP солилцоог баримтжуулдаг бөгөөд браузерын тест яагаад тэдгээрийн аль нэгийг орлож чадахгүйг харуулсан лавлагаа юм.
Эхлээд таних тэмдэг, дараа нь PPP
TLS таних тэмдэг болон PPP баталгаажуулалт нь дараалсан, өөр хувилбар биш бөгөөд тэдгээрийг андуурах нь хүмүүсийг буруу серверийн тохиргоо руу хөтөлдөг. Клиент эхлээд серверийн гэрчилгээ болон түүний зориулалтыг баталгаажуулж, дараа нь PPP өөрийн төлөвийг хэлэлцэж, хэрэглэгчийг сорилт-хариултын арга эсвэл EAP-аар баталгаажуулна. Гэрчилгээний асуудал татгалзсан нууц үгээс өөр алдаа өгдөг бөгөөд аль ч алдаа нөгөөгийн хамрах үе шатыг дүрслэхгүй.
Хостын нэрийг хаягаар солих эсвэл гэрчилгээний анхааруулгыг алгасах нь бүтэлгүйтэж буй үе шатыг илрүүлэх байсан шалгалтыг засахын оронд устгадаг. Анхааруулгыг үлдээж уншина уу. HTTP солилцоо хэзээ ч SSTP зан төлөвт хүрээгүй бол PPP нууц үгийг дахин тохируулж болохгүй, учир нь итгэмжлэл хэзээ ч шаардагдаагүй.