Kuinka käyttää SSH-tunnelointia rajoitettujen palvelimien käyttämiseen ja turvalliseen selaamiseen

SSH-asiakas muodostaa yhteyden Secure Shell -palvelimeen, jonka avulla voit suorittaa terminaalikomentoja ikään kuin istuisit toisen tietokoneen edessä. Mutta SSH-asiakasohjelman avulla voit myös "tunneli" portin paikallisen järjestelmän ja SSH-etäpalvelimen välille.

SSH-tunnelointia on kolme erilaista tyyppiä, ja niitä kaikkia käytetään eri tarkoituksiin. Kukin sisältää SSH-palvelimen käytön liikenteen uudelleenohjaamiseksi verkkoportista toiseen. Liikenne lähetetään salatun SSH-yhteyden kautta, joten liikennettä ei voida valvoa tai muokata.

Voit tehdä tämän sshkomennolla, joka sisältyy Linuxiin, macOSiin ja muihin UNIX-tyyppisiin käyttöjärjestelmiin. Windowsissa, joka ei sisällä sisäänrakennettua ssh-komentoa, suosittelemme ilmaista PuTTY-työkalua yhteyden muodostamiseksi SSH-palvelimiin. Se tukee myös SSH-tunnelointia.

Paikallinen portin edelleenlähetys: Tee etäresursseista saatavissa paikallisessa järjestelmässäsi

"Paikallisen portin edelleenlähetys" antaa sinun käyttää paikallisen verkon resursseja, jotka eivät ole alttiina Internetille. Oletetaan esimerkiksi, että haluat käyttää toimiston tietokantapalvelinta kotoa. Turvallisuussyistä kyseinen tietokantapalvelin on määritetty hyväksymään vain yhteydet paikallistoimistoverkosta. Mutta jos sinulla on pääsy toimiston SSH-palvelimeen ja että SSH-palvelin sallii yhteydet toimistoverkon ulkopuolelta, voit muodostaa yhteyden kyseiseen SSH-palvelimeen kotoa ja käyttää tietokantapalvelinta ikään kuin olisit toimistossa. Näin on usein, koska yhden SSH-palvelimen suojaaminen hyökkäyksiltä on helpompaa kuin erilaisten verkkoresurssien suojaaminen.

Tätä varten muodostat SSH-yhteyden SSH-palvelimeen ja kehotat asiakasta siirtämään liikenteen tietystä portista paikalliselta tietokoneeltasi - esimerkiksi portilta 1234 - tietokannan palvelimen osoitteeseen ja sen toimistoverkon porttiin. Joten, kun yrität käyttää portin 1234 tietokantapalvelinta, nykyistä tietokonettasi "localhost", liikenne "tunneloidaan" SSH-yhteyden kautta ja lähetetään tietokantapalvelimelle. SSH-palvelin istuu keskellä ja välittää liikennettä edestakaisin. Voit käyttää mitä tahansa komentoriviä tai graafista työkalua päästäksesi tietokantapalvelimeen ikään kuin se olisi käynnissä paikallisella tietokoneellasi.

Jos haluat käyttää paikallista edelleenlähetystä, muodosta yhteys SSH-palvelimeen normaalisti, mutta anna myös -Largumentti. Syntaksi on:

ssh -L local_port: etäosoite: remote_port käyttäjä[email protected]

Oletetaan esimerkiksi, että toimistosi tietokantapalvelin sijaitsee toimistoverkossa osoitteessa 192.168.1.111. Sinulla on pääsy toimiston SSH-palvelimeen osoitteessa ssh.youroffice.comja käyttäjätilisi SSH-palvelimella on bob. Siinä tapauksessa komentosi näyttäisi tältä:

ssh -L 8888: 192.168.1.111: 1234 [email protected]

Komennon suorittamisen jälkeen voit käyttää tietokantapalvelinta portissa 8888 osoitteessa localhost. Joten jos tietokantapalvelin tarjosi verkkoyhteyden, voit liittää // localhost: 8888 selaimeesi päästäksesi siihen. Jos sinulla olisi komentorivityökalu, joka tarvitsee tietokannan verkko-osoitteen, osoita se osoitteeseen localhost: 8888. Kaikki tietokoneesi porttiin 8888 lähetetty liikenne tunneloidaan toimistoverkossasi osoitteeseen 192.168.1.111:1234.

