Seminář IPv6 2017 – Ondřej Caletka – BCOP aneb jak nejlépe IPv6 nasazovat
Obsah:
- Přesměrování místních portů
- Vzdálené předávání portů
- Dynamické předávání portů
- Nastavte SSH Tunneling ve Windows
- Závěr
Tunelování SSH nebo předávání portů SSH je metoda vytváření šifrovaného spojení SSH mezi klientem a serverovým strojem, prostřednictvím kterého lze přenášet porty služeb.
Předávání SSH je užitečné pro přenos síťových dat služeb, které používají nešifrovaný protokol, jako je VNC nebo FTP, pro přístup k obsahu s omezeným přístupem nebo obcházení přechodných bran firewall. V zásadě můžete přesměrovat libovolný port TCP a tunelovat provoz prostřednictvím zabezpečeného připojení SSH.
Existují tři typy předávání portů SSH:
- Přesměrování místních portů. - Přeposílá spojení z hostitele klienta k hostiteli serveru SSH a poté k cílovému portu hostitele. - Přeposílá port z hostitele serveru na hostitele klienta a poté do cílového portu hostitele.Dynamické předávání portů. - Vytvoří proxy server SOCKS, který umožňuje komunikaci přes řadu portů.
, budeme hovořit o tom, jak nastavit místní, vzdálené a dynamické šifrované tunely SSH.
Přesměrování místních portů
Lokální přeposílání portů umožňuje přeposlat port na lokálním (ssh klientském) počítači na port na vzdáleném (ssh server) stroji, který je pak přeposlán na port na cílovém počítači.
Při tomto typu předávání poslouchá klient SSH na daném portu a tuneluje jakékoli připojení k tomuto portu na určený port na vzdáleném serveru SSH, který se poté připojí k portu na cílovém počítači. Cílovým strojem může být vzdálený server SSH nebo jakýkoli jiný stroj.
Lokální předávání portů se většinou používá pro připojení ke vzdálené službě v interní síti, jako je například databáze nebo server VNC.
V Linuxu, macOS a dalších unixových systémech pro vytvoření lokálního předávání portů předejte volbu
-L
klientovi
ssh
:
ssh -L LOCAL_PORT:DESTINATION:DESTINATION_PORT SSH_SERVER
Používané možnosti jsou následující:
-
LOCAL_PORT
- ip lokálního počítače a číslo portu. Když jeLOCAL_IP
vynechán, ssh klient se váže na localhost.DESTINATION:DESTINATION_PORT
- IP nebo název hostitele a port cílového počítače.SERVER_IP
- IP adresa vzdáleného uživatele a serveru SSH.
Jako
LOCAL_PORT
můžete použít libovolné číslo portu větší než
1024
. Čísla portů menší než
1024
jsou privilegované porty a mohou být použity pouze rootem. Pokud váš server SSH poslouchá na jiném portu než 22 (výchozí), použijte volbu
-p
.
Cílový název hostitele musí být rozlišitelný ze serveru SSH.
Řekněme, že máte databázový server MySQL spuštěný na stroji
db001.host
na interní (soukromé) síti, na portu 3306, který je přístupný z počítače
pub001.host
a chcete se připojit pomocí místního počítače
mysql
k databázovému serveru. Chcete-li tak učinit, můžete předat připojení následujícím způsobem:
ssh -L 3336:db001.host:3306 [email protected]
Po spuštění příkazu budete vyzváni k zadání hesla uživatele vzdáleného SSH. Po jeho zadání budete přihlášeni ke vzdálenému serveru a bude vytvořen tunel SSH. Je vhodné nastavit autentizaci pomocí klíče SSH a připojit se k serveru bez zadání hesla.
Nyní, pokud
db001.host:3306
svého databázového klienta místního počítače na
127.0.0.1:3336
, bude připojení přesměrováno na server MySQL
db001.host:3306
prostřednictvím počítače
pub001.host
který bude fungovat jako přechodný server.
Jediným příkazem ssh můžete přesměrovat více portů na více cílů. Například máte na počítači
db002.host
spuštěn další databázový server MySQL a chcete se připojit k oběma serverům prostřednictvím místního klienta, kterého byste spustili:
ssh -L 3336:db001.host:3306 3337:db002.host:3306 [email protected]
Pro připojení k druhému serveru byste použili
127.0.0.1:3337
.
Pokud je cílový hostitel stejný jako server SSH místo určení cílové IP hostitele nebo názvu hostitele, můžete použít
localhost
.
Řekněme, že se musíte připojit ke vzdálenému počítači prostřednictvím VNC, který běží na stejném serveru a není přístupný zvnějšku. Příkaz, který byste použili, je:
ssh -L 5901:127.0.0.1:5901 -N -f [email protected]
Volba
-f
říká příkazu
ssh
aby se spouštěl na pozadí, a aby neprovedl vzdálený příkaz. Používáme
localhost
protože VNC a SSH server běží na stejném hostiteli.
Vzdálené předávání portů
Vzdálené přeposílání portů je opakem předávání lokálních portů. Umožňuje předat port na vzdáleném počítači (ssh server) na port na místním počítači (ssh klient), který je poté přeposlán na port na cílovém počítači.
V tomto typu předávání server SSH poslouchá na daném portu a tuneluje jakékoli připojení k tomuto portu na určený port v místním klientovi SSH, který se poté připojí k portu v cílovém počítači. Cílovým strojem může být místní nebo jakýkoli jiný stroj.
V Linuxu, macOS a dalších unixových systémech pro vytvoření vzdáleného předávání portů předejte možnost
-R
ssh
klientovi:
ssh -R REMOTE_PORT:DESTINATION:DESTINATION_PORT SSH_SERVER
Používané možnosti jsou následující:
-
REMOTE_PORT
- IP a číslo portu na vzdáleném SSH serveru. PrázdnýREMOTE
znamená, že vzdálený server SSH se naváže na všechna rozhraní.DESTINATION:DESTINATION_PORT
- IP nebo název hostitele a port cílového počítače.SERVER_IP
- IP adresa vzdáleného uživatele a serveru SSH.
Lokální přesměrování portů se většinou používá k poskytnutí přístupu k interní službě někomu zvnějšku.
Řekněme, že vyvíjíte webovou aplikaci na místním počítači a chcete ukázat náhled svému kolegovi vývojáři. Nemáte veřejnou IP, takže druhý vývojář nemá přístup k aplikaci přes internet.
ssh -L 8080:127.0.0.1:3000 -N -f [email protected]
Výše uvedený příkaz způsobí, že server ssh poslouchá na portu
8080
a naladí veškerý provoz z tohoto portu na místní počítač na portu
3000
.
Nyní váš partnerský vývojář může do svého prohlížeče zadat
the_ssh_server_ip:8080
a zobrazit náhled své úžasné aplikace.
Dynamické předávání portů
Dynamické předávání portů vám umožňuje vytvořit soket na místním (ssh klientském) počítači, který funguje jako proxy server SOCKS. Když se klient připojí k tomuto portu, je připojení přeposláno na vzdálený (ssh server) stroj, který je pak přeposlán na dynamický port na cílovém počítači.
Tímto způsobem se všechny aplikace používající proxy serveru SOCKS připojí k serveru SSH a server přesměruje veškerý provoz do svého skutečného cíle.
V Linuxu, macOS a dalších Unixových systémech pro vytvoření dynamického předávání portů (SOCKS) předejte volbu
-D
klientovi
ssh
:
ssh -D LOCAL_PORT SSH_SERVER
Používané možnosti jsou následující:
-
LOCAL_PORT
- ip lokálního počítače a číslo portu. Když jeLOCAL_IP
vynechán, ssh klient se váže na localhost.SERVER_IP
- IP adresa vzdáleného uživatele a serveru SSH.
Typickým příkladem dynamického předávání portů je vyladění provozu webového prohlížeče prostřednictvím serveru SSH.
Následující příkaz vytvoří tunel SOCKS na portu
9090
:
ssh -D 9090 -N -f [email protected]
Po vytvoření tunelování můžete nakonfigurovat aplikaci tak, aby ji používala. Tento článek vysvětluje, jak nakonfigurovat prohlížeče Firefox a Google Chrome pro použití proxy serveru SOCKS.
Předávání portů musí být nakonfigurováno samostatně pro každou aplikaci, kterou chcete tunel provozovat.
Nastavte SSH Tunneling ve Windows
Uživatelé Windows mohou vytvářet tunely SSH pomocí klienta PuTTY SSH. Zde si můžete stáhnout PuTTY.
-
Spusťte Putty a do pole
Host name (or IP address)
zadejte IP adresu serveru SSH.Zobrazí se nové okno s požadavkem na uživatelské jméno a heslo. Po zadání uživatelského jména a hesla budete přihlášeni k serveru a bude spuštěn tunel SSH.
Nastavení ověřování pomocí veřejného klíče vám umožní připojit se k serveru bez zadání hesla.
Závěr
Ukázali jsme vám, jak nastavit tunely SSH a předat provoz pomocí zabezpečeného připojení SSH. Pro snadné použití můžete v konfiguračním souboru SSH definovat tunel SSH nebo vytvořit alias Bash, který vytvoří tunel SSH.
ssh zabezpečeníJak nastavit ssh tunneling obejít firewall

Firewall je dobrá věc, ale pokud vám brání v tom, abyste něco dělali, pak je tu nejlepší možnost prozkoumat SSH Tunneling.
Jak změnit ssh port v Linuxu

Ve výchozím nastavení poslouchá SSH na portu 22. Změna výchozího portu SSH přidává na server další vrstvu zabezpečení snížením rizika automatických útoků. Tento tutoriál vysvětluje, jak změnit výchozí port SSH v systému Linux.
Jak nastavit heslo bez ssh přihlášení

V tomto článku vám ukážeme, jak nastavit autentizaci pomocí klíče SSH a připojit se k serverům Linux bez zadání hesla.