Din godkendte proxy kører på en springvært, hvor den kun lytter på loopback, så intet uden for den maskine kan nå den. Du har ikke brug for en VPN eller en ny proxy; du har brug for én port fra den maskine, båret over til én port hos dig. En lokalfremføring gør præcis det, og den kræver én kommando plus én applikationsindstilling. Forvirringen kommer normalt af, at man blander sammen, hvilken loopback-adresse der hører til hvilken maskine.

Afgør, om der allerede findes en fast proxy

Denne teknik videresender en tjeneste, der allerede kører. Hvis fjernværten blot har en SSH-dæmon og ingen proxy, skaber ingen mængde videresendelse en, og forbindelsen vil blive afvist fra fjernsiden. Bekræft, at proxyen er bundet, hvilken port den bruger, og om den lytter på 127.0.0.1 eller på en bestemt interfaceadresse, for det er den adresse, fremføringen skal sigte mod.

Bekræfter du det først, sparer du dig for at fejlfinde en tunnel, der aldrig var forbundet til noget.

Byg fremføringen, og læs kommandoen

Den form, du vil have, binder en loopback-port på din bærbare og forbinder den fra serverens side til proxyens adresse, som serveren ser den.

ssh -NT -o ControlPath=none -o ExitOnForwardFailure=yes \
  -L 127.0.0.1:13128:127.0.0.1:3128 [email protected]

-N undertrykker en fjernkommando, og -T undertrykker termios-tildeling, fordi du vil have en tunnel og ikke en shell. Den første loopback-adresse er, hvor den bærbare lytter; den anden slås op af SSH-serveren, så 127.0.0.1 der betyder proxyen på den maskine. ExitOnForwardFailure får kommandoen til at fejle højlydt, hvis den lokale port allerede er optaget, i stedet for at starte en session, der ikke fremfører noget. Skriv måladressen, som serveren slår den op, for et navn, som kun din bærbare kan slå op, vil fejle på den anden side.

Serverens egen politik gælder, før noget af dette virker. AllowTcpForwarding skal tillade det, og PermitOpen kan begrænse, hvilke destinationer og porte en session må nå, så en fremføring, klienten accepterer, kan stadig blive afvist af serveren. Afvisningen viser sig som en fremførings- eller kanalfejl på klienten, og det er hurtigere at læse den besked end at redigere kommandoen.

Peg én applikation mod fremføringen

Konfigurer applikationen til at bruge en HTTP-proxy på http://127.0.0.1:13128, med legitimationsoplysninger hvis fjernproxyen kræver det. Behold applikationens egen certifikatverifikation for HTTPS-destinationer, da proxytunnelen ikke erstatter den. Dette er en fast fremføring af én tjeneste, så applikationen skal have at vide, at der er en proxy, i stedet for at skulle opdage den selv.

Et hurtigt tjek, før du konfigurerer noget permanent: curl -x http://127.0.0.1:13128 -I https://example.com, som afprøver den HTTP CONNECT-metode, proxyen skal understøtte.

Hold autoriteten, hvor den var

Fjernproxyen bestemmer stadig, hvilke destinationer og metoder den tillader, og et SSH-login bør ikke stille give enhver konto et generelt webrelay. Binding til 127.0.0.1 på den bærbare undgår at offentliggøre porten på dit lokale netværk, og det gør ikke porten privat for andre processer på samme maskine. At erstatte den binding med en wildcard-adresse for at dele proxyen er, hvordan et ureguleret åbent relay opstår.

SSH-transporten beskytter springet til serveren. Hinsides det punkt åbner proxyen sin egen forbindelse, så en almindelig HTTP-anmodning til en destination forbliver almindelig hinsides serveren, selv om det første segment var krypteret.

Verificér begge ender, og ryd så op

Lokal tunnelopsætning og fjertjenestens succes er forskellige resultater, og kommandoens afslutningsstatus fortæller dig kun om det første. Tjek, at lytteren findes med ss -ltn, og lav derefter en tilladt applikationsanmodning og en anmodning, som proxyen bør afvise. Hvis begge opfører sig som forventet, er vejen reel; hvis tunnelen er oppe, og hver anmodning fejler, afviser proxyen eller kan ikke nå destinationen.

Når du er færdig, stop den SSH-proces, der ejer den, fjern proxyindstillingen fra applikationen, og bekræft, at den lokale port er væk, i stedet for at efterlade en lytter, der overlever opgaven.

Relaterede artikler