Du går ut frå at ein SOCKS-proxy må køyre der nettilgangen alt finst. OpenSSH kan plassere lyttaren heilt andre stader. Ei ekstern dynamisk videresending opnar SOCKS-porten på ein ekstern vert og startar kvar sambinding frå din lokale SSH-klient, som ber den godkjende VPN-vegen til laptopen din. Pi-en får ein avgrensa proxy; han arvar ikkje tunnelen eller privilegia dine.

Lyttaren og sida sambindinga kjem frå, kan vere ulike

Ein vanleg ssh -D 1080 køyrer lyttaren på din eigen maskin og sender sambindingar ut derfrå. Ei ekstern dynamisk videresending snur det: lyttaren dukkar opp på den eksterne verten, og kvar sambinding han godtek, blir opna frå den lokale sida. manualen til OpenSSH-klienten dokumenterer -R utan eit fast mål som nettopp dette SOCKS4/5-oppsettet.

Ein støtta kommando frå laptopen ser slik ut, med kontoen, vertane og porten handsama som plasshaldarar:

ssh -NT -S none -o ExitOnForwardFailure=yes \
  -o PermitRemoteOpen=app.corp.example:443 \
  -R 1080 [email protected]

Tre detaljar gjer nyttig arbeid der. -S none held økta unna ein delt kontroll-master, ExitOnForwardFailure feilar raskt i staden for å la deg sitje med ei halvopen økt, og PermitRemoteOpen avgrensar kva den eksterne lyttaren kan nå. Bruk ein autorisert Pi-konto og stadfest vertsnøkkelen før du legg til noko av dette.

Kva den eksterne lyttaren eigenleg eksponerer

Sjekk videresendingspolicyen til tenaren før du stolar på lyttaren. Med GatewayPorts no blir den eksterne videresendinga verande bunden til loopback, og det er eksponeringa du vil ha. Ein tenar som er sett opp til å tvinge gjennom jokerteikn-videresending, publiserer same port på kvart grensesnitt, noko som gjer ein personleg proxy til noko det lokale nettet kan nå.

Loopback er heller ikkje ei grense per brukar. Ein annan prosess på Pi-en kan kople til 127.0.0.1:1080 om han kjenner porten, så dei lokale kontoane til Pi-en og alt som køyrer på han er ein del av tilgangsdesignet ditt. Det er ein grunn til å halde mållista smal, ikkje ein grunn til å hoppe over policysjekken.

Hald det tillatne målet spesifikt for programmet du prøver å nå. Å bytte det ut med avgrensa videresending for å få eit uvedkommande program til å verke, utvidar vegen langt forbi problemet du starta med. Ei målliste registrerer òg kva økta var til, noko som hjelper den som reviderer ho seinare. Skriv ho ned ved sida av kontoen du brukte.

Send eitt program gjennom proxyen

Ein proxyviten klient på Pi-en kan då sende førespurnaden. Prefikset socks5h overleverer målnamnet til proxyen, så oppslaget og sambindinga skjer båe på laptopsida, og det svarar til det namngjetne målet i PermitRemoteOpen:

curl --proxy socks5h://127.0.0.1:1080 \
  --noproxy '' https://app.corp.example/

Hald på vanleg sertifikatvalidering og den eigen autentiseringa til programmet. Proxyen endrar kvar TCP-sambindinga blir oppretta; han gjer ikkje ein uautentisert teneste trygg, og han gjer ikkje eit sjølvsignert endepunkt til eit klarert eit.

Laptopen treng framleis si eiga rute og resolvertilgang til både SSH-tenaren og programmet. Trafikken til SSH-klienten må veljast av den godkjende VPN-policyen, og eit split-tunnel-unntak kan sende den trafikken ein annan veg enn den du testa.

Prov vegen og lukk han

Stadfest at lyttaren finst der du ventar, og at berre det tiltenkte målet svarar:

$ 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 kan prove at videresendinga vart oppretta, og kan framleis ikkje attestere at innlogginga i programmet lukkast lenger nede. Test programmet, ikkje berre porten. Ein lyttar som godtek og deretter feilar på kvar førespurnad, tyder vanlegvis at målnamnet eller ruta til laptopen er feil, ikkje at tunnelen feila.

Dette oppsettet ber berre TCP. UDP, ICMP og program som ignorerer proxyinnstillingar held seg utanfor, og videresendinga sluttar i det augeblikket SSH-økta sluttar. Stopp den økta når du er ferdig, og fjern proxyinnstillinga du la til i programmet.

For permanent tilgang bør du i staden bruke den støtta registreringa til netteigaren eller ein administrert gateway. Ein omvend proxy er feil verktøy for å omgå eining- eller ressursavgrensingane til ein VPN; brukt innanfor dei er han rett og slett éin autorisert programveg med uttrykkelege grenser.

Relaterte artiklar