Dajte oddaljenemu Pi posrednik SOCKS prek svojega odjemalca SSH
Oddaljeno dinamično posredovanje postavi poslušalec SOCKS na Pi in vzpostavi nadaljnjo povezavo s potrditvene poti VPN vašega prenosnika. Brez drugega strežnika SSH.
Predpostavljate, da mora posrednik SOCKS teči tam, kjer je omrežni dostop že vzpostavljen. OpenSSH lahko poslušalec postavi povsem drugam. Oddaljeno dinamično posredovanje odpre vrata SOCKS na oddaljenem gostitelju in vsako povezavo začne z vašega lokalnega odjemalca SSH, ki nosi potrjeno pot VPN vašega prenosnika. Pi dobi omejen posrednik; ne podeduje vašega tunela ali vaših pravic.
Poslušalec in stran, s katere povezava nastane, se lahko razlikujeta
Običajen ssh -D 1080 zažene poslušalec na vašem lastnem računalniku in od tam pošilja povezave. Oddaljeno dinamično posredovanje to obrne: poslušalec se pojavi na oddaljenem gostitelju in vsaka povezava, ki jo sprejme, se odpre z lokalne strani. priročnik odjemalca OpenSSH dokumentira -R brez stalnega cilja natanko kot to razporeditev SOCKS4/5.
Podprt ukaz s prenosnika je videti tako, pri čemer se račun, gostitelji in vrata obravnavajo kot nadomestna mesta:
ssh -NT -S none -o ExitOnForwardFailure=yes \
-o PermitRemoteOpen=app.corp.example:443 \
-R 1080 [email protected]
Tri podrobnosti tam opravijo koristno delo. -S none drži sejo stran od skupnega nadzornega masterja, ExitOnForwardFailure hitro odpove, namesto da bi vas pustil s napol odprto sejo, in PermitRemoteOpen omejuje, kam lahko oddaljeni poslušalec doseže. Uporabite pooblaščen račun Pi in pred dodajanjem česar koli od tega preverite ključ gostitelja.
Kaj oddaljeni poslušalec v resnici izpostavi
Preden se zanesete na poslušalec, preverite politiko posredovanja strežnika. Z GatewayPorts no oddaljeno posredovanje ostane vezano na loopback, in to je izpostavljenost, ki jo želite. Strežnik, nastavljen za vsiljevanje nadomestnega posredovanja, objavi ista vrata na vsakem vmesniku, kar osebni posrednik spremeni v nekaj, kar lahko lokalno omrežje doseže.
Loopback tudi ni meja na uporabnika. Drugi proces na Pi se lahko poveže z 127.0.0.1:1080, če pozna vrata, zato so lokalni računi Pi in vse, kar na njem teče, del vaše zasnove dostopa. To je razlog za ozek seznam ciljev, ne razlog za preskok preverjanja politike.
Dovoljeni cilj naj bo poseben za aplikacijo, ki jo skušate doseči. Če ga nadomestite z neomejenim posredovanjem, da bi deloval nepovezan program, pot razširite daleč prek težave, s katero ste začeli. Seznam ciljev tudi zabeleži, čemu je bila seja namenjena, kar pomaga tistemu, ki jo bo pozneje pregledal. Zapišite ga poleg računa, ki ste ga uporabili.
Pošljite eno aplikacijo skozi posrednik
Odjemalec na Pi, ki razume posrednika, lahko nato pošlje zahtevo. Predpona socks5h izroči ime cilja posredniku, zato se iskanje in povezava zgodita na strani prenosnika, in ustreza imenovanemu cilju v PermitRemoteOpen:
curl --proxy socks5h://127.0.0.1:1080 \
--noproxy '' https://app.corp.example/
Ohranite običajno preverjanje potrdila in lastno overjanje aplikacije. Posrednik spremeni, kje se vzpostavi povezava TCP; ne naredi neoverjene storitve varne in ne spremeni samopodpisanega končnega mesta v zaupanja vredno.
Prenosnik še vedno potrebuje svojo pot in dostop do razreševalnika tako do strežnika SSH kot do aplikacije. Promet njegovega odjemalca SSH mora izbrati potrjena politika VPN, izjema za razdeljeni tunel pa lahko ta promet pošlje po drugi poti od tiste, ki ste jo preizkusili.
Dokažite pot in jo zaprite
Potrdite, da poslušalec obstaja tam, kjer ga pričakujete, in da odgovarja le predvideni cilj:
$ 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 lahko dokaže, da je bilo posredovanje vzpostavljeno, in vseeno ne more potrditi, da bo prijava v aplikacijo nižje uspela. Preizkusite aplikacijo, ne le vrat. Poslušalec, ki sprejme in nato vsako zahtevo zavrne, običajno pomeni, da sta ime cilja ali pot prenosnika napačna, ne da je tunel odpovedal.
Ta razporeditev prenaša samo TCP. UDP, ICMP in programi, ki ignorirajo nastavitve posrednika, ostanejo zunaj nje, posredovanje pa se konča v trenutku, ko se seja SSH konča. Ko končate, to sejo ustavite in odstranite nastavitev posrednika, ki ste jo dodali aplikaciji.
Za trajni dostop namesto tega uporabite podprto registracijo lastnika omrežja ali upravljana vrata. Povratni posrednik je napačno orodje za izogibanje omejitvam VPN glede naprav ali virov; uporabljen znotraj njih je preprosto ena pooblaščena pot aplikacije z izrecnimi mejami.