GNU/Linux >> Znalost Linux >  >> Linux

SSH tunelování a proxy

Úvod:

SSH, také známý jako Secure Shell nebo Secure Socket Shell, je síťový protokol, který uživatelům, zejména správcům systému, poskytuje bezpečný způsob přístupu k počítači přes nezabezpečenou síť.

Secure Shell poskytuje silné ověřování heslem a ověřování veřejným klíčem, stejně jako šifrovanou datovou komunikaci mezi dvěma počítači připojenými přes otevřenou síť, jako je internet.

SSH tunelování je metoda přenosu libovolných síťových dat přes šifrované připojení SSH. Může být použit z mnoha důvodů, zejména pro přidání šifrování do starších aplikací, pro použití jako virtuální privátní síť a pro přístup k intranetovým službám přes firewally. Poskytuje také způsob, jak zabezpečit datový provoz jakékoli dané aplikace pomocí přesměrování portů, v podstatě tunelování jakéhokoli portu TCP/IP přes SSH. To znamená, že datový provoz aplikace je směrován do šifrovaného připojení SSH, takže jej nelze během přenosu odposlouchávat ani zachytit.

Předpoklady:

  1. Server SSH naslouchá připojení SSH, (musí být povoleno předávání X11, můžete to zkontrolovat v konfiguračním souboru sshd)
  2. Klient SSH přesměrovat provoz z místního naslouchajícího portu přes server SSH na aplikační server
  3. Cílový server nabízející služby (http, vnc atd.)

Server SSH a cílový server mohou být na stejném počítači nebo na různých počítačích přístupných přes síť. Níže uvedený diagram znázorňuje server SSH a aplikační servery na jiném počítači a připojené k síti a klientský počítač přistupuje k serveru SSH přes internet.

Vytvořme nastavení, kde se klient chce připojit ke službě, která nativně nepoužívá šifrování, ale nechce, aby byl provoz odesílán nešifrovaně přes internet. Prostředí pro tento scénář je uvedeno níže.

Server SSH:SSH naslouchá na portu 22 na adrese IP 192.168.1.1

Cílový server:Služba VNC naslouchá na portu 5900 na IP adrese 192.168.1.2

Klientský počítač:Nainstalovaní klienti SSH a VNC

Vytvoření tunelu pomocí PuTTY :

  1. Otevřete uživatelské rozhraní klienta PuTTY
  2. V okně Session v části „Basic options for your PuTTY session“ zadejte IP adresu a naslouchací port pro SSH server, jak je vidět na obrázku níže:

3. V levém podokně vyberte Připojení->SSH->Tunnel

4. V části „Možnosti řízení přesměrování portů SSH“ zadejte následující nastavení.

5. Zdrojový port:Vyberte libovolný port, který váš klient nepoužívá; příklad používá 1590.

6. Cíl:IP adresa a naslouchací port pro cílový server, 192.168.1.2:5900.

7. Nechte přepínače „Local“ a „Auto“ vybrané.

8. Kliknutím na „Přidat“ tato nastavení uložíte.

9. Kliknutím na „Otevřít“ vytvoříte tunel SSH. Až budete vyzváni, zadejte své uživatelské jméno a heslo pro SSH server.

Vytvoření tunelu SSH pomocí OPENSSH:

SSH tunel lze vytvořit pomocí níže uvedeného příkazu pomocí klienta OPENSSH.

ssh -L 1590:192.168.1.2:5900 192.168.1.1

Zde -L 1590 označuje místní port

192.168.1.2:5900 označuje IP a port cílového serveru

192.168.1.1 Označuje IP adresu serveru SSH

Po zadání příkazu se přihlaste pomocí svých přihlašovacích údajů k serveru SSH.

Připojení služby VNC pomocí tunelu SSH :

Po úspěšném přihlášení k serveru SSH nakonfigurujte svého klienta VNC, aby se přihlásil k cílovému serveru pomocí místního portu.

Použijte místní adresu Loopback 127.0.0.1 a port 1590

Příklad ukazuje tunelování pro port VNC, stejná nastavení lze použít pro přístup k jakékoli službě změnou portů a IP adres.

Reverzní tunelování SSH :

Reverzní tunelování je něco podobného, ​​ale v tomto případě může cílový server použít tunel pro přístup ke službám hostovaným ve zdrojové síti nebo samotném počítači.

Podívejme se na příklad,

Předpokládejme, že máte server ve vzdálené síti za firewallem a ze vzdálené sítě do vaší sítě je otevřený pouze SSH (port 22), ale chcete mít přístup ke službě http běžící na portu 80 hostovaném na vašem linuxovém boxu.

Pro scénáře, jako je tento, je zpětné tunelování užitečné, níže se podívejme, jak to udělat bezpečně a snadno.

Použijte níže uvedený příkaz na vašem Linux Boxu, kde je hostována vaše http služba…

ssh -R 180:localhost:80 [email protected]

Kde -R 180:localhost je vzdálený port a IP / název hostitele (bude používán vzdáleným serverem pro přístup ke službě http)

A [email protected] je IP a uživatelské jméno vzdáleného serveru, odkud budete chtít přistupovat ke své webové službě

Po zadání příkazu se přihlaste pomocí přihlašovacích údajů,

Nyní můžete přistupovat ke svému webovému serveru ze vzdáleného serveru.

Může existovat mnoho scénářů, kdy lze tunelování SSH a zpětné tunelování použít i pro přístup k nedostupným 🙂 s jednoduchostí a bezpečností ssh.


Linux
  1. Jak nastavit SSH tunelování

  2. Jak stahovat a nahrávat soubory přes SSH

  3. Jak nainstalovat a nastavit sftp server v Ubuntu 20.04

  1. Ssh – Co přesně dělají možnosti `serveraliveinterval` a `clientaliveinterval` v Sshd_config?

  2. Proč je moje přihlášení přes SSH pomalé?

  3. vncserver -localhost a tunelování ssh

  1. Ssh a oprávnění k domovskému adresáři?

  2. Jak SSH na server pomocí jiného serveru?

  3. Uživatelské jméno a heslo v příkazovém řádku s sshfs