Domovská » jak » Jak používat službu SSH Tunneling pro přístup k omezeným serverům a procházení bezpečně

    Jak používat službu SSH Tunneling pro přístup k omezeným serverům a procházení bezpečně

    Klient SSH se připojí k serveru Secure Shell, který umožňuje spouštět příkazy terminálu, jako byste seděli před jiným počítačem. Ale klient SSH také umožňuje "tunelovat" port mezi váš lokální systém a vzdálený server SSH.

    Existují tři různé typy SSH tunelování a všechny se používají pro různé účely. Každý z nich zahrnuje použití serveru SSH k přesměrování provozu z jednoho síťového portu na jiný. Provoz je odesílán přes šifrované SSH připojení, takže jej nelze sledovat ani měnit při přepravě.

    Můžete to udělat s ssh příkazu obsažený v systémech Linux, MacOS a dalších operačních systémech typu UNIX. V systému Windows, který neobsahuje vestavěný příkaz ssh, doporučujeme bezplatný nástroj PuTTY pro připojení k SSH serverům. Podporuje tunelování SSH.

    Přesměrování místních portů: Zaveďte vzdálené zdroje na místní systém

    Místní předávání portů umožňuje přístup k místním síťovým zdrojům, které nejsou vystaveny Internetu. Například řekněme, že chcete mít přístup k databázovému serveru z vaší kanceláře. Z bezpečnostních důvodů je tento databázový server konfigurován pouze tak, aby přijímal připojení z lokální kancelářské sítě. Pokud však máte přístup k serveru SSH v kanceláři a SSH server umožňuje připojení mimo kancelářskou síť, můžete se připojit k serveru SSH z domova a přistupovat k databázovému serveru, jako byste byli v kanceláři. To je často případ, jelikož je snazší zajistit jeden SSH server proti útokům, než zajistit různé síťové zdroje.

    Chcete-li to provést, vytvořte SSH připojení se serverem SSH a řekněte klientovi, aby předal přenos z určitého portu z místního počítače - například portu 1234 - na adresu serveru databáze a jeho port v kancelářské síti. Když se tedy pokusíte o přístup k databázovému serveru na portu 1234 vašeho současného počítače "localhost", je tato návštěva automaticky "tunelována" přes připojení SSH a odeslána na databázový server. SSH server sedí uprostřed, přesměrovává přenosy sem a tam. Pomocí libovolného příkazového řádku nebo grafického nástroje můžete přistupovat k databázovému serveru, jako kdyby byl spuštěn na místním počítači.

    Chcete-li použít místní přesměrování, připojte se k serveru SSH normálně, ale také jej napájejte -L argument. Syntaxe je:

    ssh -L místní_port: remote_address: remote_port [email protected]

    Řekněme například, že databázový server ve vaší kanceláři je umístěn v kanceláři 192.168.1.111. Máte přístup na server SSH kanceláře na adrese ssh.youroffice.com , a uživatelský účet na serveru SSH bob . V takovém případě by váš příkaz vypadal takto:

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

    Po spuštění tohoto příkazu budete mít přístup k databázovému serveru na portu 8888 na localhost. Takže, pokud databázový server nabídl přístup na web, můžete k němu připojit http: // localhost: 8888 do vašeho webového prohlížeče. Máte-li nástroj příkazového řádku, který potřebuje síťovou adresu databáze, ukažte na localhost: 8888. Celý provoz odeslaný do portu 8888 v počítači bude tunelován na adresu 192.168.1.111:1234 ve vaší kancelářské síti.

    Je to trochu více matoucí, pokud se chcete připojit k serverové aplikaci běžící na stejném systému jako samotný server SSH. Například řekněme, že máte server SSH spuštěný v portu 22 v kancelářském počítači, ale také máte databázový server spuštěný na portu 1234 ve stejném systému na stejné adrese. Chcete přistupovat k databázovému serveru z domova, ale systém přijímá pouze připojení SSH na portu 22 a jeho brána firewall neumožňuje žádné jiné externí připojení.

    V tomto případě můžete spustit příkaz, jako je následující:

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

    Při pokusu o přístup k databázovému serveru na portu 8888 na vašem současném počítači bude přenos přes SSH připojení odeslán. Po příchodu do systému běžícího na serveru SSH server SSH pošle do portu 1234 na "localhost", což je ten samý počítač, na kterém běží samotný server SSH. Takže "localhost" ve výše uvedeném příkazu znamená "localhost" z pohledu vzdáleného serveru.

    Chcete-li to provést v aplikaci PuTTY v systému Windows, zvolte Připojení> SSH> Tunely. Vyberte možnost Místní. Pro "Zdrojový port" zadejte místní port. Pro "Cíl" zadejte cílovou adresu a port ve tvaru remote_address: remote_port.

    Chcete-li například nastavit stejný tunel SSH jako výše, měli byste zadat 8888 jako zdrojový port a localhost: 1234 jako cíl. Klepněte na tlačítko "Přidat" a poté klikněte na "Otevřít" pro otevření spojení SSH. Budete také muset zadat adresu a port serveru SSH sám na hlavní obrazovce "Session" před připojením, samozřejmě.

    Vzdálené přesměrování portů: Dostupné lokální zdroje na vzdáleném systému

    "Vzdálený port forwarding" je opakem lokálního předávání a není používán tak často. Umožňuje zpřístupnit zdroj na místním počítači na serveru SSH. Například řekněme, že provozujete webový server na místním počítači, který sedíte před ním. Váš počítač je však za bránou firewall, která neumožňuje příchozí přenosy do serverového softwaru.

    Za předpokladu, že máte přístup na vzdálený server SSH, můžete se připojit k tomuto serveru SSH a použít vzdálené přesměrování portů. Váš klient SSH oznámí serveru, že přesměruje určitý port - řekněme, port 1234 - na server SSH na konkrétní adresu a port v aktuálním počítači nebo místní síti. Když někdo přistupuje k portu 1234 na serveru SSH, bude tato komunikace automaticky "tunelována" přes připojení SSH. Každý, kdo má přístup na server SSH, bude mít přístup k webovému serveru spuštěnému v počítači. To je skutečně způsob tunelu přes firewally.

    Chcete-li použít dálkové přesměrování, použijte ssh příkaz s příkazem -R argument. Syntaxe je z velké části stejná jako při místní přesměrování:

    ssh -R remote_port: místní_adresa: local_port [email protected]

    Řekněme, že chcete, aby serverová aplikace naslouchala na portu 1234 v místním počítači, který je k dispozici na portu 8888 na vzdáleném serveru SSH. Adresa serveru SSH je ssh.youroffice.com a vaše uživatelské jméno na serveru SSH je bob. Byl byste spustit následující příkaz:

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

    Někdo by se pak mohl připojit k serveru SSH na portu 8888 a toto spojení by bylo tunováno na serverovou aplikaci spuštěnou na portu 1234 v místním počítači, ze kterého jste spojení vytvořili.

    Chcete-li to provést v systému PuTTY v systému Windows, zvolte Připojení> SSH> Tunely. Vyberte možnost "Vzdálený". Pro "Zdrojový port" zadejte vzdálený port. Pro "Cíl" zadejte cílovou adresu a port ve tvaru local_address: local_port.

    Například pokud chcete nastavit výše uvedený příklad, měli byste zadat 8888 jako zdrojový port a localhost: 1234 jako cíl. Klepněte na tlačítko "Přidat" a poté klikněte na "Otevřít" pro otevření spojení SSH. Budete také muset zadat adresu a port serveru SSH sám na hlavní obrazovce "Session" před připojením, samozřejmě.

    Lidé by se pak mohli připojit k portu 8888 na serveru SSH a jejich provoz by byl tunelován do portu 1234 v místním systému.

    Ve výchozím nastavení vzdálený server SSH bude poslouchat pouze připojení z jednoho hostitele. Jinými slovy, mohou se připojit pouze lidé ve stejném systému jako samotný server SSH. To je z bezpečnostních důvodů. Budete muset povolit možnost "GatewayPorts" v sshd_config na vzdáleném SSH serveru, pokud chcete toto chování přepsat.

    Dynamické přesměrování portů: Použijte server SSH jako proxy

    K dispozici je také "dynamické předávání portů", které funguje podobně jako server proxy nebo VPN. Klient SSH vytvoří proxy serveru SOCKS, který můžete nakonfigurovat pro použití aplikací. Celý provoz odeslaný prostřednictvím serveru proxy bude odeslán prostřednictvím serveru SSH. Podobně jako při místní přesměrování - místní provoz je odeslán na konkrétní port v počítači a odesílá přes SSH spojení na vzdálené místo.

    Řekněme například, že používáte veřejnou síť Wi-Fi. Chcete bezpečně procházet, aniž byste se snoopovali. Pokud máte doma přístup k serveru SSH, můžete se k němu připojit a použít dynamické přesměrování portů. Klient SSH vytvoří proxy server SOCKS v počítači. Celý provoz odeslaný tomuto serveru proxy bude odeslán přes připojení SSH serveru. Nikdo, kdo sleduje veřejnou síť Wi-Fi, nebude moci sledovat vaše procházení nebo cenzurovat webové stránky, ke kterým máte přístup. Z pohledu webových stránek, které navštívíte, bude to, jako byste seděli před počítačem doma. To také znamená, že byste mohli použít tento trik pro přístup k webům v USA pouze mimo USA - za předpokladu, že máte přístup na server SSH v USA samozřejmě.

    Dalším příkladem může být přístup k aplikaci pro mediální server, kterou máte v domácí síti. Z bezpečnostních důvodů může být pouze server SSH vystaven Internetu. Nepovolujete příchozí připojení z Internetu do aplikace mediálního serveru. Bylo možné nastavit dynamické přesměrování portů, nakonfigurovat webový prohlížeč pro použití serveru proxy SOCKS a přístup k serverům spuštěným ve vaší domácí síti prostřednictvím webového prohlížeče, jako byste seděli před domem systému SSH. Pokud je například váš mediální server umístěn v doméně 192.168.1.123, můžete tuto adresu připojit 192.168.1.123 do kterékoli aplikace pomocí serveru proxy SOCKS a měli byste přistupovat k mediálnímu serveru, jako byste byli v domácí síti.

    Chcete-li použít dynamické přesměrování, spusťte příkaz ssh příkazem -D argument:

    ssh -D local_port [email protected]

    Řekněme, že máte přístup na server SSH na adrese ssh.yourhome.com a vaše uživatelské jméno na serveru SSH je bob . Chcete-li použít dynamické přesměrování, otevřete proxy server SOCKS na portu 8888 v aktuálním počítači. Byl byste spustit následující příkaz:

    ssh -D 8888 [email protected]

    Potom můžete nakonfigurovat webový prohlížeč nebo jinou aplikaci pro použití místní adresy IP (127.0.01) a portu 8888. Veškerá komunikace z této aplikace bude přesměrována přes tunel.

    Chcete-li to provést v systému PuTTY v systému Windows, zvolte Připojení> SSH> Tunely. Vyberte možnost "Dynamický". Pro "Zdrojový port" zadejte místní port.

    Například pokud byste chtěli na portu 8888 vytvořit proxy server SOCKS, měli byste zadat 8888 jako zdrojový port. Klepněte na tlačítko "Přidat" a poté klikněte na "Otevřít" pro otevření spojení SSH. Budete také muset zadat adresu a port serveru SSH sám na hlavní obrazovce "Session" před připojením, samozřejmě.

    Poté můžete nakonfigurovat aplikaci pro přístup k serveru proxy SOCKS na místním počítači (tj. Adresu IP 127.0.0.1, která směřuje na místní počítač) a určit správný port.

    Můžete například nakonfigurovat aplikaci Firefox tak, aby používala server proxy SOCKS. To je obzvláště užitečné, protože Firefox může mít své vlastní nastavení proxy a nemusí používat nastavení proxy pro celý systém. Firefox bude odesílat svou návštěvnost prostřednictvím tunelu SSH, zatímco ostatní aplikace budou normálně používat vaše internetové připojení.

    Pokud to děláte ve Firefoxu, vyberte možnost "Manuální konfigurace serveru proxy", zadejte do pole SOCKS "127.0.0.1" a do pole "Port" zadejte dynamický port. Ponechte prázdné políčka HTTP Proxy, SSL Proxy a FTP Proxy.

    Tunel zůstane aktivní a otevřený tak dlouho, dokud máte otevřené připojení relace SSH. Po ukončení relace SSH a odpojení od serveru bude tunel také uzavřen. Stačí znovu připojit příslušný příkaz (nebo příslušné volby v souboru PuTTY) k opětovnému otevření tunelu.