GNU/Linux >> Znalost Linux >  >> Linux

Jak nastavit dynamické přesměrování portů SSH v systému Linux

Mnoho podniků používá pro přístup k kritickým obchodním systémům skokové servery přístupné pomocí Secure Shell (SSH). Správci se před připojením k cílovému systému nejprve připojí k skokovému serveru pomocí SSH, případně prostřednictvím VPN. Tato metoda obvykle funguje skvěle, pokud administrátor zůstane u správy z příkazového řádku. Je to trochu složitější, když se chce administrátor vymanit z oblasti příkazového řádku a místo toho použít webové rozhraní.

Podívejme se na následující scénář:Bob je správcem systému ve společnosti Securecorp a právě se mu zobrazilo upozornění, že databázový cluster se skládá z sirius.securecorp.io a orion.securecorp.io má špatný výkon. Pro počáteční analýzu obvykle používá webovou konzoli RHEL8. Firewall mu neumožňuje připojit se přímo k tomuto systému ze své pracovní stanice, ale může projít přes skokový server s názvem bastion.securecorp.io .

[ Mohlo by se vám také líbit: 6 základních příruček SSH pro správce systému ]

Přístup k databázovému clusteru z příkazového řádku SSH je přímočarý:

[bob@workstation ~]$ ssh bastion.securecorp.io
[bob@bastion ~]$ ssh sirius.securecorp.io
[bob@sirius ~]$
[bob@workstation ~]$ ssh bastion.securecorp.io
[bob@bastion ~]$ ssh orion.securecorp.io
[bob@orion ~]$

Ale co když chce Bob získat přístup k webové konzoli RHEL8 webu sirius.securecorp.io a orion.securecorp.io ? Existuje několik způsobů, jak tohoto cíle dosáhnout pomocí SSH, všechny zahrnují přesměrování portů.

Odmítnutí odpovědnosti :V některých organizacích zásady zabezpečení neumožňují přesměrování portů. Abyste se ujistili, že neporušíte žádná pravidla, poraďte se se svým zástupcem pro bezpečnost IT.

Přesměrování portu SSH

Bob pomocí SSH otevře TCP tunel pro oba systémy a ukáže na port webové konzoly (9090) pro sirius.securecorp.io a port 9091 pro orion.securecorp.io .

[bob@workstation ~]$ ssh -L 9090:sirius.securecorp.io:9090 bastion.securecorp.io
[bob@bastion ~]$
[bob@workstation ~]$ ssh -L 9091:orion.securecorp.io:9090 bastion.securecorp.io
[bob@bastion ~]$

Bob nyní může nasměrovat prohlížeč své místní pracovní stanice na https://localhost:9090 pro přístup k webové konzoli pro sirius.securecorp.io a https://localhost:9091 pro přístup k webové konzoli pro orion.securecorp.io .

Tento přístup může v určitých případech dobře fungovat, ale má svá omezení:

  • Ověření certifikátu TLS:Místní prohlížeč je nešťastný, protože ve většině případů se Common Name certifikátu neshoduje s názvem hostitele v adresním řádku (localhost), takže ověření certifikátu selže.
  • Přesměrování:Když vás web, na který přistupujete, přesměruje na jinou adresu URL, připojení se nezdaří, protože přesměrování portů je platné pouze pro přesně tento webový server. Tato situace může být problém například při použití jednotného přihlášení (SSO).

Spusťte prohlížeč na skokovém serveru

Bob by také měl spustit prohlížeč, jako je Firefox, na skokovém serveru a zobrazit jej lokálně na své pracovní stanici. SSH poskytuje funkci zvanou X forwarding, kterou lze v této situaci použít.

[bob@workstation ~]$ ssh -X bastion.securecorp.io
[bob@bastion ~]$ firefox https://sirius.securecorp.io:9090 &
[bob@bastion ~]$ firefox https://orion.securecorp.io:9090 &

Pomocí této metody běží proces prohlížeče na skokovém serveru a připojení k webovým konzolám sirius.securecorp.io a orion.securecorp.io jsou povoleny. Na Bobově pracovní stanici dojde pouze k vykreslení okna prohlížeče.

I když tento přístup řeší některé problémy prostého předávání portů SSH, má také omezení:

  • Výkon:Tato metoda obvykle funguje poměrně špatně, protože grafický výstup se musí přenášet ze serveru skoku na pracovní stanici přes síť, což je velmi neefektivní.
  • Předpoklady:Na skokovém serveru musí být nainstalován prohlížeč, jako je Firefox, a na pracovní stanici musí být spuštěn X server.

