Az SSH-alagút használata a korlátozott szerverek eléréséhez és a biztonságos böngészéshez

Az SSH kliens csatlakozik egy Secure Shell szerverhez, amely lehetővé teszi a terminálparancsok futtatását, mintha egy másik számítógép előtt ülne. De egy SSH kliens lehetővé teszi egy port alagutazását is a helyi rendszer és egy távoli SSH szerver között.

Három különböző típusú SSH-alagút létezik, és mindegyiket különböző célokra használják. Mindegyik magában foglalja az SSH szerver használatát a forgalom átirányításához az egyik hálózati portról a másikra. A forgalmat a titkosított SSH-kapcsolaton keresztül küldik, így szállítás közben nem lehet figyelemmel kísérni vagy módosítani.

Ezt megteheti ssha Linux, macOS és más UNIX-szerű operációs rendszerek parancsával. Windowson, amely nem tartalmaz beépített ssh parancsot, javasoljuk az ingyenes PuTTY eszközt az SSH szerverekhez való csatlakozáshoz. Támogatja az SSH alagutazást is.

Helyi portok továbbítása: Tegye elérhetővé a távoli erőforrásokat a helyi rendszerén

A „Helyi porttovábbítás” segítségével hozzáférhet olyan helyi hálózati erőforrásokhoz, amelyek nincsenek kitéve az internetnek. Tegyük fel például, hogy otthonában szeretne hozzáférni egy irodai adatbázis-kiszolgálóhoz. Biztonsági okokból az adatbázis-kiszolgáló csak úgy van konfigurálva, hogy fogadja a kapcsolatokat a helyi irodai hálózatról. De ha van hozzáférése egy SSH-kiszolgálóhoz az irodában, és ez az SSH-kiszolgáló lehetővé teszi a kapcsolatokat az irodai hálózaton kívülről, akkor csatlakozhat az adott SSH-kiszolgálóhoz otthonról, és elérheti az adatbázis-kiszolgálót, mintha az irodában tartózkodna. Ez gyakran előfordul, mivel könnyebb egyetlen SSH-kiszolgálót védeni a támadások ellen, mint különféle hálózati erőforrásokat.

Ehhez létre kell hoznia egy SSH kapcsolatot az SSH szerverrel, és meg kell szólítani az ügyfelet, hogy továbbítsa a forgalmat egy adott portról a helyi számítógépéről - például az 1234-es portról - az adatbázis szerverének címére és az irodai hálózat portjára. Tehát, amikor megpróbálja elérni az adatbázis-kiszolgálót az 1234-es porton, a jelenlegi számítógépét, a „localhost” -ot, akkor az a forgalom automatikusan „alagutazódik” az SSH-kapcsolaton keresztül, és az adatbázis-szerverre kerül. Az SSH szerver középen ülve továbbítja a forgalmat. Bármely parancssorral vagy grafikus eszközzel elérheti az adatbázis-kiszolgálót, mintha az a helyi számítógépen futna.

A helyi továbbítás használatához csatlakozzon normálisan az SSH szerverhez, de adja meg az -Largumentumot is. A szintaxis a következő:

ssh -L helyi_port: távoli_cím: távoli_port felhasználóné[email protected]

Tegyük fel például, hogy az irodájában lévő adatbázis-kiszolgáló a 192.168.1.111 címen található az irodai hálózaton. A (z) címen férhet hozzá az iroda SSH-szerveréhez ssh.youroffice.com, a felhasználói fiók pedig az SSH-kiszolgálón található bob. Ebben az esetben a parancsod így néz ki:

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

A parancs futtatása után hozzáférhet az adatbázis-kiszolgálóhoz a localhost 8888-as portján. Tehát, ha az adatbázis-kiszolgáló felajánlotta a webes hozzáférést, akkor a // localhost: 8888 fájlt a webböngészőjébe csatlakoztathatja. Ha rendelkezett volna parancssori eszközzel, amelynek szüksége van egy adatbázis hálózati címére, akkor a localhost-ra mutat: 8888. A 8888-as portra küldött összes forgalmat az irodai hálózat 192.168.1.111:1234-re kell alagútba állítani.

Kicsit zavaróbb, ha olyan szerveralkalmazáshoz szeretne csatlakozni, amely ugyanazon a rendszeren fut, mint maga az SSH-kiszolgáló. Tegyük fel például, hogy van egy irodai számítógépén a 22-es porton futó SSH-kiszolgáló, de van egy adatbázis-kiszolgálója is, amely ugyanazon a címen ugyanazon a rendszeren fut az 1234-es porton. Otthonról szeretne hozzáférni az adatbázis-kiszolgálóhoz, de a rendszer csak az SSH-kapcsolatokat fogadja el a 22. porton, és a tűzfala nem engedélyez semmilyen más külső kapcsolatot.

Ebben az esetben futtathat egy következő parancsot:

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

