Predor se poveže z domače linije in se ustavi v hotelskem ali pisarniškem omrežju, premik strežnika na vrata 443 pa ni spremenil ničesar. Ta izid je dovolj pogost, da ima obliko: vrata so bila lažji del, preostanek odločitve pa pripada vsemu, kar sedi med odjemalcem in strežnikom. Dve vprašanji razrešita večino primerov in nobeno od njiju ni o šifrah. Ali omrežje sprejme rokovanje TLS na ta naslov, in ali odjemalec ohrani pot do svojega ovoja, dokler je predor pokonci?

Rokovanje izda več kot številka

Domači poslušalec VPN na TCP 443 govori svoj protokol že od prvega paketa. ClientHello ima polje različice, naključno vrednost in seznam razširitev, naprava, ki prebere nekaj sto bajtov, pa razliko prepozna, ne da bi kar koli dešifrirala. Številke vrat je poceni zadovoljiti, in oblika protokola je tisto, kar filter v resnici preverja. Pravila se običajno pišejo tudi po protokolih, zato politika, ki pregleduje TLS, ne pove ničesar o UDP.

Pregledni posrednik, ki zahteva veljavno sejo TLS, povezavo med nastavljanjem spusti, pogosto po tem, ko je rokovanje TCP končano. Ta podrobnost šteje pozneje, ker pomeni, da se dnevnik odjemalca ustavi po vzpostavitvi vtičnice.

Ovijanje toka ustvari dve točki odpovedi

Ovoj TLS, kakršen je stunnel, povrne pričakovano obliko: odjemalec se poveže z lokalnim poslušalcem, ovoj odpre pravo sejo TLS do strežnika na 443, drugi ovoj na strežniku pa preda dešifrirane bajte demonu VPN. Zunanja seja je zdaj videti kot vsaka druga povezava HTTPS. Demon VPN na strežniku bi moral poslušati le na loopbacku, ker nič zunaj ovoja ne potrebuje priti do njega.

Za to zasnovo se morajo ujemati tri ločene stvari. Profil odjemalca kaže na lokalnega poslušalca, strežniško potrdilo ustreza imenu, ki ga odjemalec preveri, in posredovanje na strani strežnika cilja vrata, ki jih demon res uporablja. Zmotite se pri kateri koli in povezava umre, preden doseže plast VPN. Neujemanje potrdila se takrat pokaže kot napaka ovoja in ne kot napaka VPN, zato je oba dnevnika vredno brati drug ob drugem.

Pot do ovoja je past

Ko se predor dvigne, privzeta pot kaže vanj, zunanja seja TLS pa potrebuje pot, ki ne vstopi v predor, ki ga nosi. Običajen odjemalec VPN zaščiti naslov, na katerega kliče; ovit odjemalec kliče svoj lastni loopback, zato je ciljni naslov ovoja za to zaščito neviden.

sudo ip route add 198.51.100.20 via 192.168.0.1
sudo openvpn --config client.ovpn
sudo ip route del 198.51.100.20

Natančne naslove vpišete sami, pot pa mora obstajati vso življenjsko dobo povezave, ne le ob zagonu. Majhen ovojni skript, ki doda pot pred odjemalcem in jo nato odstrani, je zanesljivejši od zapomnjenega ukaza.

V Androidu je ustreznik te izjeme nastavitev za vsako aplikacijo: izključite ovojno aplikacijo iz predora, da njen lastni promet odide prek mobilne povezave. Brez izključitve se ovoj usmeri v predor, ki ga poskuša zgraditi, in zanka ponovnega povezovanja je videti kot težava strežnika.

Preberite čase, preden karkoli spremenite

Seja, ki umre po istem intervalu vsakič, je podpis politike in ne kriptografska okvara, dolgotrajne omejitve pretoka pa dajejo natanko tak vzorec. Povezava, ki se ponastavi takoj po rokovanju, nakazuje posrednika, ki mu veriga potrdil ni bila všeč.

Primerjajte izdajatelja potrdila običajnega spletnega mesta HTTPS iz obeh omrežij. Če se izdajatelj v omejenem omrežju razlikuje, nekaj zaključuje TLS na sredini, in noben ovoj tega prestrezanja ne preživi nespremenjen. Ista primerjava vam pove, ali blokada cilja ime vašega strežnika ali vsako sejo TLS na tem naslovu.

Zapišite opaženo vedenje: kako dolgo je seja trajala, ali se je vtičnica odprla, ali je ovoj zabeležil rokovanje. Vsaka od teh stvari zoži naslednji preizkus.

Preizkusite eno spremenljivko naenkrat

Najprej preverite UDP, ker ga nekatera omrežja v celoti zavržejo, okvara UDP pa ne pove ničesar o 443. Nato poskusite TCP 443 brez ovoja, zatem ovoj na 443. Berite dnevnik odjemalca na vsakem koraku in se ustavite, takoj ko se vedenje spremeni.

Spreminjajte en element na poskus. Nova vrata, nov ovoj in nova šifra v istem zagonu vas pustijo brez odgovora, katera od treh je štela.

Sorodni članki