Teie heakskiidetud puhverserver töötab hüppehostil, kus see kuulab ainult loopbackil, seega ei pääse miski väljaspool seda masinat sellele ligi. Te ei vaja VPN-i ega uut puhverserverit; te vajate selle masina ühte porti, mis on kantud üle teie ühele pordile. Kohalik edastus teeb täpselt seda ja nõuab ühte käsku pluss ühte rakenduse seadet. Segadus tuleb tavaliselt sellest, et aetakse segamini, milline loopback-aadress kuulub millisele masinale.

Otsustage, kas fikseeritud puhverserver on juba olemas

See tehnika edastab teenust, mis juba töötab. Kui kaugmasinal on ainult SSH-deemon ja puhverserverit pole, ei loo ükski edastuskogus seda, ja ühendus lükatakse kaugpoolt tagasi. Kinnitage, et puhverserver on seotud, milline on selle port ja kas see kuulab aadressil 127.0.0.1 või konkreetsel liidese aadressil, sest just see aadress on edastuse sihtmärk.

Selle esmalt kinnitamine säästab teid tuvastamast tunnelit, mis ei olnud kunagi millegagi ühendatud.

Ehitage edastus ja lugege käsku

Soovitud kuju seob sülearvuti loopback-pordi ja ühendab selle serveripoolt puhverserveri aadressiga nii, nagu server seda näeb.

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

-N surub maha kaugkäsud ja -T surub maha termios-e eraldamise, sest te vajate tunnelit, mitte shelli. Esimene loopback-aadress on see, kus sülearvuti kuulab; teise lahendab SSH-server, seega tähendab 127.0.0.1 seal selle masina puhverserverit. ExitOnForwardFailure paneb käsu valjult ebaõnnestuma, kui kohalik port on juba hõivatud, selle asemel et alustada seanssi, mis ei edasta midagi. Kirjutage sihtaadress nii, nagu server seda lahendab, sest nimi, mida ainult teie sülearvuti lahendada suudab, ebaõnnestub teisel pool.

Serveri enda poliitika kehtib enne, kui midagi sellest tööle hakkab. AllowTcpForwarding peab selle lubama ja PermitOpen võib piirata, millistele sihtkohtadele ja portidele seanss pääseb, seega võib server edastuse, mille klient aktsepteerib, siiski tagasi lükata. Keeldumine ilmub kliendil edastus- või kanaliveana, ja selle teate lugemine on kiirem kui käsu muutmine.

Suunake üks rakendus edastusele

Seadistage rakendus kasutama HTTP-puhverserverit aadressil http://127.0.0.1:13128, koos volitustega, kui kaugpuhverserver neid nõuab. Hoidke rakenduse enda sertifikaatide kontroll HTTPS-sihtkohtade jaoks, kuna puhverserveri tunnel ei asenda seda. See on ühe teenuse fikseeritud edastus, seega tuleb rakendusele öelda puhverserverist, mitte jätta teda seda ise avastama.

Kiire kontroll enne mis tahes püsivat seadistamist: curl -x http://127.0.0.1:13128 -I https://example.com, mis harjutab HTTP CONNECT-meetodit, mida puhverserver peab toetama.

Hoidke volitus seal, kus see oli

Kaugpuhverserver otsustab endiselt, milliseid sihtkohti ja meetodeid see lubab, ja SSH-sisselogimine ei tohiks vaikselt anda igale kontole üldist veebireleed. Sülearvutis aadressile 127.0.0.1 sidumine väldib pordi avalikustamist teie kohalikku võrku, ja see ei muuda porti privaatseks sama masina teiste protsesside eest. Selle sidumise asendamine metamärgiga aadressiga, et puhverserverit jagada, on viis, kuidas tekib haldamata avatud relee.

SSH-transport kaitseb hüpet serverini. Sellest punktist edasi avab puhverserver oma ühenduse, seega jääb tavaline HTTP-päring sihtkohta ka pärast serverit tavaliseks, ehkki esimene lõik oli krüpteeritud.

Kontrollige mõlemat otsa, seejärel koristage

Kohaliku tunneli seadistamine ja kaugteenuse edu on erinevad tulemused, ja käsu väljumisolek räägib teile ainult esimesest. Kontrollige, et kuulaja on olemas käsuga ss -ltn, seejärel tehke lubatud rakendusepäring ja päring, mille puhverserver peaks tagasi lükkama. Kui mõlemad käituvad ootuspäraselt, on tee tõeline; kui tunnel töötab ja iga päring ebaõnnestub, lükkab puhverserver tagasi või ei pääse sihtkohta.

Kui olete lõpetanud, peatage seda omav SSH-protsess, eemaldage puhverserveri seade rakendusest ja kinnitage, et kohalik port on kadunud, selle asemel et jätta kuulaja, mis elab ülesandest kauem.

Seotud artiklid