SSH tunely: konfigurace, použití

SSH tunelování je způsob přenosu libovolných síťových dat přes šifrované spojení SSH. Lze jej použít k přidávání šifrovaných zastaralých programů. Může být také použit k implementaci VPN (virtuálních privátních sítí) a přístupu k intranetovým službám prostřednictvím firewallů.

Úvod

Přesměrování portů SSH vytváří zabezpečené spojení mezi počítačem a vzdáleným počítačem, pomocí něhož je možné přenášet služby. Protože připojení je šifrováno, SSH tunelování je užitečné pro přenos informací, které používají nešifrovaný protokol, jako je IMAP, VNC nebo IRC.


Tunel SSH systému Windows používá port 22 k poskytnutí šifrování dat přenášených prostřednictvím veřejné sítě (např. Internet), čímž poskytuje funkce VPN. Služba IPsec má tranzitní režim, ale může také pracovat v režimu tunelování prostřednictvím zabezpečené brány zabezpečení.

Definice

Tunel přes protokol SSH je standardem pro zabezpečené vzdálené přihlášení a přenos souborů přes nedůvěryhodné sítě. Poskytuje také způsob, jak chránit datový provoz konkrétní aplikace pomocí portového předávání, v podstatě tunelovat libovolný port TCP /IP přes SSH. To znamená, že přenos je směrován do proudu uvnitř šifrovaného připojení SSH, takže jej nelze počítat ani zachytit na cestách. SSH tunelování umožňuje přidat zabezpečení sítě k zastaralým programům, které nepodporují šifrování.


Mezi klientem SSH a serverem SSH je vytvořeno bezpečné připojení k nespolehlivé síti. Toto připojení SSH je zašifrováno, chrání důvěrnost a integritu a ověřuje vazby. Připojení SSH používá aplikace k připojení k aplikačnímu serveru. Při aktivování tunelu se aplikace připojí k portu na místním hostiteli, který poslouchá klient SSH. Klient SSH poté přesměruje aplikaci přes šifrovaný tunel na server. Ten se připojuje k aktuálnímu aplikačnímu serveru - obvykle na stejném počítači nebo ve stejném datovém centru jako server SSH. Spojení aplikace je tedy chráněno bez nutnosti změny pracovních postupů aplikací nebo koncových uživatelů.

Tunelovací protokoly - co to je?

V počítačových sítích umožňuje tunelovací protokol uživateli sítě přístup nebo poskytnutí síťové služby, kterou základní síť nepodporuje nebo neposkytuje přímo. Jednou z důležitých aplikací je umožnit externímu protokolu pracovat v síti, která nepodporuje tento konkrétní protokol (například spuštění protokolu IPv6 přes protokol IPv4). Dalším důležitým bodem je poskytování služeb, které jsou nevhodné nebo nebezpečné pro použití s ​​použitím pouze základních síťových služeb. Například poskytování firemní síťové adresy vzdáleného uživatele, jehož fyzická síťová adresa není součástí podnikové sítě. Vzhledem k tomu, že tunelování zahrnuje opětovné zabalení provozních dat do jiné formy, případně pomocí standardního šifrování,důležitou vlastností je skrýt povahu dopravy, která prochází tunely.

Secure Shell - Secure Shell

Secure Shell se skládá ze šifrovaného tunelu vytvořeného prostřednictvím spojení SSH. Uživatelé mohou nakonfigurovat tunely SSH pro odesílání nešifrovaných přenosů přes síť přes šifrovaný kanál. Počítače Microsoft Windows například mohou sdílet soubory pomocí protokolu SMB (protokol SMB), což je nešifrovaný protokol. Chcete-li vzdáleně připojit souborový systém Microsoft Windows prostřednictvím Internetu, někdo následuje připojení, vidí přenesené soubory. Chcete-li bezpečně připojit souborový systém Windows, můžete nainstalovat tunel SSH, který směruje veškerou komunikaci SMB na vzdálený souborový server prostřednictvím šifrovaného kanálu. Navzdory tomu, že samotný protokol SMB neobsahuje šifrování, šifrovaný SSH kanál, přes který se pohybuje, poskytuje zabezpečení.