Zadejte dynamické přesměrování portů

Po prozkoumání předchozích dvou přístupů a zjištění jejich nevýhod by bylo skvělé mít třetí možnost, která nám přináší to nejlepší z obou světů:

  • Lze použít prohlížeč pracovní stanice.
  • Připojení a překlad názvů DNS by měl být stejný jako na serveru skoku.

K dosažení tohoto cíle poskytuje SSH funkci zvanou dynamické přesměrování portů , který využívá protokol SOCKS. V této konfiguraci SSH funguje jako SOCKS proxy, přenášející veškerý relevantní provoz přes SSH připojení. Aby k tomu došlo, klient (v našem příkladu je to prohlížeč) musí být vědomý SOCKS.

Bob může zahájit relaci SSH s dynamickým přesměrováním portů následovně:

[bob@workstation ~]$ ssh -D 1080 bastion.securecorp.io
[bob@bastion ~]$

Poté musí být prohlížeč na Bobově pracovní stanici upozorněn na SOCKS. Konfigurace Firefoxu může být provedena takto:

  • Nasměrujte prohlížeč na about:preferences.
  • V části Obecné přejděte v dolní části dolů a klikněte na Nastavení... v Nastavení sítě sekce.
  • V Nastavení připojení v okně vyberte Ruční konfigurace proxy , zadejte localhost pro Hostitele SOCKS , 1080 jako Port a vyberte SOCKS v5 .
  • Ve stejném okně vyberte možnost Proxy DNS při použití SOCKS v5 .

Bob nyní může nasměrovat prohlížeč na https://sirius.securecorp.io:9090 a https://orion.securecorp.io:9090 analyzovat výkonnostní problémy svých dvou databázových serverů pomocí webové konzole RHEL8. Může také přistupovat k jakýmkoli dalším interním zdrojům, jako by prohlížeč běžel na bastion.securecorp.io .

Poznámka :Port 1080 je registrovaný port IANA pro SOCKS, ale připojení může používat jakýkoli jiný port. Čísla v konfiguraci SSH a prohlížeče se musí shodovat.

Osobně se mi osvědčilo vytvořit samostatný profil prohlížeče, takže není nutné neustále přepínat mezi konfiguracemi proxy. Nový profil lze vytvořit předáním -P přepněte na firefox spusťte Správce profilů . Svůj profil jsem nazval Jump . Po vytvoření nového profilu se vytvoří prázdná konfigurace. V tomto profilu jsem použil konfiguraci, jak je popsáno výše, přičemž jsem ponechal svůj výchozí profil nedotčený.

Po vytvoření profilu lze Firefox spustit pomocí následujícího příkazu:

[bob@workstation ~]$ firefox -P Jump

Dalším užitečným tipem je vytvoření konfigurace specifické pro hostitele pro dynamické přesměrování portů ve vašem ~/.ssh/config soubor. Například:

[bob@workstation ~]$ cat ~/.ssh/config
Host bastion
  Hostname bastion.securecorp.io
  User bob
  DynamicForward 1080

[ Bezplatný kurz pro vás:Technický přehled virtualizace a migrace infrastruktury. ] 

Sbalit

Existuje mnoho způsobů, jak se připojit k interním systémům pomocí skokového serveru, a výše uvedené možnosti nejsou v žádném případě vyčerpávající. Podle mých zkušeností vám však SSH poskytuje velmi výkonnou sadu nástrojů, která je ve většině případů dostupná a připravená jít bez mnoha překážek. Dynamické přesměrování portů je jedním z těchto nástrojů a pomohlo mi to být produktivnější v konkrétních situacích, tak to prosím vyzkoušejte sami.


Linux
  1. Jak změnit port SSH v Linuxu

  2. Jak nastavit SSH tunelování

  3. Jak nastavit vlastní výstražný banner SSH nebo MOTD v Linuxu

  1. Jak povolit předávání IP v systému Linux

  2. Jak změnit port SSH na Lubuntu 20.04 Linux

  3. Jak přesměrovat ssh s AllowTcpForwarding nastaveným na ne?

  1. Jak nastavit tiskárnu v systému Linux

  2. Jak používat SSH Port Forwarding

  3. Jak nastavit Cron Job v Linuxu