Dajte udaljenom Pi-ju SOCKS proxy kroz svoj SSH klijent
Udaljeno dinamičko prosljeđivanje stavlja SOCKS osluškivač na Pi i ostvaruje dalju vezu s odobrene VPN putanje vašeg laptopa. Nema drugog SSH servera.
Pretpostavljate da SOCKS proxy mora raditi tamo gdje mrežni pristup već postoji. OpenSSH može smjestiti osluškivač sasvim drugdje. Udaljeno dinamičko prosljeđivanje otvara SOCKS port na udaljenom hostu i započinje svaku vezu s vašeg lokalnog SSH klijenta, koji nosi odobrenu VPN putanju vašeg laptopa. Pi dobija ograničeni proxy; on ne nasljeđuje vaš tunel ni vaše privilegije.
Osluškivač i strana s koje veza nastaje mogu se razlikovati
Običan ssh -D 1080 pokreće osluškivač na vašem vlastitom računaru i odatle šalje veze. Udaljeno dinamičko prosljeđivanje to okreće: osluškivač se pojavljuje na udaljenom hostu, a svaka veza koju prihvati otvara se s lokalne strane. Priručnik OpenSSH klijenta dokumentuje -R bez fiksne destinacije upravo kao takav SOCKS4/5 raspored.
Podržana naredba s laptopa izgleda ovako, s računom, hostovima i portom kao rezerviranim mjestima:
ssh -NT -S none -o ExitOnForwardFailure=yes \
-o PermitRemoteOpen=app.corp.example:443 \
-R 1080 [email protected]
Tri detalja tu rade koristan posao. -S none drži sesiju podalje od zajedničkog kontrolnog mastera, ExitOnForwardFailure brzo pada umjesto da vas ostavi s napola otvorenom sesijom, a PermitRemoteOpen ograničava do čega udaljeni osluškivač može doći. Koristite ovlašteni Pi račun i provjerite ključ hosta prije nego što bilo šta od ovoga dodate.
Šta udaljeni osluškivač zaista izlaže
Provjerite serversku politiku prosljeđivanja prije nego što se oslonite na osluškivač. S GatewayPorts no udaljeno prosljeđivanje ostaje vezano za loopback, a to je izloženost koju želite. Server konfigurisan da forsira wildcard prosljeđivanje objavljuje isti port na svakom interfejsu, što lični proxy pretvara u nešto do čega lokalna mreža može doći.
Loopback također nije granica po korisniku. Drugi proces na Pi-ju može se povezati na 127.0.0.1:1080 ako zna port, pa su lokalni računi Pi-ja i sve što na njemu radi dio vašeg dizajna pristupa. To je razlog da listu destinacija držite uskom, a ne razlog da preskočite provjeru politike.
Držite dozvoljenu destinaciju specifičnom za aplikaciju kojoj pokušavate pristupiti. Zamjena te destinacije neograničenim prosljeđivanjem da bi proradila nepovezana aplikacija širi putanju daleko iznad problema s kojim ste počeli. Lista destinacija također bilježi čemu je sesija služila, što pomaže onome ko je kasnije bude revidirao. Zapišite je uz račun koji ste koristili.
Pošaljite jednu aplikaciju kroz proxy
Klijent na Pi-ju koji razumije proxy tada može poslati zahtjev. Prefiks socks5h predaje ime destinacije proxyju, pa se pretraga i veza oboje odvijaju na strani laptopa, i to odgovara imenovanoj destinaciji u PermitRemoteOpen:
curl --proxy socks5h://127.0.0.1:1080 \
--noproxy '' https://app.corp.example/
Zadržite normalnu provjeru certifikata i vlastitu autentikaciju aplikacije. Proxy mijenja gdje se TCP veza uspostavlja; ne čini neautentificiranu uslugu sigurnom i ne pretvara samopotpisani endpoint u pouzdan.
Laptopu i dalje trebaju vlastita ruta i pristup rezolveru i do SSH servera i do aplikacije. Saobraćaj njegovog SSH klijenta mora birati odobrena VPN politika, a split-tunnel izuzetak može poslati taj saobraćaj drugom putanjom od one koju ste testirali.
Dokažite putanju i zatvorite je
Potvrdite da osluškivač postoji tamo gdje ga očekujete i da odgovara samo predviđena destinacija:
$ 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 može dokazati da je prosljeđivanje uspostavljeno, a ipak ne može potvrditi da prijava u aplikaciju uspijeva nizvodno. Testirajte aplikaciju, ne samo port. Osluškivač koji prihvati pa odbije svaki zahtjev obično znači da su ime destinacije ili ruta laptopa pogrešni, a ne da je tunel pao.
Ovaj raspored nosi samo TCP. UDP, ICMP i programi koji ignorišu proxy postavke ostaju izvan njega, a prosljeđivanje završava u trenutku kada završi SSH sesija. Zaustavite tu sesiju kad završite i uklonite proxy postavku koju ste dodali aplikaciji.
Za trajni pristup umjesto toga koristite podržanu registraciju vlasnika mreže ili upravljani gateway. Obrnuti proxy je pogrešan alat za izbjegavanje VPN ograničenja po uređaju ili resursu; korišten unutar njih, on je samo jedna ovlaštena aplikacijska putanja s izričitim granicama.