mi az SSH Port Forwarding, más néven SSH Tunneling?
SSH port forwarding egy mechanizmus SSH tunneling alkalmazás portok az ügyfél gép a szerver gép, vagy fordítva. Használható titkosítás hozzáadására a régi alkalmazásokhoz, tűzfalakon keresztül, néhány rendszergazda és informatikai szakember pedig arra használja, hogy otthoni gépeikből hátsó ajtókat nyisson a belső hálózatba. A hackerek és a rosszindulatú programok is visszaélhetnek azzal, hogy hozzáférjenek az internetről a belső hálózathoz., A szélesebb körű áttekintéshez lásd az SSH tunneling oldalt.
helyi továbbítás
a helyi továbbítás egy port továbbítására szolgál az ügyfélgépről a szerver gépre. Alapjában véve az SSH kliens egy konfigurált porton hallgatja a kapcsolatokat, majd amikor kap egy kapcsolatot, egy SSH szerverre továbbítja a kapcsolatot. A kiszolgáló egy konfigurált célporthoz csatlakozik, esetleg egy másik gépen, mint az SSH szerver.,
Tipikus felhasználási helyi port forwarding a következők:
-
Alagút ülések fájlátvitel keresztül ugrás szerverek
-
Csatlakozás szolgáltatáshoz a belső hálózaton kívülről
-
Csatlakozás távoli fájl megosztása az Interneten keresztül
Jó néhány szervezet esetében az összes bejövő SSH hozzáférés keresztül, egyetlen ugrás-kiszolgáló. A szerver lehet egy szabványos Linux / Unix doboz, általában némi extra keményedés, behatolás felismerés,és / vagy naplózás, vagy lehet, hogy egy kereskedelmi jump szerver megoldás.,
sok jump szerver lehetővé teszi a Bejövő port továbbítását, miután a kapcsolatot hitelesítették. Az ilyen port-továbbítás kényelmes, mert lehetővé teszi a tech-hozzáértő felhasználók számára, hogy a belső erőforrásokat meglehetősen átláthatóan használják. Például továbbíthatnak egy portot a helyi gépen a vállalati intranet webszerverhez, egy belső levelezőszerver IMAP portjához, egy helyi fájlkiszolgáló 445 és 139 portjához, egy nyomtatóhoz, egy verzióvezérlő tárolóhoz vagy a belső hálózat szinte bármely más rendszeréhez. Gyakran előfordul, hogy a port egy belső gép SSH portjára van alagútban.,
az OpenSSH-ben a helyi port továbbítás a -L
opció:
ssh -L 80:intra.example.com:80 gw.example.com
Ez a példa megnyitja a kapcsolatot a gw.example.com
jump szerverrel, és továbbítja a kapcsolatot a 80-as porthoz a helyi gépen a 80-as portra div id=”759d89bc30″>.
alapértelmezés szerint bárki (akár különböző gépeken is) csatlakozhat az SSH ügyfélgép megadott portjához., Ez azonban ugyanazon a gazdagépen található programokra korlátozható egy kötési cím megadásával:
ssh -L 127.0.0.1:80:intra.example.com:80 gw.example.com
aLocalForward
opció az OpenSSH kliens konfigurációs fájlban a továbbítás konfigurálására használható anélkül, hogy a parancssorban meg kellene adnia.
Remote Forwarding
az OpenSSH-ben a távoli SSH port forwardings a -R
opcióval van megadva. Például:
ssh -R 8080:localhost:80 public.example.com
Ez lehetővé teszi, hogy a távoli kiszolgálón bárki csatlakozhasson a TCP port 8080-hoz a távoli kiszolgálón., A kapcsolat ezután visszakerül az ügyfélközpontba, majd az ügyfél TCP kapcsolatot hoz létre a 80-as porthoz a localhost
rendszeren. A localhost
helyett bármilyen más Gazdanév vagy IP-cím használható a csatlakozni kívánt gazdagép megadásához.
Ez a konkrét példa hasznos lenne, hogy valaki a külső hozzáférést egy belső webszerver. Vagy egy belső webes alkalmazás nyilvános internetre való kitettsége. Ezt egy otthonról dolgozó alkalmazott vagy egy támadó teheti meg.,
alapértelmezés szerint az OpenSSH csak a távoli továbbított portokhoz való csatlakozást teszi lehetővé a szerver gazdagépről. Az sshd_config kiszolgálófájlban azonban aGatewayPorts
opció használható ennek vezérlésére. A következő alternatívák lehetségesek:
GatewayPorts no
Ez megakadályozza a kiszolgálón kívüli továbbított portokhoz való csatlakozást.
GatewayPorts yes
Ez lehetővé teszi, hogy bárki csatlakozzon a továbbított portokhoz. Ha a szerver a nyilvános interneten van, az interneten bárki csatlakozhat a porthoz.,
GatewayPorts clientspecified
Ez azt jelenti, hogy az Ügyfél megadhat egy IP-címet, ahonnan a porthoz való kapcsolatok megengedettek. Ennek szintaxisa:
ssh -R 52.194.1.73:8080:localhost:80 host147.aws.example.com
ebben a példában csak a 52.194.1.73
8080-as porthoz tartozó IP-cím kapcsolatai engedélyezettek.
OpenSSH is lehetővé teszi a továbbított távoli port megadott 0. Ebben az esetben a szerver dinamikusan hozzárendel egy portot, majd jelentést tesz az ügyfélnek. Ha a -O forward
opcióval használja, az ügyfél kinyomtatja a kiosztott portszámot a szabványos kimenetre.,
Nyitó Hátsóajtó a Vállalkozás
a Távoli SSH port forwarding gyakran alkalmazzák a munkavállalók nyílt hozzáférés a vállalkozás. Például a munkavállaló beállíthat egy ingyenes szintű kiszolgálót az Amazon AWS-ről, majd bejelentkezhet az irodából az adott kiszolgálóra, meghatározva a távoli továbbítást a szerver egyik portjáról a belső vállalati hálózat valamelyik kiszolgálójára vagy alkalmazására. Több távoli előre lehet megadni, hogy több alkalmazáshoz is hozzáférjen.,
a munkavállaló a kiszolgálón is beállítaná a GatewayPorts yes
értéket (a legtöbb alkalmazottnak nincs rögzített IP-címe otthon, így nem korlátozhatják az IP-címet).
például a következő parancs megnyitja a hozzáférést egy belső Postgres adatbázishoz az 5432-es porton, valamint egy belső SSH porthoz A 2222-es porton.
ssh -R 2222:d76767.nyc.example.com:22 -R 5432:postgres3.nyc.example.com:5432 aws4.mydomain.net
szerver oldali konfiguráció
aAllowTcpForwarding
opciónak az OpenSSH kiszolgáló konfigurációs fájljában engedélyeznie kell a kiszolgálón a port továbbításának engedélyezéséhez. Alapértelmezés szerint a továbbítás megengedett., Ennek az opciónak a lehetséges értékei: yes
vagy all
az összes TCP továbbítás engedélyezéséhez, no
az összes TCP továbbítás megakadályozásához, local
a helyi továbbítások engedélyezéséhez, és remote
a távoli továbbítások engedélyezéséhez.
egy másik érdekes lehetőség aAllowStreamLocalForwarding
, amely felhasználható Unix domain aljzatok továbbítására. Lehetővé teszi ugyanazokat az értékeket, mint a AllowTcpForwarding
. Az alapértelmezett érték: yes
.,
például:
AllowTcpForwarding remote AllowStreamLocalForwarding no
a GatewayPorts
a fent leírt konfigurációs opció a távoli portok továbbítását is érinti. A lehetséges értékek: no
(csak a kiszolgáló állomás helyi kapcsolatai engedélyezettek; alapértelmezett), yes
(az interneten bárki csatlakozhat távoli továbbított portokhoz), és clientspecified
(az Ügyfél megadhat egy IP-címet, amely csatlakozhat, bárki, ha nincs megadva).,
hogyan lehet megakadályozni, hogy az SSH Port továbbítása megkerülje a tűzfalakat
javasoljuk, hogy a port továbbítását kifejezetten tiltsák le, ha nincs rá szükség. A port forwarding engedélyezése lehetővé teszi a szervezet biztonsági kockázatoknak és hátsó ajtóknak való kitettségét. Ha például egy olyan kiszolgáló, amely csak SFTP-fájlátviteleket kíván biztosítani, lehetővé teszi a portok továbbítását, akkor ezek a továbbítások felhasználhatók arra, hogy az Intranetből nem kívánt hozzáférést kapjanak a belső hálózathoz.
a probléma az, hogy a port továbbítását a gyakorlatban csak szerver vagy tűzfal akadályozhatja meg., Egy vállalkozás nem tudja irányítani az összes szervert az Interneten. A tűzfal-alapú vezérlés is trükkös lehet, mivel a legtöbb szervezet rendelkezik szerverekkel az Amazon AWS-ben és más felhőszolgáltatásokban, és ezeket a szervereket általában SSH segítségével érik el.