Dajte udaljenom Pi-ju SOCKS proxy kroz svoj SSH klijent
Udaljeno dinamičko prosljeđivanje stavlja SOCKS osluškivač na Pi i ostvaruje daljnju vezu s odobrene VPN staze vašeg prijenosnika. Bez drugog SSH poslužitelja.
Pretpostavljate da SOCKS proxy mora raditi tamo gdje mrežni pristup već postoji. OpenSSH može smjestiti osluškivač posve 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 stazu vašeg prijenosnika. Pi dobiva 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čunalu 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 dokumentira -R bez fiksne destinacije upravo kao takav SOCKS4/5 raspored.
Podržana naredba s prijenosnika 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 što od ovoga dodate.
Što udaljeni osluškivač doista izlaže
Provjerite poslužiteljsku politiku prosljeđivanja prije nego što se oslonite na osluškivač. S GatewayPorts no udaljeno prosljeđivanje ostaje vezano uz loopback, a to je izloženost koju želite. Poslužitelj konfiguriran da forsira wildcard prosljeđivanje objavljuje isti port na svakom sučelju, što osobni 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 popis destinacija držite uskim, a ne razlog da preskočite provjeru politike.
Držite dopuštenu destinaciju specifičnom za aplikaciju kojoj pokušavate pristupiti. Zamjena te destinacije neograničenim prosljeđivanjem da bi proradila nepovezana aplikacija širi stazu daleko iznad problema s kojim ste počeli. Popis destinacija također bilježi čemu je sesija služila, što pomaže onome tko je kasnije bude pregledavao. 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 prijenosnika, i to odgovara imenovanoj destinaciji u PermitRemoteOpen:
curl --proxy socks5h://127.0.0.1:1080 \
--noproxy '' https://app.corp.example/
Zadržite uobičajenu 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.
Prijenosniku i dalje trebaju vlastita ruta i pristup razrješivaču i do SSH poslužitelja i do aplikacije. Promet njegovog SSH klijenta mora birati odobrena VPN politika, a split-tunnel izuzetak može poslati taj promet drugom stazom od one koju ste testirali.
Dokažite stazu 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 prijenosnika pogrešni, a ne da je tunel pao.
Ovaj raspored nosi samo TCP. UDP, ICMP i programi koji ignoriraju 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 staza s izričitim granicama.