Omrežje kampusa ali hotela, kjer brskalnik deluje in vsak tunel umre, ni ena težava, ampak štiri zložene. Pot morda dovoljuje samo TCP 443, zahteva overjen proxy, pregleduje rokovanje ali preprosto prepove oddaljeni dostop s politiko. Če jih obdelate po vrsti, se izognete nakupu novega odjemalca za popravilo omrežnega pravila. Spodnji priročnik traja približno deset minut in se konča s pisnim odgovorom, katera plast vas je zavrnila.

Dokažite, katera plast zavrne povezavo

Ne začnite z odjemalcem VPN. Začnite z običajno zahtevo HTTPS na isto gostiteljico in berite časovne faze, ker faza, ki ne uspe, pove, katera naprava je odgovorna:

curl -sS -o /dev/null -w 'connect=%{time_connect} tls=%{time_appconnect} code=%{http_code}\n' \
  --max-time 8 https://vpn.example.net/

Brez odgovora in brez časa connect pomeni, da se TCP ni nikoli zaključil, zato so v igri požarni zid, zahteva po proxyju ali napačen cilj. Čas connect brez časa tls pomeni, da je nekaj v sredini sprejelo povezavo in nato ustavilo rokovanje, in tako je videti pregledujoči proxy z odjemalčeve strani.

Zdaj preglejte potrdilo, ki ga resnično prejmete. To je najhitrejši način, da ugotovite, ali govorite s strežnikom ali s vmesno škatlo, ki je sejo znova podpisala:

openssl s_client -connect vpn.example.net:443 -servername vpn.example.net -brief </dev/null

Preberite vrstico izdajatelja. Vaš lastni CA pomeni, da ste dosegli storitev; korporativni izdajatelj ali izdajatelj naprave pomeni, da je filter končal povezavo in odloča, kaj sledi. Zabeležite oba izhoda s časovnim žigom, ker lahko isti test uro kasneje v gostujočem omrežju da drugačen odgovor.

Odjemalec, ki pozna proxy, spremeni prvi paket, ne politike

Če omrežje zahteva CONNECT prek overjenega proxyja, je treba to povedati odjemalcu VPN, sicer bo poskusil odpreti vtičnico na naslov, ki ga ne more usmerjati. Proxy preizkusite ločeno od odjemalca, da ima napaka eno razlago:

https_proxy=http://proxy.example.edu:3128 curl -v -o /dev/null https://vpn.example.net/
sudo openvpn --config /etc/openvpn/corp.conf --proto tcp-client \
  --remote vpn.example.net 443 --verb 4

Prvi ukaz dokaže, da bo proxy prenesel cilj. Drugi zahteva, da odjemalec uporabi TCP na 443, edini transport, ki ga večina poti samo za splet sploh prepusti. Če prvi uspe in drugi še vedno ne uspe, proxy ni ovira.

Nekateri odjemalci berejo proxy operacijskega sistema namesto prepisa, nekateri pa ne berejo nobenega. Preverite dokumentacijo aplikacije, preden domnevate, da velja sistemska nastavitev. Odjemalec, ki končno točko razreši prek razreševalnika, ki mu proxy ne služi, bo tu prav tako propadel, in zato je lahko sprememba DNS videti kot popravek, ko je le obvoz.

Bodite pozorni tudi na vzorec usmerjanja. Filtrirano omrežje lahko odgovori na gostiteljsko ime za zaznavanje ponudnika z nečim svojim, kar spremeni, kateri profil proxyja odjemalec izbere. Ne gradite procesa okoli te nenavadnosti. Razlikuje se glede na lokacijo, spreminja se brez obvestila in ni nekaj, kar bi lahko podpirali za koga drugega.

Vrata 443 so dosegljiva, ne dovoljena

Zavijanje tunela v TLS na 443 reši dosegljivost in nič drugega. Filter, ki preverja vrata, ga bo spustil; filter, ki jemlje prstni odtis rokovanja, ne, in šifrirani pozdrav odjemalca skrije ime strežnika le, kadar ga podpirata oba konca. Zaženite test in ugotovite, za kakšnim filtrom ste, namesto da upate.

Obstaja tudi cena za zmogljivost, ki jo ljudje odkrijejo pozneje. Zanesljiv transport znotraj zanesljivega transporta okrepi izgubo, ker notranji sklad znova pošilja segmente, ki jih je zunanji že znova poslal. Na čisti povezavi tega nihče ne opazi. V preobremenjenem kampusnem brezžičnem omrežju tunel postane neuporaben točno takrat, ko ga potrebujete, in graf je videti kot izguba paketov, čeprav se nič ne zavrže namerno.

UDP je običajno prva žrtev, in to velja potrditi, ne ugibati. Če WireGuard ali privzeti OpenVPN nikoli ne dokonča rokovanja, medtem ko TCP 443 deluje, omrežje zavrže UDP, in nobeno obnavljanje ključev tega ne bo spremenilo:

sudo wg show
dig +short vpn.example.net
dig +short vpn.example.net @1.1.1.1

Prazen časovni žig rokovanja ob partnerju, ki je včeraj deloval, je odgovor UDP. Dve poizvedbi DNS odgovarjata na drugo vprašanje: če se krajevni razreševalnik in javni razreševalnik ne strinjata glede naslova končne točke, vas usmerjajo in argument o transportu je napačen.

Preverite, kaj je resnično zapustilo stroj

Dnevniki odjemalca opisujejo, v kaj odjemalec verjame. Zajem opisuje, kaj je videla mreža, in razlika med obema je kraj, kjer se reši večina teh primerov:

sudo tcpdump -ni any -c 20 'tcp port 443 and host 203.0.113.10'
sudo ss -tunp | grep -E ':(443|1194|51820)\b'

Če vidite pakete SYN in nobenega SYN-ACK, je blokada višje in odjemalec je nedolžen. Če vidite dokončano rokovanje na naslov, ki ni strežnikov, govorite s proxyjem ali prestreznikom. Če ne vidite ničesar, preverite, ali ste zajemali na pravem vmesniku, preden karkoli sklepate.

Seznam vtičnic ujame bolj subtilen primer: drugi tunel že drži privzeto pot. Dva odjemalca, ki se borita za usmerjevalno tabelo, ustvarita občasne okvare, ki so videti točno kot blokirano omrežje, in zajem bo pokazal promet, ki odhaja skozi vmesnik, ki ga niste pričakovali.

Razveljavitev in zapisek, ki ga velja obdržati

Razveljavite spremembe v obratnem vrstnem redu, kot ste jih naredili. Odstranite spremenljivke proxyja, ustavite odjemalca, ki ste ga zagnali ročno, in odstranite vsak dodan prepis poti ali razreševalnika:

unset https_proxy http_proxy
sudo systemctl stop openvpn-client@corp
sudo ip route show default

Če pustite ročno zagnanega odjemalca delovati, bo prenosnik ob naslednjem obisku pisarne ostal s pokvarjenim omrežjem. Spremenljivke proxyja, puščene v profilu lupine, tedne kasneje pokvarijo nepovezana orodja, in oseba, ki jih odpravlja, ne bo povezala obeh dogodkov.

Nato napišite štiri vrstice: omrežje, časovni žig, faza, ki ni uspela, in videni izdajatelj. Pot, ki deluje na enem kampusu in ne uspe na naslednjem, je običajna, in naslednja oseba mora vedeti, ali je bila razlika proxy, razreševalnik ali filter. Če je odgovor, da omrežje prepoveduje oddaljeni dostop, se ustavite tam in prosite skrbnika za podprto pot, namesto da bi nosili obvoz v politiko, ki je niste prebrali.

Sorodni članki