Злучэнне SSTP зрываецца двума спосабамі, якія з месца карыстальніка выглядаюць аднолькава, і выпраўленне кожнага знаходзіцца на розным узроўні. Таймаўт азначае, што патрабаваны абмен так і не завяршыўся; памылка сертыфіката азначае, што матэрыял ідэнтычнасці прыйшоў і быў адхілены. Калі ставіцца да другога як да першага, вы трапляеце ў брандмаўэры і паролі, якія ніколі не былі праблемай. Адрознівальнае сведчанне знаходзіцца ва ўласным журнале кліента, калі прачытаць яго перад любым змяненнем.

Два збоі, два розныя абмены

SSTP нясе тунель унутры сеанса ў форме HTTPS, таму ён выжывае ў сетках, якія дазваляюць толькі 443. Кліент завяршае рукапоціск TLS, адпраўляе HTTP-запыт з метадам, спецыфічным для пратакола, і потым тунель ідзе ўнутры гэтага патоку. Збой на любым з гэтых крокаў спыняе злучэнне, і толькі наступныя крокі датычацца ўліковых даных.

Гэты парадак і ёсць дыягнастыка. Калі рукапоціск TLS ніколі не завяршаецца, ніякія ўліковыя даныя не адпраўляліся, таму скід пароля не дапаможа. Калі рукапоціск завяршаецца і потым замірае, ідэнтычнасць была прынята, а нешта ў шляху запыту адхіліла яе. Калі рукапоціск зрываецца з паведамленнем праверкі, сервер адказаў, і кліенту не спадабалася тое, што ён пачуў. Тры вынікі, тры ўзроўні.

Радок журнала звычайна называе, у якім з трох вы знаходзіцеся, таму яго варта захаваць перад першым змяненнем.

Таймаўт азначае, што этап так і не завяршыўся

Пачніце з развязання імёнаў і дасяжнасці TCP, бо таймаўт там выглядае гэтак жа, як таймаўт пазней. Правяральнік порта, які паведамляе, што 443 адкрыты, даказвае, што слухач прыняў злучэнне, і нічога больш.

Наступны падазроны — гэта шлях, а не хост. Проксі і брандмаўэры, якія разумеюць праграмы, часам адхіляюць метад запыту, які выкарыстоўвае SSTP, або скідваюць паток, які застаецца адкрытым гадзінамі, і абедзве паводзіны выглядаюць як таймаўт з боку кліента. Звычайная старонка HTTPS, якую падае той жа хост, загружаецца бездакорна, пакуль метад тунеля адхіляецца, таму пераход у браўзеры на канчатковую кропку даказвае так мала. Праверце з сеткі без проксі, каб аддзяліць гэтыя два выпадкі.

Test-NetConnection vpn.example.com -Port 443
netsh http show sslcert
Get-WinEvent -LogName 'Microsoft-Windows-RasSstp/Operational' -MaxEvents 20

Таймаўт да любога адказу суразмоўцы нічога не кажа пра ўліковы запіс, і змена пароля ў гэты момант толькі дадае зменную.

Памылка сертыфіката азначае, што ідэнтычнасць адхілена

Тут сервер сапраўды адказаў, таму сетка працуе, і пытанне пераходзіць да ідэнтычнасці. Параўнайце імя, якое набірае кліент, з імёнамі, якія сертыфікат фактычна сцвярджае, затым праверце даты дзеяння і ланцуг выпуску.

Прыватны CA, якому кліент не давярае, дае той жа клас памылкі, што і скончаны сертыфікат, і таксама гадзіннік, які адстае на гадзіны. Набор сырога адраса стварае новае несупадзенне, бо сертыфікат сцвярджае імёны, а не адрасы. У кіраваным разгортванні атрымайце належную канфігурацыю даверу ў адміністратара замест таго, каб прымаць замену кораня, якую прапануе старонка памылкі. Праверка застаецца ўключанай, пакуль вы выпраўляеце прычыну.

openssl s_client -connect vpn.example.com:443 -servername vpn.example.com </dev/null 2>/dev/null | openssl x509 -noout -subject -issuer -dates -ext subjectAltName
w32tm /query /status

Трымайце паспяховы этап TLS нязменным, калі ён пройдзе, бо адкат яго пазней хавае, якое змяненне фактычна выправіла тунель.

Дзе гэтыя два блытаюцца

Абодва збоі выглядаюць як злучэнне, якое не ўзнімаецца, і абодва прыходзяць пасля таго, як карыстальнік змяніў нешта непаўязанае. Менавіта гэта супадзенне робіць няправільнае выпраўленне праўдападобным на некаторы час.

Дзве звычкі трымаюць іх асобна. Захавайце журнал кліента перад тым, як кранаць канфігурацыю, каб першы стан застаўся. Змяняйце адзін узровень за спробу, каб наступны вынік належаў вядомай зменнай. Правяральнік порта і браўзер — гэта частковыя назіранні, а не поўная паслядоўнасць, і ні адзін з іх не замяняе ўласную справаздачу кліента. Ні адна звычка нічога не каштуе, і абедзве скарачаюць расследаванне.

Пытанне сертыфіката і пытанне дасяжнасці задокументаваны асобна нездарма.

Ператэстуйце сапраўдным кліентам, потым рухайцеся ўнутр

Калі пэўнае выпраўленне на месцы, паўтарыце спробу з сапраўдным кліентам SSTP і рэальным профілем, а не з укладкай браўзера.

rasdial "Corp SSTP" /disconnect
rasdial "Corp SSTP" user '*'
Get-VpnConnection -Name "Corp SSTP" | Select-Object ServerAddress, TunnelType, AuthenticationMethod

Калі сеанс падключаецца, а рэсурсы ўсё яшчэ недаступныя, тунель ужо не падазроны: пераходзьце да маршрутызацыі, DNS і доступу да сэрвісаў. Гэта іншае расследаванне з іншымі сведчаннямі. Захаванне працоўных этапаў TLS і аўтэнтыфікацыі перашкаджае яму стаць паўторам першага. Запішыце этап, які зрываўся, у тікет, інакш наступны чалавек зноў пачне зверху.

Падобныя артыкулы