En Campus- oder Hotellnetz, wou de Browser funktionéiert an all Tunnel stierft, ass net ee Problem, et sinn déi véier iwwerenee. De Wee erlaabt vläicht nëmmen TCP 443, verlaangt en authentifizéierte Proxy, iwwerpréift den Handshake oder verbitt de Fernzougrëff einfach duerch Politik. Se der Rei no ofzeschaffen erspuert Iech en neie Client ze kafen, fir eng Netzwierkregel ze flécken. D'Uleiung hei drënner dauert ongeféier zéng Minutten an endet mat enger schrëftlecher Äntwert, wéi eng Schicht Iech refuséiert huet.

Beweist, wéi eng Schicht d'Verbindung refuséiert

Fänkt net mam VPN-Client un. Fänkt mat enger einfacher HTTPS-Ufro un dee selwechte Host un a liest d'Zäitphasen, well déi Phase, déi feelt, seet Iech, wéi en Apparat verantwortlech ass:

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

Keng Äntwert an keng connect-Zäit heescht, TCP ass ni fäerdeg ginn, also ass eng Firewall, eng Proxy-Ufuerderung oder en falscht Zil am Spill. Eng connect-Zäit ouni tls-Zäit heescht, eppes an der Mëtt huet d'Verbindung ugeholl an dann den Handshake gestoppt, an esou gesäit en iwwerpréifende Proxy vun der Clientsäit aus.

Kuckt elo d'Zertifikat, dat Dir tatsächlech kritt. Dat ass de séierste Wee erauszefannen, ob Dir mam Server schwätzt oder mat enger Mëttelkëscht, déi d'Sitzung nei ënnerschriwwen huet:

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

Liest d'Linn vum Aussteller. Ären eegene CA heescht, Dir hutt den Déngscht erreecht; en Aussteller vun enger Firma oder engem Apparat heescht, e Filter huet d'Verbindung ofgeschloss an entscheet, wat duerno geschitt. Halt béid Ausgänge mat engem Zäitstempel fest, well dee selwechten Test eng Stonn méi spéit am Gaaschtenetz eng aner Äntwert ka ginn.

En Proxy-bewusste Client ännert dat éischt Pak, net d'Politik

Wann d'Netz CONNECT iwwer en authentifizéierte Proxy verlaangt, muss de VPN-Client dat wëssen, soss probéiert en e Socket un eng Adress opzemaachen, déi en net ka routeieren. Test de Proxy getrennt vum Client, sou datt e Feeler eng Erklärung huet:

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

Den éischte Kommando beweist, datt de Proxy d'Zil dréit. Den zweeten freet de Client, TCP op 443 ze benotzen, deen eenzegen Transport, deen déi meeschten nëmmen-Web-Weeër iwwerhaapt weiderleeden. Wann den éischten erfollegräich ass an den zweeten nach ëmmer feelt, ass de Proxy net d'Hindernis.

E puer Clienten liesen de Proxy vum Betribssystem amplaz enger Iwwerschreiwung, an e puer liesen keen vun deenen zwee. Kuckt d'Dokumentatioun vun der Applikatioun, ier Dir unhëlt, eng systemwäit Astellung géif gëllen. E Client, deen den Endpunkt iwwer en Opléiser léist, deen de Proxy net bedéngt, wäert hei och feelen, an dofir kann eng DNS-Ännerung wéi eng Léisung ausgesinn, wann se just en Ëmwee ass.

Passt och op d'Steierungsmuster op. En gefilterte Netz ka op den Detektiounshoschtnumm vun engem Fournisseur mat eppes Eegenem äntweren, wat ännert, wéi eng Proxy-Profil de Client wielt. Baut kee Prozess ëm déi Kuriositéit. Se variéiert vu Site zu Site, ännert sech ouni Ukënnegung, an et ass net eppes, wat Dir fir aner Leit ënnerstëtze kënnt.

Port 443 ass erreechbar, net erlaabt

