Oletat, että SOCKS-välityspalvelimen täytyy toimia siellä, missä verkkoyhteys on jo olemassa. OpenSSH voi sijoittaa kuuntelijan aivan muualle. Etädynaaminen edelleenohjaus avaa SOCKS-portin etäkoneelle ja aloittaa jokaisen yhteyden paikallisesta SSH-asiakkaastasi, joka kuljettaa kannettavasi hyväksyttyä VPN-reittiä. Pi saa rajatun välityspalvelimen; se ei peri tunnelliasi tai oikeuksiasi.

Kuuntelija ja yhteyslähteen puoli voivat olla eri

Tavallinen ssh -D 1080 ajaa kuuntelijan omalla koneellasi ja lähettää yhteydet sieltä. Etädynaaminen edelleenohjaus kääntää tämän: kuuntelija ilmestyy etäkoneelle ja jokainen yhteys, jonka se hyväksyy, avataan paikalliselta puolelta. OpenSSH-asiakkaan käsikirja dokumentoi -R ilman kiinteää kohdetta juuri tällaisena SOCKS4/5-järjestelynä.

Tuetulta kannettavalta annettava komento näyttää tältä, kun tili, isännät ja portti käsitellään paikkamerkkeinä:

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

Kolme yksityiskohtaa tekee siellä hyödyllistä työtä. -S none pitää istunnon poissa jaetulta ohjausmasterilta, ExitOnForwardFailure epäonnistuu nopeasti sen sijaan että jättäisi sinut puoliavoimeen istuntoon, ja PermitRemoteOpen rajaa, mihin etäkuuntelija voi päästä. Käytä valtuutettua Pi-tiliä ja tarkista isännän avain ennen kuin lisäät mitään tästä.

Mitä etäkuuntelija todella paljastaa

Tarkista palvelimen edelleenohjauskäytäntö ennen kuin luotat kuuntelijaan. GatewayPorts no-asetuksella etäedelleenohjaus pysyy loopbackiin sidottuna, ja se on se altistus, jonka haluat. Palvelin, joka on määritetty pakottamaan jokerimerkillinen edelleenohjaus, julkaisee saman portin jokaisella liitännällä, mikä muuttaa henkilökohtaisen välityspalvelimen joksikin, jonka paikallisverkko voi tavoittaa.

Loopback ei myöskään ole käyttäjäkohtainen raja. Toinen prosessi Pi:llä voi yhdistää 127.0.0.1:1080:ään, jos se tietää portin, joten Pi:n paikalliset tilit ja kaikki siinä ajettava ovat osa pääsykokonaisuuttasi. Tämä on syy pitää kohdeluettelo kapeana, ei syy ohittaa käytäntötarkistusta.

Pidä sallittu kohde täsmällisenä sen sovelluksen osalta, jota yrität tavoittaa. Sen korvaaminen rajoittamattomalla edelleenohjauksella, jotta jokin asiaankuulumaton ohjelma toimisi, leventää polkua paljon aloittamaasi ongelmaa pidemmälle. Kohdeluettelo myös kirjaa, mitä varten istunto oli, mikä auttaa sitä, joka tarkastaa sen myöhemmin. Kirjoita se muistiin käyttämäsi tilin viereen.

Lähetä yksi sovellus välityspalvelimen kautta

Välityspalvelimen ymmärtävä asiakas Pi:llä voi sitten tehdä pyynnön. Etuliite socks5h antaa kohdenimen välityspalvelimelle, joten haku ja yhteys tapahtuvat molemmat kannettavan puolella, ja se vastaa PermitRemoteOpen:ssä nimettyä kohdetta:

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

Säilytä tavallinen varmenteen vahvistus ja sovelluksen oma todennus. Välityspalvelin muuttaa sitä, missä TCP-yhteys muodostetaan; se ei tee todennuksettomasta palvelusta turvallista eikä muuta itse allekirjoitettua päätepistettä luotetuksi.

Kannettava tarvitsee edelleen oman reittinsä ja resolver-yhteyden sekä SSH-palvelimeen että sovellukseen. Sen SSH-asiakkaan liikenne täytyy valita hyväksytyllä VPN-käytännöllä, ja split-tunnel-poikkeus voi lähettää liikenteen eri polkua kuin testaamasi.

Todista polku ja sulje se

Vahvista, että kuuntelija on siellä missä odotat ja että vain aiottu kohde vastaa:

$ 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 voi todistaa, että edelleenohjaus muodostettiin, eikä silti voi todistaa, että sovellukseen kirjautuminen onnistuu alavirrassa. Testaa sovellusta, älä vain porttia. Kuuntelija, joka hyväksyy ja sitten epäonnistuu joka pyynnössä, tarkoittaa yleensä, että kohdenimi tai kannettavan reitti on väärä, ei että tunneli epäonnistui.

Tämä järjestely kuljettaa vain TCP:tä. UDP, ICMP ja välityspalvelinasetukset ohittavat ohjelmat jäävät sen ulkopuolelle, ja edelleenohjaus päättyy heti, kun SSH-istunto päättyy. Pysäytä istunto, kun olet valmis, ja poista sovellukseen lisäämäsi välityspalvelinasetus.

Pysyvää pääsyä varten käytä sen sijaan verkon omistajan tuettua rekisteröintiä tai hallittua yhdyskäytävää. Käänteinen välityspalvelin on väärä työkalu VPN:n laite- tai resurssirajoitusten kiertämiseen; niiden sisällä käytettynä se on yksinkertaisesti yksi valtuutettu sovelluspolku, jolla on selkeät rajat.

Aiheeseen liittyvät artikkelit