Amikor megpróbálja elérni az adatbázis-kiszolgálót a 8888-as porton a jelenlegi számítógépén, a forgalmat az SSH-kapcsolaton keresztül küldi el. Amikor megérkezik az SSH-kiszolgálót futtató rendszerre, az SSH-kiszolgáló elküldi a „localhost” 1234-es portjába, amely ugyanaz a számítógép, amely maga az SSH-kiszolgálót futtatja. Tehát a fenti parancs „localhost” jelentése a „localhost” a távoli szerver szempontjából.

Ehhez a Windows PuTTY alkalmazásában válassza a Csatlakozás> SSH> Alagutak lehetőséget. Válassza a „Helyi” opciót. A „Forrás port” mezőbe írja be a helyi portot. A „Cél” mezőbe írja be a célcímet és a portot a remote_address: remote_port formában.

Például, ha ugyanazt az SSH-alagutat szerette volna beállítani, mint fent, akkor 8888forrásportként és localhost:1234célként adja meg. Kattintson az „Add” gombra, majd az „Open” gombra az SSH kapcsolat megnyitásához. A csatlakozás előtt természetesen meg kell adnia az SSH szerver címét és portját is a „Session” főképernyőn.

Távoli portok továbbítása: Tegye elérhetővé a helyi erőforrásokat egy távoli rendszeren

A „távoli porttovábbítás” ellentétes a helyi továbbítással, és nem használják olyan gyakran. Ez lehetővé teszi, hogy a helyi számítógépen lévő erőforrást elérhetővé tegye az SSH szerveren. Tegyük fel például, hogy webkiszolgálót futtat a helyi számítógépen, amely előtt ül. De a számítógép egy olyan tűzfal mögött van, amely nem engedélyezi a szerver szoftver bejövő forgalmát.

Feltéve, hogy hozzáférhet egy távoli SSH-kiszolgálóhoz, csatlakozhat ahhoz az SSH-kiszolgálóhoz, és használhatja a távoli porttovábbítást. Az SSH-kliens megmondja a szervernek, hogy továbbítson egy adott portot - például 1234-es portot - az SSH-kiszolgálón egy adott címre és portra a jelenlegi számítógépén vagy helyi hálózatán. Amikor valaki hozzáfér az 1234-es porthoz az SSH-kiszolgálón, a forgalom automatikusan „alagutazódik” az SSH-kapcsolaton keresztül. Bárki, aki rendelkezik hozzáféréssel az SSH szerverhez, hozzáférhet a számítógépén futó webszerverhez. Ez gyakorlatilag a tűzfalakon keresztüli alagút módja.

Távoli továbbítás használatához használja sshaz -Rargumentumot tartalmazó parancsot . A szintaxis nagyrészt megegyezik a helyi továbbítással:

ssh -R távoli_port: helyi_cím: helyi_port felhasználóné[email protected]

Tegyük fel, hogy a helyi számítógépen az 1234-es porton hallgató szerveralkalmazást elérhetővé kívánja tenni a távoli SSH-kiszolgáló 8888-as portján. Az SSH-kiszolgáló címe, ssh.youroffice.comés az SSH-kiszolgálón megadott felhasználónév bob . A következő parancsot futtatná:

ssh -R 8888: localhost: 1234 [email protected]

Ezután valaki csatlakozhat a 8888-as port SSH-kiszolgálójához, és ez a kapcsolat át lesz vezetve a 1234-es porton futó kiszolgálóalkalmazással azon a helyi számítógépen, amelyről a kapcsolatot létrehozta.

Ehhez a Windows PuTTY programjában válassza a Csatlakozás> SSH> Alagutak lehetőséget. Válassza a „Távoli” opciót. A „Forrás port” mezőbe írja be a távoli portot. A „Cél” mezőbe írja be a célcímet és a portot a helyi_cím: helyi_port formában.

Például, ha be szeretné állítani a fenti példát, akkor adja 8888meg forrás forrásként és localhost:1234célként. Kattintson az „Add” gombra, majd az „Open” gombra az SSH kapcsolat megnyitásához. A csatlakozás előtt természetesen meg kell adnia az SSH szerver címét és portját is a „Session” főképernyőn.

Ezután az emberek csatlakozhattak az SSH-kiszolgáló 8888-as portjához, és a forgalmuk a helyi rendszer 1234-es portjához vezetett.

Alapértelmezés szerint a távoli SSH-kiszolgáló csak ugyanattól a géptől hallgatja a kapcsolatokat. Más szavakkal, csak azok az emberek tudnak csatlakozni, akik ugyanazon a rendszeren vannak, mint az SSH szerver. Ez biztonsági okokból történik. Engedélyeznie kell a „GatewayPorts” beállítást az sshd_config fájlban a távoli SSH-kiszolgálón, ha felül akarja írni ezt a viselkedést.

Dinamikus porttovábbítás: Az SSH-kiszolgálót használja proxyként

KAPCSOLÓDÓ: Mi a különbség a VPN és a proxy között?

Van még egy „dinamikus porttovábbítás”, amely hasonlóan működik, mint a proxy vagy a VPN. Az SSH kliens létrehoz egy SOCKS proxyt, amelybe konfigurálhatja az alkalmazásokat. A proxyn keresztül küldött összes forgalmat az SSH-kiszolgálón keresztül küldik el. Ez hasonló a helyi továbbításhoz - a helyi forgalmat a számítógép egy adott portjára küldi, és az SSH-kapcsolaton keresztül távoli helyre küldi.

