Vyhledávání na webu

Jak vytvořit SSH Tunneling nebo Port Forwarding v Linuxu


Tunelování SSH (také označované jako předávání portů SSH) je jednoduše směrování místního síťového provozu přes SSH ke vzdáleným hostitelům. To znamená, že všechna vaše připojení jsou zabezpečena pomocí šifrování. Poskytuje snadný způsob nastavení základní VPN (Virtual Private Network), užitečné pro připojení k privátním sítím přes nezabezpečené veřejné sítě, jako je internet.

Můžete být také použiti k vystavení lokálních serverů za NAT a firewally internetu přes zabezpečené tunely, jak je implementováno v ngrok.

Relace SSH ve výchozím nastavení umožňují tunelování síťových připojení a existují tři typy přesměrování portů SSH: místní, vzdálené a dynamické přesměrování portů.

V tomto článku si ukážeme, jak rychle a snadno nastavit tunelování SSH nebo různé typy přesměrování portů v Linuxu.

Testovací prostředí:

Pro účely tohoto článku používáme následující nastavení:

  1. Místní hostitel: 192.168.43.31
  2. Vzdálený hostitel: Linode CentOS 7 VPS s názvem hostitele server1.example.com.

Obvykle se můžete bezpečně připojit ke vzdálenému serveru pomocí SSH následovně. V tomto příkladu jsem nakonfiguroval přihlášení SSH bez hesla mezi místními a vzdálenými hostiteli, takže nepožadoval heslo správce uživatele.

ssh [email   

Přesměrování místního portu SSH

Tento typ přesměrování portů vám umožňuje připojit se z místního počítače ke vzdálenému serveru. Za předpokladu, že se nacházíte za omezujícím firewallem nebo je blokován odchozí firewall v přístupu k aplikaci běžící na portu 3000 na vašem vzdáleném serveru.

Můžete přeposlat místní port (např. 8080), který pak můžete použít pro místní přístup k aplikaci následovně. Příznak -L definuje port přesměrovaný na vzdáleného hostitele a vzdálený port.

ssh [email  -L 8080:server1.example.com:3000

Přidání příznaku -N znamená, že neprovádějte vzdálený příkaz, v tomto případě nezískáte shell.

ssh -N [email  -L 8080:server1.example.com:3000

Přepínač -f dává pokyn ssh ke spuštění na pozadí.

ssh -f -N [email  -L 8080:server1.example.com:3000

Nyní na místním počítači otevřete prohlížeč, místo přístupu ke vzdálené aplikaci pomocí adresy server1.example.com:3000 můžete jednoduše použít localhost:8080 nebo 192.168.43.31:8080, jak je znázorněno na snímku obrazovky níže.

Vzdálené přesměrování SSH portů

Vzdálené předávání portů vám umožňuje připojit se ze vzdáleného počítače k místnímu počítači. Ve výchozím nastavení SSH nepovoluje vzdálené přesměrování portů. Můžete to povolit pomocí direktivy GatewayPorts v hlavním konfiguračním souboru SSHD /etc/ssh/sshd_config na vzdáleném hostiteli.

Otevřete soubor pro úpravy pomocí oblíbeného editoru příkazového řádku.

sudo vim /etc/ssh/sshd_config 

Vyhledejte požadovanou direktivu, zrušte její komentář a nastavte její hodnotu na yes, jak je znázorněno na snímku obrazovky.

GatewayPorts yes

Uložte změny a ukončete. Dále musíte restartovat sshd, aby se použila poslední změna, kterou jste provedli.

sudo systemctl restart sshd
OR
sudo service sshd restart 

Poté spusťte následující příkaz pro předání portu 5000 na vzdáleném počítači na port 3000 na místním počítači.

ssh -f -N [email  -R 5000:localhost:3000

Jakmile pochopíte tuto metodu tunelování, můžete snadno a bezpečně zpřístupnit místní vývojový server, zejména za NAT a firewally, internetu přes zabezpečené tunely. Podobným způsobem fungují i tunely jako Ngrok, pagekite, localtunnel a mnoho dalších.

Dynamické přesměrování SSH portů

Toto je třetí typ přesměrování portů. Na rozdíl od místního a vzdáleného přesměrování portů, které umožňuje komunikaci s jediným portem, umožňuje celou řadu TCP komunikací napříč řadou portů. Dynamické přesměrování portů nastaví váš počítač jako SOCKS proxy server, který ve výchozím nastavení naslouchá na portu 1080.

Pro začátek, SOCKS je internetový protokol, který definuje, jak se klient může připojit k serveru přes proxy server (v tomto případě SSH). Dynamické přesměrování portů můžete povolit pomocí možnosti -D.

Následující příkaz spustí SOCKS proxy na portu 1080, který vám umožní připojit se ke vzdálenému hostiteli.

ssh -f -N -D 1080 [email 

Od této chvíle můžete aplikacím na vašem počítači umožnit používat tento proxy server SSH tím, že upravíte jejich nastavení a nakonfigurujete je tak, aby jej používaly pro připojení ke vzdálenému serveru. Po zavření relace SSH přestane proxy server SOCKS fungovat.

Přečtěte si také: 5 způsobů, jak udržet vzdálené relace SSH spuštěné po uzavření SSH

souhrn

V tomto článku jsme vysvětlili různé typy přesměrování portů z jednoho počítače na druhý pro tunelování provozu prostřednictvím zabezpečeného připojení SSH. Toto je jedno z mnoha použití SSH. K tomuto průvodci můžete přidat svůj hlas prostřednictvím formuláře zpětné vazby níže.

Pozor: Přesměrování portů SSH má některé značné nevýhody, lze jej zneužít: lze jej použít k obcházení programů pro monitorování sítě a filtrování provozu (neboli firewallů). Útočníci jej mohou využít ke škodlivým činnostem. V našem dalším článku si ukážeme, jak deaktivovat SSH místní přesměrování portů. Zůstaň připojen!