SSH-tunnelointia käyttämällä rajoitettuja palvelimia ja selaa turvallisesti
SSH-asiakas muodostaa yhteyden Secure Shell -palvelimeen, jonka avulla voit suorittaa terminaalikomennot ikään kuin olisit istumassa toisen tietokoneen edessä. SSH-asiakkaan avulla voit kuitenkin tunnistaa portin paikallisen järjestelmän ja SSH-palvelimen välille.
SSH-tunnelointia on kolmea eri tyyppiä, ja niitä käytetään eri tarkoituksiin. Kuhunkin liittyy SSH-palvelimen käyttäminen liikenteen ohjaamiseksi yhdestä verkkoportista toiseen. Liikenne lähetetään salatun SSH-yhteyden kautta, joten sitä ei voi seurata tai muuttaa kuljetuksen aikana.
Voit tehdä tämän ssh
komento sisältää Linux, MacOS ja muut UNIX-tyyppiset käyttöjärjestelmät. Windowsissa, jossa ei ole sisäänrakennettua ssh-komentoa, suosittelemme ilmaista työkalua PuTTY yhdistämään SSH-palvelimiin. Se tukee myös SSH-tunnelointia.
Paikallisen portin edelleenlähetys: Tee paikalliset resurssit paikalliseen järjestelmään
”Paikallinen portinsiirto” mahdollistaa pääsyn paikallisiin verkkoresursseihin, jotka eivät ole alttiita Internetille. Oletetaan esimerkiksi, että haluat käyttää tietokantapalvelinta toimistossasi kotoa. Turvallisuussyistä tietokantapalvelin on määritetty vastaamaan yhteyksiä paikallisesta toimistoverkosta. Mutta jos sinulla on pääsy SSH-palvelimeen toimistossa ja että SSH-palvelin sallii yhteydet toimistoverkon ulkopuolelle, voit muodostaa yhteyden kyseiseen SSH-palvelimeen kotoa ja käyttää tietokantapalvelinta ikään kuin olisit toimistossa. Näin on usein, koska yksittäinen SSH-palvelin on helpompi suojata hyökkäyksiltä kuin suojata erilaisia verkkoresursseja.
Voit tehdä tämän SSH-yhteyden SSH-palvelimeen ja kertoa asiakkaalle siirtää liikennettä tietystä portista paikalliselta PC: ltäsi, esimerkiksi portista 1234-tietokannan palvelimen osoitteeseen ja sen porttiin toimistoverkossa. Kun yrität käyttää tietokantapalvelinta nykyisen PC: n portissa 1234, "localhost", tämä liikenne "tunneloidaan" automaattisesti 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ä paikallisessa tietokoneessa.
Jos haluat käyttää paikallista edelleenlähetystä, muodosta yhteys SSH-palvelimeen normaalisti, mutta toimittaa myös -L
Perustelu. Syntaksi on:
ssh -L local_port: remote_address: 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.com
, ja käyttäjätunnuksesi SSH-palvelimessa Bob
. Tällöin komentosi näyttää näin:
ssh-L 8888: 192.168.1.111: 1234 [email protected]
Kun olet suorittanut kyseisen komennon, voit käyttää tietokantapalvelinta portissa 8888 osoitteessa localhost. Jos tietokantapalvelin on tarjonnut web-yhteyttä, voit käyttää http: // localhost: 8888: a verkkoselaimeen, jotta pääset siihen. Jos sinulla oli komentorivityökalu, joka tarvitsee tietokannan verkko-osoitteen, osoitat sen osoitteeseen localhost: 8888. Kaikki tietokoneen porttiin 8888 lähetetty liikenne tunneloidaan toimistoverkossa 192.168.1.111:1234.
Se on hieman hämmentävämpää, jos haluat muodostaa yhteyden palvelinsovellukseen, joka toimii samalla järjestelmällä kuin itse SSH-palvelin. Oletetaan esimerkiksi, että sinulla on toimistokoneesi portissa 22 toimiva SSH-palvelin, mutta sinulla on myös tietokantapalvelin, joka toimii samassa järjestelmässä samassa järjestelmässä portissa 1234. Haluat käyttää tietokantapalvelinta kotoa, mutta järjestelmä hyväksyy vain SSH-yhteydet portissa 22 ja sen palomuuri ei salli muita ulkoisia yhteyksiä.
Tässä tapauksessa voit suorittaa seuraavan komennon:
ssh-L 8888: localhost: 1234 [email protected]
Kun yrität käyttää tietokantapalvelinta nykyisen tietokoneen portissa 8888, liikenne lähetetään SSH-yhteyden kautta. Kun se saapuu SSH-palvelinta käyttävään järjestelmään, SSH-palvelin lähettää sen porttiin 1234 “localhost”, joka on sama PC, joka käyttää itse SSH-palvelinta. Niinpä ylläolevan komennon "localhost" tarkoittaa "localhost" etäpalvelimen näkökulmasta.
Voit tehdä tämän PuTTY-sovelluksessa Windowsissa valitsemalla Yhteys> SSH> Tunnelit. Valitse ”Local” -vaihtoehto. Syötä lähdeportti paikallisporttiin. Syötä ”Kohde” -kohdassa kohde-osoite ja portti muodossa_nimi_kaukosana: remote_port.
Jos haluat esimerkiksi määrittää saman SSH-tunnelin kuin edellä, syötät sen 8888
lähteen porttina ja localhost: 1234
määränpääksi. Napsauta sitten ”Lisää” ja napsauta sitten ”Avaa” avataksesi SSH-yhteyden. Sinun on myös syötettävä SSH-palvelimen osoite ja portti itse pääsivulla "Session", ennen kuin liität sen tietenkin.
Portin edelleenlähetys: Tee paikalliset resurssit etäkäyttöjärjestelmään
"Etäportin edelleenlähetys" on vastakohta paikalliselle välitykselle, eikä sitä käytetä niin usein. Sen avulla voit luoda resurssin paikalliseen tietokoneeseen SSH-palvelimella. Oletetaan esimerkiksi, että käytät Web-palvelinta paikallisella tietokoneella, jonka edessä olet. Tietokoneesi on palomuurin takana, joka ei salli saapuvaa liikennettä palvelinohjelmistoon.
Olettaen, että voit käyttää kauko-SSH-palvelinta, voit muodostaa yhteyden kyseiseen SSH-palvelimeen ja käyttää kauko-ohjausta. SSH-asiakas kertoo palvelimelle, että se lähettää tietyn porttisanan, portin 1234-SSH-palvelimelle nykyisen PC: n tai paikallisen verkon tiettyyn osoitteeseen ja porttiin. Kun joku käyttää SSH-palvelimen porttia 1234, tämä liikenne "tunneloidaan" automaattisesti SSH-yhteyden kautta. Jokainen, jolla on pääsy SSH-palvelimeen, voi käyttää tietokoneessa olevaa web-palvelinta. Tämä on tehokkaasti tapa tunnistaa palomuurit.
Jos haluat käyttää etälähetystä, käytä ssh
komento -R
Perustelu. Syntaksi on suurelta osin sama kuin paikallisen välityksen kanssa:
ssh -R remote_port: local_address: local_port käyttäjä[email protected]
Oletetaan, että haluat tehdä palvelinsovelluksen paikallisen tietokoneen portissa 1234, joka on käytettävissä SSH-palvelimen portissa 8888. SSH-palvelimen osoite on ssh.youroffice.com
ja käyttäjänimi SSH-palvelimessa on Bob. Käyttäisit seuraavan komennon:
ssh-R 8888: localhost: 1234 [email protected]
Joku voisi sitten muodostaa yhteyden SSH-palvelimeen portissa 8888, ja tämä yhteys tunneloidaan palvelimelle, joka toimii portissa 1234 paikallisella PC: llä, jonka olet muodostanut yhteyden.
Voit tehdä tämän PuTTY: ssä Windowsissa valitsemalla Yhteys> SSH> Tunnelit. Valitse ”Remote” -vaihtoehto. Syötä ”Lähdeportti” -porttiin etäportti. Syötä ”Kohde” -kohdassa kohdeosoite ja portti muodossa local_address: local_port.
Jos haluat esimerkiksi asettaa yllä olevan esimerkin, kirjoitat sen 8888
lähteen porttina ja localhost: 1234
määränpääksi. Napsauta sitten ”Lisää” ja napsauta sitten ”Avaa” avataksesi SSH-yhteyden. Sinun on myös syötettävä SSH-palvelimen osoite ja portti itse pääsivulla "Session", ennen kuin liität sen tietenkin.
Ihmiset voisivat sitten muodostaa yhteyden SSH-palvelimen porttiin 8888 ja niiden liikenne tunneloitaisiin paikallisen järjestelmän porttiin 1234.
Oletusarvoisesti SSH-etäpalvelin kuuntelee vain saman isännän yhteyksiä. Toisin sanoen vain henkilöt, jotka ovat samassa järjestelmässä kuin SSH-palvelin, voivat muodostaa yhteyden. Tämä on turvallisuussyistä. Jos haluat ohittaa tämän käyttäytymisen, sinun on otettava käyttöön GatewayPorts-vaihtoehto sshd_configissa kauko-SSH-palvelimessa..
Dynaaminen portinsiirto: Käytä SSH-palvelinta välityspalvelimena
Siellä on myös "dynaaminen portinsiirto", joka toimii samoin 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 portille tietokoneessasi, ja lähettää sen SSH-yhteyden kautta etäyhteyteen.
Oletetaan esimerkiksi, että käytät julkista Wi-Fi-verkkoa. Haluatko selata turvallisesti ilman, että huijaat. Jos sinulla on pääsy SSH-palvelimeen kotona, voit muodostaa yhteyden siihen ja käyttää dynaamista portinsiirtoa. SSH-asiakas luo SOCKS-välityspalvelimen tietokoneellesi. Kaikki kyseiseen välityspalvelimeen lähetetty liikenne lähetetään SSH-palvelimen yhteyden kautta. Kukaan, joka valvoo julkista Wi-Fi-verkkoa, ei voi seurata selausta tai sensuroida sivustoja, joihin pääset käsiksi. Vierailtasi sivustojen näkökulmasta se olisi kuin olisit istunut tietokoneen edessä kotona. Tämä tarkoittaa myös sitä, että voit käyttää tätä temppua pääsemään vain Yhdysvaltojen sivustoille, kun taas USA: n ulkopuolella oletetaan, että sinulla on pääsy SSH-palvelimeen Yhdysvalloissa..
Toisena esimerkkinä saatat haluta käyttää kotiverkossasi olevaa mediapalvelinsovellusta. Turvallisuussyistä voi olla vain SSH-palvelin, joka on alttiina Internetille. Et salli saapuvia yhteyksiä Internetistä mediapalvelinsovellukseen. Voit määrittää dynaamisen portinsiirron, määrittää selaimen käyttämään SOCKS-välityspalvelinta ja sitten käyttää kotiverkossa olevia palvelimia web-selaimen kautta ikään kuin olisit istunut SSH-järjestelmänne edessä kotona. Jos esimerkiksi mediapalvelimesi sijaitsee kotiverkon portissa 192.168.1.123, voit liittää osoitteen 192.168.1.123
mistä tahansa sovelluksesta, joka käyttää SOCKS-välityspalvelinta ja pääset mediaserveriin ikään kuin olisit kotiverkossa.
Jos haluat käyttää dynaamista siirtoa, suorita ssh-komento -D
väite, kuten näin:
ssh -D local_port käyttäjä[email protected]
Oletetaan esimerkiksi, että sinulla on pääsy SSH-palvelimeen osoitteessa ssh.yourhome.com
ja käyttäjänimi SSH-palvelimessa on Bob
. Haluat käyttää dynaamista edelleenlähetystä avataksesi SOCKS-välityspalvelimen nykyisen tietokoneen portissa 8888. Käyttäisit seuraavan komennon:
ssh -D 8888 [email protected]
Tämän jälkeen voit määrittää verkkoselaimen 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. Syötä lähdeportti paikallisporttiin.
Jos haluat esimerkiksi luoda SOCKS-välityspalvelimen portissa 8888, annat sen 8888
lähteen porttina. Napsauta sitten ”Lisää” ja napsauta sitten ”Avaa” avataksesi SSH-yhteyden. Sinun on myös syötettävä SSH-palvelimen osoite ja portti itse pääsivulla "Session", ennen kuin liität sen tietenkin.
Tämän jälkeen voit määrittää sovelluksen pääsyn SOCKS-välityspalvelimeen paikallisella tietokoneella (eli IP-osoitteella 127.0.0.1, joka osoittaa paikalliselle tietokoneellesi) ja määritä oikea portti.
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ä niiden tarvitse käyttää koko järjestelmän välityspalvelinasetuksia. Firefox lähettää liikenteen 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älaatikkoon ja anna dynaaminen portti Port-ruutuun. Jätä HTTP-välityspalvelin, SSL-välityspalvelin ja FTP-välityspalvelimet tyhjiksi.
Tunneli pysyy aktiivisena ja avautuu niin kauan kuin SSH-istunnon yhteys on auki. Kun lopetat SSH-istunnon ja irrotat palvelimesta, tunneli suljetaan. Kytke tunneli uudelleen avaamalla vastaava komento (tai PuTTY: n sopivat vaihtoehdot).