En Tunnel an TLS op 443 ze wéckelen léist d'Erreechbarkeet an soss näischt. En Filter, deen de Port iwwerpréift, léisst en duerch; en Filter, deen den Handshake fingerprint, net, an den verschlësselte Client-Hello verstoppt den Servernumm nëmmen, wann béid Säiten en ënnerstëtzen. Maacht den Test a fannt eraus, hannert wéi engem Filter Dir sidd, amplaz ze hoffen.

Et gëtt och e Leeschtungskäschte, deen d'Leit méi spéit entdecken. En zouverlässegen Transport an engem zouverlässegen Transport verstäerkt de Verloscht, well de bannenzege Stack Segmenter erëm schéckt, déi de baussenzege schonn erëm geschéckt huet. Op enger propperer Verbindung mierkt et keen. An engem iwwerlaaschte Campus-WLAN gëtt den Tunnel onbrauchbar just wann Dir en braucht, an de Graf gesäit aus wéi Paketverloscht, obwuel näischt bewosst fale gelooss gëtt.

UDP ass meeschtens den éischten Affer, an dat sollt een bestätegen amplaz et ze schléissen. Wann WireGuard oder den Standard-OpenVPN ni en Handshake fäerdeg kritt, während TCP 443 funktionéiert, léisst d'Netz UDP fale, an keng Schlëssel-Neigeneratioun wäert dat änneren:

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

En eidelen Handshake-Zäitstempel nieft engem Peer, deen gëschter funktionéiert huet, ass d'UDP-Äntwert. Déi zwou DNS-Ufroen äntweren op eng aner Fro: wann de lokalen Opléiser an en ëffentlechen Opléiser iwwer d'Adress vum Endpunkt net d'accord sinn, gitt Dir gesteiert an d'Transportargument ass dat falscht.

Iwwerpréift, wat d'Maschinn tatsächlech verlooss huet

D'Cliente-Logs beschreiwen, wat de Client gleeft. Eng Opnam beschreift, wat d'Netz gesinn huet, an den Ënnerscheed tëscht deenen zwee ass do, wou déi meeschte vun dëse Fäll geléist ginn:

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

Wann Dir SYN-Pakete gesitt an kee SYN-ACK, ass de Block uewen an de Client ass onschëlleg. Wann Dir en ofgeschlossenen Handshake op eng Adress gesitt, déi net déi vum Server ass, schwätzt Dir mat engem Proxy oder engem Ofänger. Wann Dir guer näischt gesitt, iwwerpréift, ob Dir op der richteger Interface opgeholl hutt, ier Dir eppes schléisst.

D'Socket-Lëscht fänkt e subtile Fall: en zweeten Tunnel, deen déi Standardroute schonn hält. Zwee Clienten, déi ëm d'Routingstabell streiden, produzéieren intermittent Feeler, déi genau wéi en blockéiert Netz ausgesinn, an d'Opnam wäert Verkéier weisen, deen duerch eng Interface erausgeet, déi Dir net erwaart hutt.

Réckroll, an d'Notiz, déi et wäert ass ze halen

Maacht d'Ännerungen an ëmgekehrter Reihenfolge réckgängeg. Entfernt d'Proxy-Variabelen, stoppt de Client, deen Dir vun Hand gestart hutt, an entfernt all Route- oder Opléiser-Iwwerschreiwung, déi Dir bäigefüügt hutt:

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

En handgestarte Client laanscht lafe loossen ass de Wee, wéi e Laptop beim nächsten Bürosbesuch mat engem futti Netz do steet. Proxy-Variabelen, déi an engem Shell-Profil bleiwen, briechen Wochen duerno onverbonnen Tools, an deen, deen se debuggt, wäert déi zwou Evenementer net verbannen.

Schreift dann véier Linnen: d'Netz, den Zäitstempel, d'Phase déi gefeelt huet an den Aussteller, deen Dir gesinn hutt. E Wee, deen op engem Campus funktionéiert an um nächsten feelt, ass normal, an déi nächst Persoun muss wëssen, ob den Ënnerscheed de Proxy, den Opléiser oder de Filter war. Wann d'Äntwert ass, datt d'Netz de Fernzougrëff verbitt, stoppt do a frot den Administrateur no der ënnerstëtzter Route, amplaz en Ëmwee an eng Politik ze droen, déi Dir net gelies hutt.

Ähnlech Artikelen