Homepage » hogyan kell » Az SSH-alagutak használata a korlátozott kiszolgálók eléréséhez és biztonságos tallózáshoz

    Az SSH-alagutak használata a korlátozott kiszolgálók eléréséhez és biztonságos tallózáshoz

    Az SSH kliens csatlakozik egy Secure Shell kiszolgálóhoz, amely lehetővé teszi a terminálparancsok futtatását, mintha egy másik számítógép előtt ült volna. Az SSH-kliens azonban lehetővé teszi, hogy a helyi rendszer és a távoli SSH-kiszolgáló között egy portot „alagúzzon”.

    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 SSH-kiszolgálót használ a forgalom átirányítására az egyik hálózati portról a másikra. A forgalmat a titkosított SSH-kapcsolaton keresztül küldjük, így nem lehet a tranzitban figyelni vagy módosítani.

    Ezt megteheti a ssh parancs, amely Linux, MacOS és más UNIX-szerű operációs rendszereken található. A beépített ssh-parancsot nem tartalmazó Windows-on az ingyenes eszköz a PuTTY-t ajánljuk az SSH-kiszolgálókhoz való csatlakozáshoz. Támogatja az SSH alagutakat is.

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

    A „Local port forwarding” lehetővé teszi a helyi hálózati erőforrások elérését, amelyek nincsenek kitéve az internetnek. Tegyük fel például, hogy otthonról szeretné elérni az irodában található adatbázis-kiszolgálót. Biztonsági okokból az adatbázis-kiszolgáló csak úgy van konfigurálva, hogy elfogadja a helyi irodai hálózatról érkező kapcsolatokat. De ha az irodában van egy SSH-kiszolgáló, és hogy az SSH-kiszolgáló lehetővé teszi az irodahálózaton kívüli kapcsolatokat, akkor otthonról csatlakozhat az SSH-kiszolgálóhoz, és hozzáférhet az adatbázis-kiszolgálóhoz, mintha az irodában lennél. Ez gyakran előfordul, mivel egyszerűbb egy SSH-kiszolgálót védeni a támadásokkal szemben, mint a különböző hálózati erőforrások biztosítását.

    Ehhez hozzon létre egy SSH kapcsolatot az SSH szerverrel, és mondja el az ügyfélnek, hogy továbbítsa a forgalmat egy adott portról a helyi PC-ről, például az 1234-es portról az adatbázis kiszolgálójának és az irodai hálózat portjának címére. Tehát, amikor megpróbál hozzáférni az adatbázis-kiszolgálóhoz az aktuális PC-n, a „localhost” 1234-es portján, a forgalom automatikusan „alagutak” az SSH-kapcsolaton keresztül, és elküldik az adatbázis-kiszolgálónak. Az SSH-kiszolgáló közepén ül, és továbbítja a forgalmat. Bármelyik parancssor vagy grafikus eszköz segítségével elérheti az adatbázis-kiszolgálót, mintha a helyi számítógépen futna.

    A helyi továbbítás használatához az SSH-kiszolgálóhoz csatlakozzon, de a -L érv. A szintaxis:

    ssh -L local_port: remote_address: remote_port felhasználóné[email protected]

    Tegyük fel például, hogy az irodai adatbázis-kiszolgáló az irodai hálózaton található 192.168.1.111 helyen található. Hozzáférhet az irodai SSH-kiszolgálóhoz: ssh.youroffice.com , és az SSH-kiszolgáló felhasználói fiókja bubifrizura . Ebben az esetben a parancs í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 8888-as porton a localhost-on. Tehát, ha az adatbázis-kiszolgáló web-hozzáférést kínál, akkor a http: // localhost: 8888-at csatlakoztathatja a webböngészőjébe, hogy hozzáférhessen. Ha van egy parancssori eszköz, amely az adatbázis hálózati címét igényli, akkor azt a localhost: 8888 címre kell mutatnia. A számítógép 8888-as portjára küldött összes forgalmat az irodai hálózaton 192.168.1.111:1234-es alagútra fogjuk átállítani.

    Ez egy kicsit zavarosabb, ha egy SSH szerverrel azonos rendszeren futó kiszolgálóalkalmazáshoz kíván csatlakozni. Tegyük fel például, hogy van egy irodai számítógépén a 22. porton futó SSH-kiszolgáló, de ugyanazon a rendszeren ugyanazon a címen van egy 1234-es porton futó adatbázis-kiszolgáló. Az adatbázis-kiszolgálót otthonról szeretné elérni, de a rendszer csak az SSH-kapcsolatokat fogadja el a 22. porton, és a tűzfal nem engedélyezi más külső kapcsolatokat.

    Ebben az esetben a következő parancsot futtathatja:

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

    Amikor megpróbál hozzáférni az adatbázis-kiszolgálóhoz a jelenlegi 8888-as porton, a forgalmat az SSH-kapcsolaton keresztül küldjük. Amikor az SSH-kiszolgálót futtató rendszerre érkezik, az SSH-kiszolgáló elküldi az 1234-es portra a „localhost” -on, amely ugyanaz a számítógép, amely maga az SSH-kiszolgálót futtatja. Tehát a fenti helyi parancs a „localhost” -ot jelenti a távoli szerver szempontjából.

    Ehhez a Windows PuTTY alkalmazásában válassza a Kapcsolat> SSH> Alagutak lehetőséget. Válassza ki a „Helyi” opciót. „Forrásport” esetén lépjen be a helyi portra. A „Célállomás” 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-alagútot szeretné beállítani, mint a fentiek, beírja 8888 a forrásport és localhost: 1234 mint célállomás. Kattintson az „Add” gombra, majd kattintson az „Open” gombra az SSH kapcsolat megnyitásához. A csatlakozás előtt természetesen be kell írnia az SSH szerver címét és portját is a fő „Session” képernyőn.

    Távoli port-továbbítás: Helyi erőforrások elérhetővé tétele távoli rendszeren

    A „Távoli port továbbítás” a helyi továbbítás ellentéte, és nem használják olyan gyakran. Lehetővé teszi az erőforrás létrehozását a helyi számítógépen az SSH szerveren. Tegyük fel például, hogy a helyi számítógépen webkiszolgálót futtat. A számítógép azonban olyan tűzfal mögött van, amely nem teszi lehetővé a kiszolgálószoftver bejövő forgalmát.

    Feltételezve, hogy elérheti a távoli SSH-kiszolgálót, csatlakozhat az SSH-kiszolgálóhoz, és távoli port-továbbítást használhat. Az SSH-kliens megmondja a kiszolgálónak, hogy továbbítsa egy adott port-mondatot, az 1234-es portot az SSH-kiszolgálón egy adott címre és portra az aktuális PC-n vagy helyi hálózaton. Amikor valaki hozzáfér az 1234-es porthoz az SSH-kiszolgálón, a forgalom automatikusan „alagútba kerül” az SSH-kapcsolaton. Bárki, aki hozzáfér az SSH-kiszolgálóhoz, hozzáférhet a számítógépén futó webszerverhez. Ez hatékony módja annak, hogy a tűzfalakon keresztül alagutazjon.

    A távoli továbbítás használatához használja a ssh parancsot a -R érv. A szintaxis nagyrészt megegyezik a helyi továbbítással:

    ssh -R remote_port: local_address: local_port felhasználóné[email protected]

    Tegyük fel, hogy egy szerveralkalmazást szeretnénk hallgatni a helyi számítógép 1234-es portján a távoli SSH-kiszolgáló 8888-as portján. Az SSH szerver címe ssh.youroffice.com és a felhasználóneved az SSH szerveren bubifrizura. A következő parancsot futtatná:

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

    Akkor valaki csatlakozhatna a 8888-as porton az SSH-kiszolgálóhoz, és ez a kapcsolat az 1234-es porton futó kiszolgálóalkalmazáshoz lett volna csatlakoztatva a helyi számítógépen, amelyről létrejött a kapcsolat.

    Ehhez a Windows rendszeren a PuTTY programban válassza a Csatlakozás> SSH> Alagutak lehetőséget. Válassza ki a „Remote” opciót. „Forrásport” esetén adja meg a távoli portot. A „Célállomás” mezőben adja meg a célcímet és a portot a local_address: local_port formában.

    Például, ha a fenti példát szeretné beállítani, beírja 8888 a forrásport és localhost: 1234 mint célállomás. Kattintson az „Add” gombra, majd kattintson az „Open” gombra az SSH kapcsolat megnyitásához. A csatlakozás előtt természetesen be kell írnia az SSH szerver címét és portját is a fő „Session” képernyőn.

    Ezután az emberek csatlakozhatnak a 8888-as porthoz az SSH-kiszolgálón, és forgalmukat a helyi rendszer 1234-es portjához kellett lefutni.

    Alapértelmezés szerint a távoli SSH-kiszolgáló csak ugyanabból a gépből érkező kapcsolatokat hallgatja. Más szavakkal, csak az SSH szerverrel azonos rendszerű személyek csatlakozhatnak. Ez biztonsági okokból történik. Ha ezt a viselkedést felülírja, engedélyeznie kell a távoli SSH-kiszolgáló sshd_config „GatewayPorts” opcióját.

    Dinamikus port-továbbítás: használja az SSH-kiszolgálót proxyként

    Van is „dinamikus port-továbbítás”, amely hasonlóan működik, mint egy proxy vagy VPN. Az SSH kliens létrehoz egy SOCKS proxy-t, amely az alkalmazásokat konfigurálhatja. A proxy segítségével küldött összes forgalmat az SSH-kiszolgálón keresztül küldjük. Ez hasonló a helyi továbbításhoz - a helyi forgalmat egy adott portra küldi a számítógépen, és elküldi az SSH-kapcsolatra egy távoli helyre.

    Tegyük fel például, hogy nyilvános Wi-Fi hálózatot használ. Biztonságosan szeretné böngészni anélkül, hogy bepattant volna. Ha otthon van SSH-kiszolgálója, csatlakozhat hozzá, és dinamikus port-továbbítást használhat. Az SSH kliens létrehoz egy SOCKS proxy-t a számítógépén. Az ehhez a proxyhoz küldött összes forgalmat az SSH-kiszolgáló kapcsolaton keresztül küldjük. Senki, aki felügyeli a nyilvános Wi-Fi hálózatot, nem tudja nyomon követni a böngészést vagy cenzúrázni a hozzáférhető webhelyeket. A látogatott oldalak szempontjából olyan lesz, mintha otthon ült volna a számítógép előtt. Ez azt is jelenti, hogy ezt a trükköt csak az USA-beli webhelyek elérésére használhatja, miközben az USA-n kívül, természetesen az SSH-kiszolgálóhoz való hozzáféréssel, az USA-ban természetesen.

    Egy másik példa lehet, hogy elérheti az otthoni hálózaton lévő médiaszerver alkalmazást. Biztonsági okokból csak egy SSH-kiszolgáló állhat fenn az interneten. Nem engedélyezi a bejövő kapcsolatokat az internetről a médiaszerver alkalmazására. Dinamikus portátirányítást állíthat be, konfigurálhat egy webböngészőt a SOCKS proxy használatához, majd elérheti az otthoni hálózaton futó kiszolgálókat a webböngészőn keresztül, mintha otthon ülne volna az SSH rendszer előtt. Például, ha a médiaszerver az otthoni hálózat 192.168.1.123-as portján található, csatlakoztathatja a címet 192.168.1.123 a SOCKS proxy használatával bármely alkalmazásba, é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 a -D érv, mint így:

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

    Tegyük fel például, hogy van hozzáférése egy SSH-kiszolgálóhoz: ssh.yourhome.com és a felhasználóneved az SSH szerveren bubifrizura . Dinamikus továbbítással szeretné megnyitni a SOCKS proxy-t a 8888-as porton az aktuális PC-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ához. Az alkalmazásból származó összes forgalmat átirányítják az alagútban.

    Ehhez a Windows rendszeren a PuTTY programban válassza a Csatlakozás> SSH> Alagutak lehetőséget. Válassza ki a „Dinamikus” opciót. „Forrásport” esetén lépjen be a helyi portra.

    Például, ha a 8888-as porton szeretnénk létrehozni egy SOCKS-proxy-t, beírná 8888 a forrásport. Kattintson az „Add” gombra, majd kattintson az „Open” gombra az SSH kapcsolat megnyitásához. A csatlakozás előtt természetesen be kell írnia az SSH szerver címét és portját is a fő „Session” képernyőn.

    Ezután konfigurálhat egy alkalmazást, hogy hozzáférjen a helyi számítógépen lévő SOCKS proxyhoz (azaz a 127.0.0.1 IP-címhez, amely a helyi számítógépre mutat), és adja meg a megfelelő portot.

    Például konfigurálhatja a Firefoxot a SOCKS proxy használatához. Ez különösen hasznos, mert a Firefoxnak saját proxy beállításai lehetnek, és nem kell a rendszer egészére kiterjedő proxy beállításokat használni. A Firefox továbbítja a forgalmat az SSH-alagúton keresztül, míg más alkalmazások általában az internetkapcsolatot használják.

    Ha ezt a Firefoxban végzi, válassza a „Manuális proxy konfiguráció” lehetőséget, írja be a „127.0.0.1” szót a SOCKS gazdagép mezőbe, és adja meg a dinamikus portot a „Port” mezőbe. Hagyja üresen a HTTP proxy, SSL proxy és FTP proxy dobozokat.

    Az alagút aktív marad és nyitva marad, amíg az SSH munkamenet-kapcsolat nyitva van. Amikor befejezi az SSH-munkamenetet és leválasztja a kiszolgálóról, az alagút zárva lesz. Az alagút újbóli megnyitásához csak csatlakoztassa újra a megfelelő parancsot (vagy a PuTTY megfelelő beállításait).