KAPCSOLÓDÓ: Miért lehet veszélyes a nyilvános Wi-Fi hálózat használata, még akkor is, ha titkosított webhelyeket keresünk fel

Tegyük fel például, hogy nyilvános Wi-Fi hálózatot használ. Biztonságosan szeretne böngészni anélkül, hogy rávennék. Ha otthon van hozzáférése egy SSH-kiszolgálóhoz, csatlakozhat hozzá, és használhatja a dinamikus porttovábbítást. Az SSH kliens SOCKS proxyt hoz létre a számítógépén. Az adott proxyra küldött összes forgalmat az SSH szerver kapcsolaton keresztül küldjük. A nyilvános Wi-Fi hálózatot felügyelő senki sem fogja tudni figyelni a böngészést, vagy cenzúrázni azokat a webhelyeket, amelyekhez hozzáférhet. Bármely meglátogatott weboldal szempontjából olyan lesz, mintha otthon ülne a számítógép előtt. Ez azt is jelenti, hogy ezt a trükköt arra használhatja, hogy csak az Egyesült Államokban található webhelyekhez férjen hozzá, miközben az Egyesült Államokon kívül tartózkodik - természetesen feltételezve, hogy rendelkezik hozzáféréssel egy SSH-kiszolgálóhoz az Egyesült Államokban.

Másik példaként érdemes elérni az otthoni hálózaton lévő médiaszerver alkalmazást. Biztonsági okokból előfordulhat, hogy csak egy SSH-kiszolgáló van az interneten. Nem engedélyezi az internetről a médiaszerver alkalmazásba bejövő kapcsolatokat. Beállíthat dinamikus porttovábbítást, konfigurálhat egy webböngészőt a SOCKS proxy használatára, majd hozzáférhet az otthoni hálózaton futó szerverekhez a webböngészőn keresztül, mintha otthon ülne az SSH rendszere előtt. Például, ha a médiaszerver az otthoni hálózat 192.168.1.123 portján található, 192.168.1.123a SOCKS proxy segítségével bármelyik alkalmazásba bedughatja a címet , és úgy érheti el a médiaszervert, mintha az otthoni hálózaton lenne.

A dinamikus továbbítás használatához futtassa az ssh parancsot az -Dargumentummal, így:

ssh -D local_port felhasználóné[email protected]

Tegyük fel például, hogy a (z) címen van hozzáférése egy SSH-kiszolgálóhoz, ssh.yourhome.comés a felhasználóneve az SSH-kiszolgálón van bob. Dinamikus továbbítással kíván megnyitni egy SOCKS-proxyt a jelenlegi számítógép 8888-as portján. A következő parancsot futtatná:

ssh -D 8888 [email protected]

Ezután konfigurálhat egy webböngészőt vagy egy másik alkalmazást a helyi IP-cím (127.0.01) és a 8888-as port használatára. Az alkalmazásból származó összes forgalom átirányításra kerül az alagúton keresztül.

Ehhez a Windows PuTTY programjában válassza a Csatlakozás> SSH> Alagutak lehetőséget. Válassza a „Dinamikus” opciót. A „Forrás port” mezőbe írja be a helyi portot.

Például, ha SOCKS-proxyt akart létrehozni a 8888-as porton, akkor azt írja be 8888forrásportként. Kattintson az „Add” gombra, majd az „Open” gombra az SSH kapcsolat megnyitásához. A csatlakozás előtt természetesen meg kell adnia az SSH szerver címét és portját is a „Session” főképernyőn.

Ezután konfigurálhat egy alkalmazást, hogy elérje a SOCKS proxyt a helyi számítógépen (vagyis a helyi számítógépre mutató 127.0.0.1 IP-címet), és megadhatja a helyes portot.

KAPCSOLÓDÓ: Hogyan állítsunk be egy proxykiszolgálót a Firefoxban

Például beállíthatja a Firefoxot a SOCKS proxy használatára. Ez különösen azért hasznos, mert a Firefox saját proxy-beállításokkal rendelkezhet, és nem kell rendszerszintű proxy-beállításokat használnia. A Firefox az SSH alagúton keresztül küldi forgalmát, míg más alkalmazások az internetkapcsolatot rendesen használják.

Amikor ezt Firefoxban végzi, válassza a „Kézi proxy konfigurálása” lehetőséget, írja be a „127.0.0.1” szót a SOCKS gazdagép mezőbe, majd a dinamikus portot a „Port” mezőbe. Hagyja üresen a HTTP Proxy, SSL Proxy és FTP Proxy dobozokat.

Az alagút addig marad aktív és nyitva, amíg nyitva van az SSH munkamenet-kapcsolat. Amikor befejezi az SSH munkamenetet, és leválik a szerverről, az alagút is bezáródik. Csak csatlakozzon újra a megfelelő paranccsal (vagy a PuTTY megfelelő opcióival) az alagút újbóli megnyitásához.