GNU/Linux >> Znalost Linux >  >> Linux

Jak nastavit SSH tunelování

Pokud se připojujete k jinému linuxovému zařízení v jiné síti, budete je muset vystavit veřejnému internetu, což může ohrozit váš systém a soubory. Proto se SSH Tunneling používá k přenosu dat rychlým a zabezpečeným způsobem ze zdroje do klientského počítače a naopak.

SSH Tunneling je postup vytváření zabezpečeného a šifrovaného SSH spojení mezi serverovým strojem a klientským strojem, přes které lze přenášet data a přenášet služby. V našem dnešním článku se podíváme, jak nastavit SSH Tunneling a bezpečně směrovat váš provoz přes SSH tunely.

Co je tunelování SSH?

SSH Tunneling je způsob přenosu nešifrovaného provozu nebo dat prostřednictvím šifrovaného kanálu. Jednoduše se dá říci, že jde o tunel pro bezpečný přenos dat z jednoho místa na druhé. Kromě přenosu souborů lze SSH Tunneling použít také pro přístup k intranetovým službám přes firewally a implementaci VPN.

SSH Tunneling je také známý jako SSH Forwarding a je to snadný a efektivní způsob přenosu dat pomocí šifrovaného protokolu (FTP), obcházení firewallů a přístupu k geograficky omezenému obsahu.

SSH Port Forwarding jsou tři typy:

  1. Přesměrování místního portu
  2. Vzdálené přesměrování portů
  3. Dynamické přesměrování portů

Místní přesměrování

Lokální přesměrování je postup přesměrování portu z klientského počítače (místního klienta SSH) na vzdálený počítač (SSH server) a poté je spojení přesměrováno na jiný port cílového počítače.

SSH Client zkontroluje připojení na konkrétním daném portu a když obdrží požadavek na připojení, vytuneluje připojení ke konkrétnímu portu na vzdáleném SSH serveru. A pak se server připojí k jinému cílovému počítači na nakonfigurovaném portu.

Používá se hlavně pro připojení ke vzdálené službě v interní síti zvenčí jako databáze. Používá se také pro vzdálené sdílení souborů přes internet a přes skokové servery.

Jak nastavit místní přesměrování portů?

Vezměme si příklad, že vám brána firewall omezuje přístup k aplikaci běžící na vzdáleném serveru na portu 3000. Nyní předáme místní port (tj. 8080), abyste mohli přistupovat k aplikaci lokálně.

-L se používá ke konfiguraci Local port forwarding

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

Nebo

ssh -L [LOCAL_IP:]LOCAL_PORT:DESTINATION:DESTINATION_PORT [[email protected]]SSH_SERVER
  • [LOCAL_IP:]LOCAL_PORT – Číslo portu a IP adresa místního počítače. Lze použít libovolné číslo portu větší než 1024.
  • DESTINATION:DESTINATION_PORT – Port a IP adresa nebo název hostitele cílového počítače.
  • [[email protected]]SERVER_IP – Uživatelské jméno a IP adresa serveru vzdáleného uživatele ssh.

-f dá pokyn ssh ke spuštění na pozadí.

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

A -N dá pokyn, aby se dálkový příkaz neprováděl. [v tomto případě nedostanete shell.]

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

Nyní otevřete prohlížeč na svém místním počítači a můžete jednoduše použít localhost:8080 pro přístup ke vzdálené aplikaci místo toho, abyste k ní přistupovali pomocí adresy server.example.com:3000.

Vzdálené předávání

Vzdálené předávání portů je opakem přesměrování místního portu a umožňuje vám připojit se k místnímu počítači ze vzdáleného počítače. SSH ve výchozím nastavení nepodporuje vzdálené předávání portů. Takže to musíte povolit v konfiguračním souboru ssh.

Otevřete konfigurační soubor ssh v režimu úprav

sudo vim /etc/ssh/sshd_config 

Vyhledejte GatewayPorts a nastavte je jako yes.

GatewayPorts yes

Uložte změny, ukončete režim úprav a restartujte server.

sudo systemctl restart sshd

Nyní, když jste povolili vzdálené přesměrování portů. V otevřeném SSH používáme příkaz -R k nastavení vzdáleného přesměrování portů.

ssh -R [REMOTE:]REMOTE_PORT:DESTINATION:DESTINATION_PORT [[email protected]]SSH_SERVER
  • [REMOTE:]REMOTE_PORT – IP adresa a číslo portu vzdáleného serveru SSH.
  • DESTINATION:DESTINATION_PORT – Název hostitele a adresa IP cílového počítače.
  • [[email protected]]SERVER_IP – Vzdálené uživatelské jméno a IP adresa SSH.

Například:

ssh -R 8080:127.0.0.1:3000 -N -f [email protected]ote.host 

SSH server bude naslouchat na portu 8080 a tunelovat veškerý provoz z 8080 na port 3000 na vašem místním počítači

Nebo můžete použít následující příkaz k 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 protected] -R 5000:localhost:3000 

Vzdálené předávání portů se používá hlavně k tomu, aby někdo zvenčí získal přístup k interní službě.

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

Třetím a posledním typem přesměrování portů je Dynamic Port Forwarding. Lokální a vzdálené přesměrování portů vám umožňuje tunelovat a komunikovat s jediným portem, ale v dynamickém přesměrování portů můžete provozovat a komunikovat s řadou portů.

Vytvoří soket na místním počítači, který funguje jako SOCKS proxy server, nebo můžete říci Nastaví váš místní počítač jako SOCKS proxy server a ve výchozím nastavení naslouchá na portu 1080. Když se server připojí k tomuto portu, je přesměrován na vzdálený počítač, pak je předán na dynamický počítač na dynamickém portu.

Co je to SOCKS?

Je to internetový protokol, který definuje, jak se klientský počítač může připojit k serveru přes proxy.

Dynamické přesměrování portů můžeme povolit volbou -D. Pojďme pochopit přesměrování portů na příkladu-

ssh -D [LOCAL_IP:]LOCAL_PORT [[email protected]]SSH_SERVER
  • [LOCAL_IP:]LOCAL_PORT – IP adresa a číslo portu místního počítače.
  • [[email protected]]SERVER_IP – IP adresa a uživatelské jméno vzdáleného serveru.

Nebo tento příkaz spustí SOCKS proxy a umožní vám připojit se ke vzdálenému hostiteli.

ssh -f -N -D 1080 [email protected] 

Závěr

SSH Tunneling je užitečný způsob přenosu nešifrovaných dat přes šifrovaný tunel. K dispozici jsou tři možnosti a můžete si vybrat podle svých potřeb.


Linux
  1. Jak nastavit klíče SSH

  2. Jak nastavit klíče SSH na Ubuntu 18.04

  3. Jak nastavit ssh tunel pro předávání ssh?

  1. SSH na jiný port než 22:Jak na to (s příklady)

  2. Jak změnit port SSH v Linuxu

  3. Jak změnit port SSH v CentOS

  1. Jak používat SSH Port Forwarding

  2. Jak nastavit přihlášení k SSH bez hesla

  3. Jak nastavit klíče SSH na Debianu