Typy přesměrování portů

Přesměrování portů je široce podporovaná funkce, která se nachází u všech hlavních klientů a serverů SSH. Pomocí funkce přenosu portů SSH můžete přes síť přenášet různé typy internetových přenosů. Používá se k vyloučení sledování sítě nebo k obcházení nesprávně nakonfigurovaných směrovačů na Internetu. Existují tři typy přenosu portů z SSH:
  • místní - SSH klientské připojení přesměrovány na SSH server a potom na server;
  • vzdálená připojení k SSH serveru jsou přesměrována přesKlient SSH a potom na server;
  • Dynamické - připojení z různých aplikací se odesílají přes SSH klient, pak přes server SSH a nakonec na několik cílových serverů.
  • Přesměrování lokálních portů je nejběžnějším typem a zejména vám umožňuje obejít firewall společnosti, která blokuje Wikipedii. Vzdálené přesměrování portů je méně obvyklé. Umožňuje připojení k serveru SSH k počítači na intranetu vaší společnosti. Dynamické přesměrování portů se používá častěji. Umožňuje obejít firewall společnosti, která zcela blokuje přístup k Internetu. Vyžaduje mnoho práce s přizpůsobením a obvykle je snadnější použít místní přesměrování portů pro konkrétní stránky, které chcete přistupovat.

    Specifikace

    Chcete-li použít port forwarding, je třeba zajistit, aby přesměrování portů bylo povoleno na vašem serveru. Musíte také poskytnout zákazníkovi čísla zdrojového a cílového portu. Pokud používáte lokální nebo vzdálené přesměrování, je třeba informovat klienta o koncovém serveru. Pokud se používá dynamické předávání, je třeba nakonfigurovat aplikace, aby používaly proxy server SOCKS. Opět, jak to udělat, závisí na tom, který SSH klient používáte, takže možná budete muset přečíst více o dokumentaci.

    Příklady implementace

    Nejlepší způsob, jak pochopit, jak to funguje, je zvážit příklad s lokálním přesměrováním. Představte si, co jsteNacházíte se v soukromé síti, která vám neumožňuje připojení k určitému serveru. Předpokládejme, že jste v práci a vk.com je blokován. Chcete-li zablokovat zámek, můžeme vytvořit tunel přes server, který není v naší síti, a získáte tak přístup k požadovanému zdroji: $ ssh -L 9000: vk.com: 80 [email protected]. Klíčem je zde -L, který uvádí, že provádíme místní předávání portů. Tým pak hlásí, že odesíláme náš 9000 lokální port do vk.com:80, což je výchozí port pro HTTP. Nyní musíte otevřít prohlížeč a přejít na http: //localhost: 9000. Nepopiratelnou výhodou tunelů SSH je, že jsou šifrovány. Nikdo neuvidí, které stránky navštívíte - zobrazí se pouze připojení SSH k serveru.
    Připojení k databázi brány firewall
    Dalším dobrým příkladem je, když potřebujete přistupovat k portu na vašem serveru, který lze provádět pouze z lokálního hostitele, nikoliv vzdáleně. Příkladem toho je potřeba připojit se k databázové konzole, která z bezpečnostních důvodů umožňuje pouze místní připojení. Používáte například PostgreSQL na vašem serveru, který ve výchozím nastavení naslouchá portu 5432: $ ssh -L 9000: localhost: 5432 [email protected]. Zde se změnila část - localhost: 5432, která odkazuje na přesměrování připojení z místního portu 9000 na localhost: 5432 a na váš server. Nyní se můžeme jednoduše připojit k naší databázi: $ psql -h localhost -p 9000.

    Vzdálený port forwarding

    Nyní nyní vysvětlíme v reálném příkladu práci dálkového ovladačepřesměrování Předpokládejme, že vyvíjíte aplikaci Rails na vašem místním počítači a chcete ji předvést příteli. Je nám líto, váš ISP vám nedal veřejnou IP adresu, takže není možné připojit přímo k počítači přes internet. Někdy to může být vyřešen pomocí konfigurace NAT (Network Address Translation) ve směrovači, ale to nemusí vždy fungovat, a budete muset změnit konfiguraci routeru, což není vždy žádoucí. Toto řešení také nefunguje, pokud nemáte přístup k síti. Chcete-li vyřešit tento problém, budete potřebovat jiný počítač, který je veřejně přístupný a má přístup k SSH. Může se jednat o jakýkoli server na Internetu, pokud se k němu můžete připojit. Budeme vytvářet SSH-tunel, který se otevře nový port na serveru a připojit jej k místní port v počítači: $ ssh-R 9000: localhost: 3000 syntax [email protected] je velmi podobná místní port forwarding, s jednou výměnou -L na -R Stejně jako při místní přesměrování portů zůstává syntaxe nezměněna.

    Rozsah a rizika

    Nevýhodou je, že každý uživatel, který se může přihlásit k serveru mohou zahrnovat port forwarding. To je široce používán interní IT specialisty vstoupit na jejich domácích počítačů nebo serverů v cloudu, port forwarding ze serveru zpět do firemního intranetu na svém počítači nebo odpovídající server. Hackery a malware mohou také použít, aby závadu algoritmus v interní síti. Může být také použit proskrývají stopy útočníků, útočí na několik zařízení, která umožňují nekontrolované tunelování. Tunelování se často používá ve spojení s tunelovými klíči PHP SSH a autentizací s veřejným klíčem pro úplnou automatizaci procesu.

    Výhody

    Prodej tunelů SSH je široce používán v mnoha podnikových prostředích, které používají systémy sálových systémů jako jejich aplikace. V těchto prostředích mohou mít samotné aplikace velmi omezenou bezpečnostní podporu. Pomocí tunelování lze dosáhnout kompatibility se systémy SOX, HIPAA, PCI-DSS a dalšími normami, aniž by bylo nutné měnit aplikace. V mnoha případech jsou tyto aplikace a aplikační servery takové, že jejich změny pravděpodobně budou nepraktické nebo příliš nákladné. Zdrojový kód nemusí být k dispozici, prodávající mohl zkrachovat, produkt může být mimo krabici nebo není žádný vývojářský tým. Přidání ochranného krytu, jako je tmel do tunelu SSH, poskytuje ekonomický a praktický způsob přidávání zabezpečení takovým aplikacím. Například všechny bankomaty naší země pracují s použitím tunelů pro bezpečnostní účely.

    Rizika

    Jako užitečná věc nepochybně podporuje SSH tunelování. Zahrnuje rizika, která musí řešit firemní oddělení IT bezpečnosti. Spojení volných SSH tunelů je chráněno silným šifrováním. Díky tomu je jejich obsah neviditelný pro většinu nasazených řešení monitorování sítě a filtrování provozu. Tato neviditelnost se nesevýznamné riziko, pokud je používáno ke škodlivým účelům, jako je například filtrování dat. Cybercriminals nebo malware mohou používat tunely SSH pro skrytí neoprávněných zpráv nebo k odstranění ukradených dat z cílové sítě.
    Při útoku tunelu SSH útočník nainstaluje server mimo cílovou síť (například Amazon AWS). Jakmile je rodiče detekován v cílovém systému, připojuje se k externímu SSH serveru zevnitř. Většina organizací povoluje výstup tunelů SSH pro Linux, přinejmenším pokud mají servery ve veřejném cloudu. Toto připojení SSH je nakonfigurováno tak, že umožňuje odeslat port TCP z portu externího serveru do portu SSH na serveru v interní síti. Chcete-li nakonfigurovat tunel SSH, potřebujete jeden příkaz uvnitř a můžete jej snadno automatizovat. Většina firewallů ji téměř neochrání.

    Související publikace