Firwat en 403 vun enger VPN-Säit kee Proxy-Fehler ass
En Origin-403, en ofgeleenten CONNECT an eng 407-Herausfuerderung markéieren ënnerschiddlech Grenzen. Vergläicht als éischt den Egress-Pad vum Proxy mat der VPN-Adress vum Browser.
Benotzer trennen d'VPN, stoussen op en 403 op enger interner Säit a mellen, de Proxy wier futti. Dräi getrennt Saache kënnen déi Säit produzéieren: den Origin huet d'Ufro refuséiert, de Forward-Proxy huet sech geweigert, den Tunnel opzemaachen, oder de Proxy huet seng eege Umeldungsdaten verlaangt. Jiddweree vun hinne ass eng korrekt Äntwert op eng aner Fro, an se zu enger generescher Feelsäit ze plattdrécken zerstéiert deen eenzegen Beweis, deen Dir hutt. Sortéiert d'Refusatioun no der Komponent, déi se gemaach huet, a vergläicht dann den Netzwierkpad, deen all Komponent tatsächlech benotzt.
Nennt d'Komponent, déi den 403 produzéiert huet
En HTTP-Statuscode gehéiert zu der Partei, déi en geschéckt huet. Wann den Origin 403 zréckgëtt, huet en d'Ufro analyséiert an decidéiert, datt den Uruffer d'Ressource vläicht net huet, wat eng Autorisatiounsäntwert ass an net e Transportproblem. Wann e Forward-Proxy 403 op en CONNECT äntwert, huet en de Bau vum Tunnel ganz refuséiert, an et gouf ni eppes uewendriwwer kontaktéiert. Wann en 407 äntwert, wëll en seng eege Umeldungsdaten, déi näischt mat der Umeldung vun der Applikatioun ze dinn hunn.
| What you observe | What it means |
|---|---|
| Origin replies 403 | The origin understood the request and denied it |
| Proxy refuses CONNECT with 403 | The proxy declined to open that tunnel |
| Proxy replies 407 | Proxy authentication is required first |
| Gateway replies 502 or 504 | Upstream failure or timeout, not a permission decision |
RFC 9110 definéiert dës Rollen, och déi proxyspezifesch Herausfuerderung. Liest den eegene Status vun der Äntwert an all Proxy-Authenticate-Header, ier Dir de Body liest, well eng frëndlech HTML-Feelsäit meeschtens verstoppt, wéi eng Komponent se geschriwwen huet.
Wat en CONNECT-Tunnel virun engem Byte-Relay verstoppt
Soubal e Proxy 200 op CONNECT zréckgëtt, leet en Bytes weider an de Browser behält seng eege TLS-Sessioun mam Origin. En Byte-Relay-Proxy kann dofir den encodéierten 403 bannent där Sessioun net liesen, an en gëtt ni den Auteur vun der Refusatioun. Eng Refusatioun, ier den Tunnel opgeet, ass en ganz aneren Event, deen eng Schicht méi déif produzéiert gëtt.
En TLS-terminéierende Reverse-Proxy steet op enger anerer Plaz: en huet d'TLS-Grenz, analyséiert HTTP a kann Äntwerten legitim ëmschreiwen oder offänken. Déi Fäegkeet ass eng Konfiguratiounswahl, net eng Eegeschaft vum Proxy allgemeng, an se autoriséiert net d'Zougriffsrichtlinn vun der Applikatioun ze ëmgoen. D'Äntwert ze liesen ass eng Fäegkeet; ze entscheeden, wat den Uruffer däerf ze gesinn, bleift dem Origin seng Aarbecht.
D'praktesch Konsequenz ass, datt Dir wësse musst, wéi eng vun den dräi Formen Dir bedreift, ier Dir en 403 interpretéiert. HTTP-Inspizéiersregelen zu engem Stream-Proxy bäizesetzen gëtt him keng Visibilitéit, an ze erwaarden, datt en Byte-Relay eng Origin-Refusatioun erkläert, schéckt Iech an de falschen Log.
Vergläicht den Egress-Pad vum Proxy mat der Tunneladress vum Browser
En Browser, dee mat enger VPN verbonnen ass, verréckelt net automatesch en separate Proxy-Server op deen Tunnel. Den Origin gesäit d'Egress-Adress vum Proxy, an wann de Proxy nach ëmmer iwwer déi lokal Standardroute erausgeet, gesäit déi geschützt Säit eng Adress, där ni vertraut gouf. Déi intern VPN-Adress um Laptop ass fir deen Origin onsiichtbar. Dat ass dee heefegste Grond, firwat en funktionéierenden Tunnel nach ëmmer en 403 vun enger Säit gëtt, déi sech fir all déi aner korrekt verhält.
Test déi zwou Pisten getrennt, sou datt d'Adressen net verwiesselt kënne ginn.
curl -sS -o /dev/null -w 'status=%{http_code}\n' --noproxy '*' https://198.51.100.20/private
curl -sS -o /dev/null -w 'status=%{http_code}\n' -x http://203.0.113.10:3128 https://198.51.100.20/privateDéi éischt Ufro weist, wat den Origin op Är eege Adress äntwert, déi zweet, wat en op déi vum Proxy äntwert. En iwwereneestëmmend Paar 403 weist op d'Autorisatiounsregelen vum Origin; en 200, deem en 403 folgt, weist op de Proxy-Pad. Frot den Origin-Besëtzer, wéi eng Quelladressen de Reegelsaz tatsächlech zoulooss, amplaz unzehuelen, datt de VPN-Pool abegraff ass.
Test all Grenz mat enger Ufro, déi se isoléiert
Isoléiert d'Proxy-Schicht, andeems Dir se ëm eppes bitt, wat se aus Applikatiounsgrënn net refuséiere kann. En CONNECT op en Host, deen de Proxy erreeche kann, mam Output verkaaft, seet Iech, ob den Tunnelzougang iwwerhaapt funktionéiert.
curl -sSv -o /dev/null -x http://203.0.113.10:3128 https://198.51.100.20/ 2>&1 | grep -E 'CONNECT|HTTP/1.1|Proxy-Authenticate'
Wann dat en 200 fir den CONNECT an duerno en TLS-Handshake dréckt, ass den Proxy-Zougang an der Rei an den spéideren 403 koum vum Origin. Wann et 407 dréckt, gitt Proxy-Umeldungsdaten mam --proxy-user un a widderhuelt, ier Dir eng Konklusioun iwwer d'Säit zitt. Wann et 403 an der CONNECT-Zeil dréckt, ass dem Proxy seng eege Erlaabnislëscht d'Grenz, déi ze ënnersichen ass, an d'Applikatioun ass net bedeelegt.
Halt Umeldungsdaten aus der Shell-Historie an aus agepaste Transkripten eraus. E Proxy-Passwuert, dat an eng Kommandozeil getippt gëtt, ass fir aner lokal Benotzer sichtbar, an en opgehollenen CONNECT-Trace mat Umeldungsdaten ass schléchter wéi keen Trace.
Halt d'Urteel liesbar, amplaz d'Säit ëmzeschreiwen
Soubal Dir wësst, wéi eng Komponent refuséiert huet, behält déi Äntwert. En Reverse-Proxy, deen en Origin-403 als 504-Timeout ëmbenennt oder en duerch eng Erfollegssäit ersetzt, verstoppt eng Autorisatiounsentscheedung hannert enger Disponibilitéitsgeschicht an schéckt den nächsten Äntwerer an dat falscht Team. Benotzerdefinéiert Feelsäite si gutt, wa se de Status behalen an Kontext bäisetzen.
Caching verdéngt déiselwecht Suergfalt. RFC 9111 regelt, wéi gedeelte Caches Äntwerten däerfen erëmbenotzen, an eng Refusatioun, déi fir een Uruffer produzéiert gouf, däerf net engem aneren iwwergi ginn, wéi wann et eng Erlaabnis wier. Wa Refusatiounsäntwerten iwwerhaapt gespäichert ginn, halt se privat a begrenzt, a füüg ni eng ëffentlech Fräschregel derbäi just fir den Upstream-Trafic ze reduzéieren.
Schléisst mat engem schrëftlechen Urteel of, dat d'Komponent, de produzéierte Status an d'Quelladress nennt, déi den Origin gesinn huet. Halt déi genau Ufro, déi gëlteg Proxy-Astellungen an d'Zäit fest, sou datt den nächste Bericht mat deene selwechte Beweiser verglach ka ginn, amplaz aus dem Gediechtnes nei ofgeleet ze ginn. Dee Rekord äntwert den nächsten Bericht a Sekonnen a verhënnert, datt deen selwechten 403 nach eng Kéier als VPN-Ausfall diagnostizéiert gëtt.