Gitt engem entfernte Pi e SOCKS-Proxy duerch Ären SSH-Client
Eng entfernt dynamesch Weiderleedung setzt de SOCKS-Lauschterer op de Pi an mécht déi nächst Verbindung iwwer den approuvéierte VPN-Wee vun Ärem Laptop. Kee zweeten SSH-Server.
Dir hëlt un, datt e SOCKS-Proxy do lafe muss, wou den Netzwierkzougang schonn existéiert. OpenSSH kann de Lauschterer ganz anescht placéieren. Eng entfernt dynamesch Weiderleedung mécht de SOCKS-Port op engem entfernte Host op an originéiert all Verbindung vun Ärem lokalen SSH-Client, deen den approuvéierte VPN-Wee vun Ärem Laptop dréit. De Pi kritt e begrenzte Proxy; hien iwwerhëlt weder Ären Tunnel nach Är Privilegien.
De Lauschterer an déi Säit, vun där d'Verbindung ausgeet, kënnen ënnerschiddlech sinn
E gewéinlechen ssh -D 1080 leeft de Lauschterer op Ärer eegener Maschinn a schéckt Verbindunge vun do aus. Eng entfernt dynamesch Weiderleedung dréit dat ëm: de Lauschterer erschéngt um entfernten Host, an all Verbindung, déi hien unhëlt, gëtt vun der lokaler Säit opgemaach. D'Handbuch vum OpenSSH-Client dokumentéiert -R ouni fix Zil genee als dës SOCKS4/5-Anuerdnung.
En ënnerstëtzte Kommando vum Laptop gesäit esou aus, woubäi de Kont, d'Hoste an de Port als Plazhalter behandelt ginn:
ssh -NT -S none -o ExitOnForwardFailure=yes \
-o PermitRemoteOpen=app.corp.example:443 \
-R 1080 [email protected]
Dräi Detailer maachen do nëtzlech Aarbecht. -S none hält d'Sessioun vun engem gedeelten Kontrollmaster fort, ExitOnForwardFailure feelt séier, amplaz Iech mat enger hallef oppener Sessioun ze loossen, an PermitRemoteOpen limitéiert, wat den entfernte Lauschterer erreeche kann. Benotzt en autoriséierte Pi-Kont a verifizéiert den Hostschlëssel, ier Dir iergendeppes dovun derbäisetzt.
Wat den entfernte Lauschterer wierklech aussetzt
Préift d'Weiderleedungspolitik vum Server, ier Dir op de Lauschterer vertraut. Mat GatewayPorts no bleift d'entfernt Weiderleedung un loopback gebonnen, an dat ass d'Aussetzung, déi Dir wëllt. E Server, dee ageriicht ass fir Wildcard-Weiderleedung ze forcéieren, publizéiert dee selwechte Port op all Interface, wat e perséinleche Proxy zu eppes mécht, dat dat lokalt Netzwierk erreeche kann.
Loopback ass och keng Grenz pro Benotzer. En anere Prozess op dem Pi kann sech mat 127.0.0.1:1080 verbannen, wann en de Port kennt, dofir sinn dem Pi seng lokal Konten an alles, wat drop leeft, Deel vun Ärem Zougangsdesign. Dat ass e Grond, d'Lëscht vun den Ziler enk ze halen, net e Grond, d'Politikspréifung ze iwwersprangen.
Halt dat erlaabt Zil spezifesch fir d'Applikatioun, déi Dir versicht z'erreechen. Et duerch onbegrenzt Weiderleedung ersetzen, fir en onverwännene Programm zum Lafe ze bréngen, verbreet de Wee wäit iwwer de Problem eraus, mat deem Dir ugefaangen hutt. Eng Zillëscht hält och fest, wofir d'Sessioun war, wat deem hëlleft, dee se méi spéit auditéiert. Schreift se niewent de Kont, deen Dir benotzt hutt.
Schéckt eng Applikatioun duerch de Proxy
En Client um Pi, dee Proxy versteet, kann duerno d'Ufro schécken. De Prefix socks5h iwwergëtt den Zilnumm un de Proxy, sou datt d'Opsich an d'Verbindung allebéid op der Laptopsäit geschéien, an et passt zum benannte Zil an PermitRemoteOpen:
curl --proxy socks5h://127.0.0.1:1080 \
--noproxy '' https://app.corp.example/
Behält déi normal Zertifikatsvalidéierung an d'Authentifikatioun vun der Applikatioun selwer. De Proxy ännert, wou d'TCP-Verbindung opgebaut gëtt; hien mécht en net authentifizéierte Service net sécher an hie mécht en eegenënnerzeechent Ennpunkt net zu engem vertrauenswürdegen.
De Laptop brauch nach ëmmer seng eege Route an Zougang zum Resolver souwuel zum SSH-Server wéi och zur Applikatioun. De Verkéier vu sengem SSH-Client muss duerch déi approuvéiert VPN-Politik ausgewielt ginn, an eng Split-Tunnel-Ausnam kann dee Verkéier iwwer en anere Wee schécken wéi deen, deen Dir getest hutt.
Beweist de Wee a maacht en zou
Bestätegt, datt de Lauschterer do existéiert, wou Dir en erwaart, an datt nëmmen dat virgesinn Zil äntwert:
$ ss -ltnp | grep 1080
LISTEN 0 128 127.0.0.1:1080 0.0.0.0:*
$ curl -sS -o /dev/null -w '%{http_code}\n' \
--proxy socks5h://127.0.0.1:1080 https://app.corp.example/
ExitOnForwardFailure kann beweisen, datt d'Weiderleedung opgebaut gouf, an et kann nach ëmmer net bescheinegen, datt d'Anmeldung an der Applikatioun floss of geléngt. Test d'Applikatioun, net nëmmen de Port. E Lauschterer, deen unhëlt an dann all Ufro feelt, bedeit meeschtens, datt den Zilnumm oder d'Route vum Laptop falsch ass, net datt den Tunnel versot huet.
Dës Anuerdnung dréit nëmmen TCP. UDP, ICMP a Programmer, déi Proxy-Astellunge ignoréieren, bleiwen dobaussen, an d'Weiderleedung endet an deem Moment, wou d'SSH-Sessioun endet. Stopp déi Sessioun, wann Dir fäerdeg sidd, a läscht d'Proxy-Astellung, déi Dir der Applikatioun derbäigesat hutt.
Fir permanenten Zougang benotzt amplaz d'ënnerstëtzt Umeldung vum Netzwierkbesëtzer oder en verwalteten Gateway. E Reverse-Proxy ass dat falscht Instrument, fir d'Apparat- oder Ressourcebeschränkunge vun enger VPN ze ëmgoen; bannen dran benotzt, ass et einfach een autoriséierte Applikatiounswee mat explizite Grenzen.