SSTP aiz TLS pārbaudoša starpniekservera: kur sesija pārtrūkst
Starpniekserveris, kas apstrādā parastu HTTPS, joprojām var salauzt SSTP divvirzienu POST un sertifikātu ķēdi. Izstaigājiet posmus un nosauciet pirmo, kurš neizdodas.
Jūsu pārlūks ielādē uzņēmuma intranetu, starpniekservera sertifikāts ir uzticams, un tomēr SSTP klients atkrīt netālu no savienojuma beigām. Šis modelis norāda uz atšķirību starp tīmekļa pieprasījumu un tunelētu sesiju, nevis uz nepareizu paroli. Izstaigājiet savienojumu no TCP uz augšu un atzīmējiet pirmo posmu, kurš neizdodas. Tieši posms, nevis kļūdas kods, pasaka, vai starpniekserveris ir cēlonis.
Sāciet tur, kur klients apstājas
Klients iziet fiksētu secību: TCP savienojums ar portu 443, TLS rokasspiediens, sertifikāta validācija, SSTP HTTP apmaiņa, PPP pārrunas un autentifikācija, pēc tam IP konfigurācija. Katrā posmā kļūme atstāj citu nospiedumu, un to sajaukšana aizved pie nepareizas konfigurācijas lapas.
TCP kļūme ir taimauts vai atiestatīšana, pirms parādās jebkurš TLS baits. TLS kļūme ir brīdinājums vai rokasspiediena taimauts. Sertifikāta kļūme rada brīdinājumu par ķēdi vai nosaukumu. HTTP kļūme nāk pēc veiksmīga rokasspiediena, bieži kā statusa kods vai tūlītēja aizvēršana. PPP kļūme nāk pēc tam, kad tunelis ir tehniski izveidots, tāpēc tā izskatās kā autentifikācijas problēma.
Lasiet klienta žurnālā pēdējo veiksmīgo posmu, nevis pirmo kļūdas rindu. Kļūdas rinda parasti ziņo par sekām, bet posma robeža nosauc komponentu, kas atteicās.
Ko SSTP prasa tīklam pārnēsāt
SSTP darbojas virs TLS TCP 443 portā un pēc tam sūta HTTP pieprasījumu ar nosaukumu SSTP_DUPLEX_POST, kas definēts SSTP specifikācijā, uz ceļu formā /sra_{GUID}/. Pieprasījums paziņo praktiski neierobežotu satura garumu un visā sesijas laikā tur plūsmu atvērtu abos virzienos. PPP kadri pārvietojas šajā plūsmā.
Tāpēc starpniekserveris, kas apstrādā parastu pārlūkošanu, joprojām var neizdoties. GET vai POST ar ierobežotu saturu var buferēt, pārbaudīt un pārsūtīt; divvirzienu plūsmu ar saturu, kas nekad nebeidzas, nevar. Starpniekserveris, kas gaida satura pabeigšanu, gaida mūžīgi, un klients galu galā saņem taimautu.
Metožu filtrēšana un autentifikācija pievieno savus kļūmju režīmus. Ja starpniekserveris pieprasa piekļuves datus, VPN klients var neatbildēt, lai gan pārlūks atbildētu. Ja tas noņem vai pārraksta metodi, vārteja noraida pieprasījumu pirms PPP sākšanās.
Kāpēc pārbaude maina identitāti
TLS pārbaudošs starpniekserveris izbeidz klienta TLS savienojumu un atver atsevišķu savienojumu ar vārteju. Tāpēc klients validē starpniekservera, nevis vārtejas sertifikātu, un vārteja redz starpniekserveri kā savu partneri. Kad organizācija izplata savu sakni, gan pārlūks, gan VPN klients var pieņemt šo ķēdi, tāpēc rokasspiediens izdodas un problēma pāriet nākamajā posmā.
Veiksmīga validācija nenozīmē, ka starpniekserveris var pārnēsāt sesiju. Tam joprojām jāpārsūta neierobežots divvirzienu POST bez buferēšanas un jāuztur abi savienojumi dzīvi stundām ilgi. Daudzi pārbaudes produkti ir būvēti pieprasījuma-atbildes trafikam un šo gadījumu apstrādā slikti vai nemaz.
Tāpēc nezināmas saknes pievienošana vai validācijas izslēgšana ir nepareizs labojums. Tas maina, kuru sertifikātu klients pieņem; tas neko nedara ar plūsmas apstrādi, kas faktiski salauza sesiju.
Nosakiet izdevēju pirms iestatījumu maiņas
Pajautājiet galapunktam, kuru sertifikātu tas uzrāda un kas to parakstījis. Tālāk norādītās komandas parāda ķēdi un izdevēju, nesākot VPN sesiju:
openssl s_client -connect vpn.example.com:443 -servername vpn.example.com -showcerts
curl -vI https://vpn.example.com/Ja izdevējs ir publiska CA, savienojums šim resursdatoram, iespējams, netiek pārtverts un kļūme ir citur. Ja izdevējs ir pašas organizācijas CA, pārbaude ir aktīva un vārteja tiek sasniegta caur starpniekserveri. Salīdziniet pirksta nospiedumu ar to, ko sagaida tīkla komanda, pirms izdarīt secinājumu tikai no nosaukuma.
Pārlūka tests uz to pašu resursdatoru pierāda tikai to, ka starpniekserveris pieņem GET. Tas neko nepasaka par SSTP metodi, pieprasījuma URI vai satura dzīves ilgumu, tāpēc neuzskatiet strādājošu intraneta lapu par pierādījumu, ka tuneļa ceļš tiek atbalstīts.
Izvēlieties atbalstīto ceļu
Uzdodiet tīkla īpašniekam vienu konkrētu jautājumu: vai starpniekserveris atļauj nebūferētu divvirzienu POST uz šo vārteju portā 443? Jā nozīmē starpniekservera izņēmumu vai dokumentētu apiešanu VPN resursdatoram. Nē nozīmē, ka pārbaudītais ceļš nevar pārnēsāt SSTP, un atbalstītais labojums ir cits ceļš vai protokols, nevis klienta pielāgošana.
Opcijas parasti ietver nepārbaudītu izeju VPN vārtejai, sadalīta tuneļa dizainu, kas caur starpniekserveri sūta tikai uzņēmuma trafiku, vai alternatīvu protokolu, ko organizācija atbalsta citā portā. Katra pieder pie tīkla dizaina, un katra jāpārbauda ar to pašu ierīci un profilu, lai salīdzinājums izolētu ceļu.
Dokumentējiet rezultātu: izdevējs, neizdevušos posms, starpniekservera noteikums un izvēlētais ceļš. Nākamais cilvēks, kurš redzēs to pašu 98 procentu apstāšanos, varēs pārbaudīt vienu faktu, nevis atkārtot visu gaitu.