Vyhledávání na webu

Jak nastavit SSH Jump Server v Linuxu


hostitel skoku (také známý jako server skoku) je zprostředkující hostitel nebo brána SSH do vzdálené sítě, přes kterou lze navázat spojení s jiným hostitelem v jiná bezpečnostní zóna, například demilitarizovaná zóna (DMZ). Přemosťuje dvě rozdílné bezpečnostní zóny a nabízí řízený přístup mezi nimi.

Hostitel skoku by měl být vysoce zabezpečený a monitorovaný, zejména pokud zahrnuje privátní síť a DMZ se servery poskytujícími služby uživatelům na internetu.

Klasickým scénářem je připojení z vašeho stolního počítače nebo notebooku z interní sítě vaší společnosti, která je vysoce zabezpečena firewally k DMZ. Abyste mohli snadno spravovat server v DMZ, můžete k němu přistupovat prostřednictvím přechodového hostitele.

Stručně řečeno, server SSH Jump je linuxový server, který se používá jako brána k jiným linuxovým serverům v privátní síti přes protokol SSH.

V tomto článku si ukážeme, jak přistupovat ke vzdálenému linuxovému serveru přes jump host, a také nakonfigurujeme potřebná nastavení v konfiguracích SSH klienta pro jednotlivé uživatele.

Nastavení serveru skoku SSH

Zvažte následující scénář.

Pro větší přehlednost je níže uvedeno jednoduché nastavení demonstrující roli serveru SSH Jump.

Důvody pro konfiguraci SSH Jump serveru

Server Jump poskytuje bránu do vaší infrastruktury a snižuje potenciální útok na vaše zdroje. Poskytuje také transparentní správu zařízení a také jediný přístupový bod k vašim zdrojům.

Mějte na paměti, že při začleňování skokového serveru do vaší infrastruktury zajistěte, aby byl server zesílený, jinak by bylo stejně dobré, jako byste jej nepoužívali. K tomu se vrátíme později v tomto tutoriálu.

Jak vytvořit jednoduchý SSH Jump Server

Pojďme se nyní zaměřit na to, jak můžete vytvořit jednoduchý SSH Jump server. Zde je naše jednoduché nastavení.

  • Původní IP: 105.68.76.85.
  • IP serveru skoku (budeme to nazývat skok hostitele): 173.82.232.55.
  • Cílová IP adresa (budeme ji nazývat host_destination): 173.82.227.89.

Ve výše uvedeném scénáři se chcete připojit k HOST 2 (173.82.227.89), ale musíte projít přes HOST 1 (173.82.232.55) kvůli firewallu, směrování a přístupová práva. Existuje řada platných důvodů, proč jsou hostitelé skoků potřeba.

Dynamic Jumphost List

Nejjednodušší způsob, jak se připojit k cílovému serveru přes jump host, je pomocí příznaků -A a -J z příkazového řádku. To řekne ssh, aby se připojilo k hostiteli skoku a poté vytvořilo přesměrování TCP na cílový server odtud (ujistěte se, že mezi počítači máte přihlášení SSH bez hesla).

ssh -A -J user@jump-server  user@destination server

Například v našem nastavení máme uživatele s názvem james nakonfigurován na Jump Server a tecmint na cílovém nebo cílovém systému.

Příkaz bude vypadat následovně z původní IP adresy.

ssh -A -J [email  [email 

Příkaz vás vyzve k zadání uživatelského hesla skokového serveru, následovaného heslem cílového systému, na základě kterého vám bude udělen přístup k cílovému systému.

Pokud se uživatelská jména nebo porty na počítačích liší, zadejte je na terminálu podle obrázku.

ssh -J username@host1:port username@host2:port	  

Seznam více Jumphosts

Stejnou syntaxi lze použít pro skoky přes více serverů.

ssh -J username@host1:port,username@host2:port username@host3:port

Seznam statických Jumphostů

Statický seznam jumphostů znamená, že znáte jumphost nebo jumphosts, které potřebujete k připojení počítače. Proto musíte do souboru ~/.ssh/config přidat následující statické jumphost ‚směrování‘ a zadat aliasy hostitele, jak je znázorněno.

### First jumphost. Directly reachable
Host vps1
  HostName vps1.example.org

### Host to jump to via jumphost1.example.org
Host contabo
  HostName contabo.example.org
  ProxyJump vps1

Nyní se pokuste připojit k cílovému serveru prostřednictvím hostitele skoku, jak je znázorněno.

ssh -J vps1 contabo

Druhou metodou je použití možnosti ProxyCommand k přidání konfigurace jumphost do vašeho ~.ssh/config nebo $HOME/. ssh/config, jak je znázorněno.

V tomto příkladu je cílovým hostitelem contabo a jumphost je vps1.

Host vps1
	HostName vps1.example.org
	IdentityFile ~/.ssh/vps1.pem
	User ec2-user

Host contabo
	HostName contabo.example.org	
	IdentityFile ~/.ssh/contabovps
	Port 22
	User admin	
	Proxy Command ssh -q -W %h:%p vps1

Uložte změny a ukončete soubor. Chcete-li použít změny, restartujte démona SSH.

sudo systemctl restart ssh

Pojďme prozkoumat možnosti použité v konfiguračním souboru:

  • -q – Zkratka pro tichý režim. Potlačuje varování a diagnostické zprávy.
  • -W – Požaduje, aby standardní vstup a výstup na klientovi byly předány HOST na PORT přes zabezpečený kanál.
  • %h – Určuje hostitele, ke kterému se chcete připojit.
  • %p – Specifikoval port, ke kterému se chcete připojit na vzdáleném hostiteli.

Chcete-li „přeskočit“ do cílového systému z vaší původní IP prostřednictvím serveru skoku, stačí spustit následující příkaz:

ssh contabo

Výše uvedený příkaz nejprve otevře ssh připojení k vps1 na pozadí ovlivněném ProxyCommand a poté spustí ssh relaci k cílovému serveru contabo silný>.

Zabezpečení serveru SSH Jump

Jedním ze způsobů, jak toto nastavení zabezpečit, je zkopírování veřejného klíče SSH z původního systému na Jump Server a nakonec do cílového systému a poté zakázání ověřování heslem. Podívejte se na našeho průvodce, jak povolit ověřování SSH bez hesla.

Kromě toho se podívejte na tipy na posílení serveru SSH.

Také se ujistěte, že na serveru Jump nejsou uložena žádná citlivá data, protože by to mohlo vést k úniku přístupových údajů, jako jsou uživatelská jména a hesla, což by mohlo vést k narušení celého systému.

Další informace najdete na manuálové stránce ssh nebo na: OpenSSH/Cookbxook/Proxy and Jump Hosts.

To je prozatím vše! V tomto článku jsme si ukázali, jak přistupovat ke vzdálenému serveru prostřednictvím skokového hostitele. Pomocí formuláře pro zpětnou vazbu níže můžete položit jakékoli otázky nebo se s námi podělit o své myšlenky.