Se on hieman hämmentävää, jos haluat muodostaa yhteyden palvelinsovellukseen, joka toimii samassa järjestelmässä kuin itse SSH-palvelin. Oletetaan esimerkiksi, että SSH-palvelin toimii toimistotietokoneesi portissa 22, mutta sinulla on myös tietokantapalvelin, joka toimii portissa 1234 samassa järjestelmässä samassa osoitteessa. Haluat käyttää tietokantapalvelinta kotoa, mutta järjestelmä hyväksyy vain SSH-yhteydet portissa 22, eikä sen palomuuri salli muita ulkoisia yhteyksiä.

Tässä tapauksessa voit suorittaa seuraavanlaisen komennon:

ssh -L 8888: paikallinen isäntä: 1234 [email protected]

Kun yrität käyttää nykyisen tietokoneesi portin 8888 tietokantapalvelinta, liikenne lähetetään SSH-yhteyden kautta. Saapuessaan SSH-palvelinta käyttävään järjestelmään SSH-palvelin lähettää sen porttiin 1234 “localhost” -palvelimella, joka on sama tietokone, joka itse käyttää SSH-palvelinta. Joten yllä olevan komennon "localhost" tarkoittaa etäpalvelimen näkökulmasta "localhost".

Voit tehdä tämän Windowsin PuTTY-sovelluksessa valitsemalla Yhteys> SSH> Tunnelit. Valitse vaihtoehto Paikallinen. Kirjoita ”Lähdeportti” -kohtaan paikallinen portti. Kirjoita Kohde-kohtaan kohdeosoite ja portti muodossa etäosoite: etäosoite.

Jos esimerkiksi haluat asentaa saman SSH-tunnelin kuin yllä, kirjoitat 8888lähdeportiksi ja localhost:1234kohteeksi. Napsauta "Lisää" jälkeenpäin ja napsauta sitten "Avaa" avataksesi SSH-yhteyden. Sinun on myös syötettävä SSH-palvelimen osoite ja portti Session-päänäytölle tietysti ennen yhteyden muodostamista.

Etäportin edelleenlähetys: Tee paikallisten resurssien saatavuudesta etäjärjestelmässä

"Etäportin edelleenlähetys" on päinvastainen kuin paikallinen edelleenlähetys, eikä sitä käytetä niin usein. Sen avulla voit asettaa paikallisen tietokoneen resurssin saataville SSH-palvelimelle. Oletetaan esimerkiksi, että käytät verkkopalvelinta paikallisella tietokoneella, jonka edessä istut. Mutta tietokoneesi on palomuurin takana, joka ei salli saapuvaa liikennettä palvelinohjelmistoon.

Olettaen, että voit käyttää SSH-etäpalvelinta, voit muodostaa yhteyden siihen SSH-palvelimeen ja käyttää etäporttien edelleenlähetystä. SSH-asiakkaasi kehottaa palvelinta välittämään SSH-palvelimen tietyn portin - esimerkiksi portin 1234 - tiettyyn osoitteeseen ja porttiin nykyisessä tietokoneessa tai lähiverkossa. Kun joku käyttää SSH-palvelimen porttia 1234, liikenne "tunneloidaan" automaattisesti SSH-yhteyden kautta. Kuka tahansa, jolla on pääsy SSH-palvelimeen, voi käyttää tietokoneellasi toimivaa verkkopalvelinta. Tämä on käytännössä tapa tunneli palomuurien läpi.

Käytä etälähetystä sshkomennolla -Rargumentin kanssa. Syntaksi on pitkälti sama kuin paikallisen edelleenlähetyksen yhteydessä:

ssh -R remote_port: paikallinen_osoite: paikallinen_port käyttäjä[email protected]

