Порт 443 адказвае, а SSTP усё яшчэ не працуе: які этап зламаўся?
Нешта прыняло злучэнне, а тунель так і не будуецца. Аддзяліце транспарт, сертыфікат, перамовы SSTP і аўтэнтыфікацыю PPP.
Завяршэнне рукапаціску TCP на порт 443, калі тунель так і не будуецца, даказвае адну рэч, і гэта дробязь. Нешта слухае і гатова прыняць злучэнне на гэтым адрасе. Яно не вызначае службу, сертыфікат, які будзе прад'яўлены, і тое, што адбудзецца пасля першых байтаў.
Паміж гэтым рукапаціскам і працуючым тунелем стаяць чатыры этапы, і кожны дае розную памылку.
Адкрыты порт апісвае толькі адзін узровень
Прыняць злучэнне TCP значыць, што працэс валодае сокетам і шлях дазваляе рукапацісак. Гэта нічога не кажа пра тое, ці з'яўляецца гэты працэс серверам SSTP, ці мае ён сертыфікат, сапраўдны для імя ў вашым профілі, ці аўтарызуе ён ваш уліковы запіс. Вэб-сервер на тым жа адрасе бездакорна адказвае на рукапацісак, а потым адказвае на ваш запыт SSTP памылкай HTTP. Усё вышэй за гэты рукапацісак застаецца неправераным.
Разглядайце тэст порта як самы танны магчымы фільтр, а не як прысуд. Яго каштоўнасць у тым, што ён прыбірае цэлую катэгорыю збояў, а не ў тым, што ён пацвярджае ўсё, што вышэй.
Блытаніна паміж гэтымі двума рэчамі — прычына, чаму людзі пераўсталёўваюць кліентаў пасля тэсту, які ніколі не правяраў сапраўдную праблему кліента.
Аддзяліце чатыры этапы доказамі
Этапы — гэта дасягальнасць транспарту, праверка TLS, абмен SSTP праз HTTPS і аўтэнтыфікацыя PPP унутры тунеля. Шлях, які праходзіць першы і правальвае чацвёрты, патрабуе выпраўлення ўліковых даных; той, што правальвае другі, патрабуе выпраўлення сертыфіката або імя. Гэтыя рамонты не маюць нічога агульнага, і выбар няправільнага марнуе прастой.
nc -vz vpn.example.net 443
openssl s_client -connect vpn.example.net:443 -servername vpn.example.net -brief
curl -sS -o /dev/null -w '%{http_code}\n' https://vpn.example.net/
Трэцюю каманду варта чытаць уважліва. Адказ 200 ад звычайнай вэб-старонкі кажа, што вэб-служба ёсць; ён не кажа, што запыт SSTP будзе зразуметы. Адказ 404 з таго ж адраса гэтак жа нічога не гаворыць пра VPN. Толькі журнал кліента паведамляе, якога з чатырох этапаў ён дасягнуў.
Звярніце ўвагу, якое імя выкарыстала кожная каманда. Сертыфікат выбіраецца па імені, якое вы адпраўляеце, таму разыходжанне паміж профілем і тэстам — гэта разыходжанне, якое ўнеслі вы. Запіс гэтага імя побач з вынікам прадухіляе блытаніну пазней.
Чытайце частковы поспех у правільным кірунку
Пасрэднік можа дазволіць звычайны прагляд і адмовіць у наступным абмене, таму проксі, які працуе для сайтаў, можа ўсё яшчэ не працаваць для тунеля. Той жа ўзор з'яўляецца, калі сертыфікат сапраўдны для імя браўзера, але не для імя, наладжанага ў профілі: браўзер задаволены, а кліент не, і абодва маюць рацыю адносна таго, што правяралі.
Трымайце праверку сервера ўключанай, пакуль вы гэта дыягнастуеце. Адключэнне ператварае разыходжанне сертыфіката ў паспяховы рукапацісак і хавае адзіны доказ, які мог бы патлумачыць збой.
Калі той жа профіль працуе з іншай сеткі, розніца залежыць ад шляху. Гэта звужае пошук да пасрэднікаў, не кажучы, якога менавіта, і гэта ўсё яшчэ карысны крок наперад. Запішыце сетку, якую вы выкарыстоўвалі, бо параўнанне без яе нічога не варта.
Затым праверце праграму, а не толькі сеанс
Калі сеанс існуе, праверце меркаваны маршрут, развязанне імёнаў і дазвол службы з таго кліента, якому яны патрэбныя. Падключаны тунель можа ўсё яшчэ мець адсутнае перанакіраванне на далёкім баку або зваротны маршрут, якога ніколі не было, і гэтыя збоі выглядаюць дакладна як праблема праграмы для чалавека, які чакае.
Трымайце кожную выснову прывязанай да этапу, які яе даў. Назваць адкрыты порт працуючым VPN — гэта спосаб, якім пяціхвілінная праверка сертыфіката ператвараецца ў дзень пераўсталёўкі праграм.