Oletetaan, että haluat asettaa palvelinsovelluksen kuuntelemaan paikallisen tietokoneesi portissa 1234 saatavana SSH-etäpalvelimen portista 8888. SSH-palvelimen osoite on ssh.youroffice.comja käyttäjänimesi SSH-palvelimessa on bob . Suoritat seuraavan komennon:

ssh -R 8888: paikallinen isäntä: 1234 [email protected]

Joku voisi sitten muodostaa yhteyden SSH-palvelimeen portissa 8888, ja tämä yhteys tunneloitaisiin palvelinsovellukseen, joka toimii portissa 1234 paikallisessa tietokoneessa, josta olet muodostanut yhteyden.

Voit tehdä tämän PuTTY: ssä Windowsissa valitsemalla Yhteys> SSH> Tunnelit. Valitse ”Remote” -vaihtoehto. Kirjoita ”Lähdeportti” -kohtaan etäportti. Kirjoita Kohde-kohtaan kohdeosoite ja portti muodossa local_address: local_port.

Jos esimerkiksi haluat määrittää yllä olevan esimerkin, kirjoitat 8888lähdeportiksi ja localhost:1234määränpääksi. Napsauta "Lisää" jälkeenpäin ja napsauta sitten "Avaa" avataksesi SSH-yhteyden. Sinun on myös syötettävä SSH-palvelimen osoite ja portti Session-päänäytölle tietysti ennen yhteyden muodostamista.

Ihmiset voisivat sitten muodostaa yhteyden SSH-palvelimen porttiin 8888 ja heidän liikenteensa tunneloitaisiin paikallisen järjestelmän porttiin 1234.

SSH-etäpalvelin kuuntelee oletusarvoisesti vain saman isännän yhteyksiä. Toisin sanoen vain ihmiset, jotka ovat samassa järjestelmässä kuin SSH-palvelin, voivat muodostaa yhteyden. Tämä on turvallisuussyistä. Sinun on otettava käyttöön "GatewayPorts" -vaihtoehto SSH-etäpalvelimen sshd_config-tiedostossa, jos haluat ohittaa tämän toiminnan.

Dynaaminen portin edelleenlähetys: Käytä SSH-palvelinta välityspalvelimena

RELATED: Mikä on ero VPN: n ja välityspalvelimen välillä?

Siellä on myös "dynaaminen portin edelleenlähetys", joka toimii samalla tavalla kuin välityspalvelin tai VPN. SSH-asiakas luo SOCKS-välityspalvelimen, jonka avulla voit määrittää sovellukset käytettäväksi. Kaikki välityspalvelimen kautta lähetetty liikenne lähetetään SSH-palvelimen kautta. Tämä on samanlainen kuin paikallinen edelleenlähetys - se vie paikallisen liikenteen, joka lähetetään tietylle PC: n portille, ja lähettää sen SSH-yhteyden kautta etäpaikkaan.

RELATED: Miksi julkisen Wi-Fi-verkon käyttö voi olla vaarallista, vaikka käytettäisiin salattuja verkkosivustoja

Oletetaan esimerkiksi, että käytät julkista Wi-Fi-verkkoa. Haluat selata turvallisesti ilman, että sinua nuhdellaan. Jos sinulla on pääsy SSH-palvelimeen kotona, voit muodostaa yhteyden siihen ja käyttää dynaamista portin edelleenlähetystä. SSH-asiakas luo SOCKS-välityspalvelimen tietokoneellesi. Kaikki kyseiseen välityspalvelimeen lähetetty liikenne lähetetään SSH-palvelinyhteyden kautta. Kukaan julkista Wi-Fi-verkkoa valvova ei voi seurata selaamistasi tai sensuroida verkkosivustoja, joihin pääset. Minkä tahansa vierailemiesi verkkosivustojen näkökulmasta ikään kuin istuisit tietokoneesi edessä kotona. Tämä tarkoittaa myös, että voit käyttää tätä temppua päästäksesi vain Yhdysvalloissa sijaitseville verkkosivustoille ollessasi Yhdysvaltojen ulkopuolella - olettaen, että sinulla on tietysti pääsy SSH-palvelimeen Yhdysvalloissa.

Toisena esimerkkinä kannattaa ehkä käyttää kotiverkossasi olevaa mediapalvelinsovellusta. Turvallisuussyistä SSH-palvelin voi olla alttiina vain Internetille. Et salli saapuvia yhteyksiä Internetistä mediapalvelinasovellukseesi. Voisit määrittää dynaamisen portin edelleenlähetyksen, määrittää verkkoselaimen käyttämään SOCKS-välityspalvelinta ja käyttää sitten kotiverkossasi olevia palvelimia verkkoselaimen kautta ikään kuin istuisit kotona SSH-järjestelmän edessä. Esimerkiksi, jos mediapalvelimesi sijaitsee kotiverkon portissa 192.168.1.123, voit liittää osoitteen 192.168.1.123mihin tahansa sovellukseen SOCKS-välityspalvelimen avulla ja käyttää mediapalvelinta ikään kuin olisit kotiverkossasi.

Jos haluat käyttää dynaamista edelleenlähetystä, suorita ssh-komento -Dargumentilla, kuten näin:

ssh -D local_port käyttäjä[email protected]

Oletetaan esimerkiksi, että sinulla on pääsy SSH-palvelimeen osoitteessa ssh.yourhome.comja käyttäjänimesi SSH-palvelimessa on bob. Haluat käyttää dynaamista edelleenlähetystä SOCKS-välityspalvelimen avaamiseksi nykyisen tietokoneen portissa 8888. Suoritat seuraavan komennon:

ssh -D 8888 [email protected] koti.com

Tämän jälkeen voit määrittää web-selaimen tai muun sovelluksen käyttämään paikallista IP-osoitettasi (127.0.01) ja porttia 8888. Kaikki kyseisen sovelluksen liikenne ohjataan tunnelin läpi.

Voit tehdä tämän PuTTY: ssä Windowsissa valitsemalla Yhteys> SSH> Tunnelit. Valitse ”Dynaaminen” -vaihtoehto. Kirjoita ”Lähdeportti” -kohtaan paikallinen portti.

Jos esimerkiksi haluat luoda SOCKS-välityspalvelimen porttiin 8888, kirjoita 8888lähdeportiksi. Napsauta "Lisää" jälkeenpäin ja napsauta sitten "Avaa" avataksesi SSH-yhteyden. Sinun on myös syötettävä SSH-palvelimen osoite ja portti Session-päänäytölle tietysti ennen yhteyden muodostamista.

Tämän jälkeen voit määrittää sovelluksen käyttämään SOCKS-välityspalvelinta paikallisella tietokoneellasi (eli IP-osoite 127.0.0.1, joka osoittaa paikalliseen tietokoneeseesi) ja määrittämään oikean portin.

RELATED: Välityspalvelimen määrittäminen Firefoxissa

Voit esimerkiksi määrittää Firefoxin käyttämään SOCKS-välityspalvelinta. Tämä on erityisen hyödyllistä, koska Firefoxilla voi olla omat välityspalvelinasetuksensa eikä sen tarvitse käyttää koko järjestelmän välityspalvelinasetuksia. Firefox lähettää liikenteensa SSH-tunnelin kautta, kun taas muut sovellukset käyttävät Internet-yhteyttä normaalisti.

Kun teet tämän Firefoxissa, valitse ”Manuaalinen välityspalvelimen määritys”, kirjoita ”127.0.0.1” SOCKS-isäntäruutuun ja kirjoita dynaaminen portti ”Portti” -ruutuun. Jätä HTTP-, SSL- ja FTP-välityspalvelin -ruudut tyhjiksi.

Tunneli pysyy aktiivisena ja auki niin kauan kuin SSH-istuntoyhteys on auki. Kun lopetat SSH-istunnon ja katkaiset yhteyden palvelimesta, myös tunneli suljetaan. Yhdistä vain uudelleen asianmukaiseen komentoon (tai sopiviin vaihtoehtoihin PuTTY: ssä) tunnelin avaamiseksi uudelleen.