Tunelowanie SSH
Kategoria: FAQ, etykiety: sieć
Dodany: 2009-08-02 23:53
(zmodyfikowany: 2013-12-23 23:07)
Przez: bercik
Wyświetleń: 17699
Jak uzyskać bezpieczny na przykład dostęp do serwera WWW dostępnego tylko w sieci lokalnej z zewnątrz.
Możliwości SSH nie kończą się na udostępnieniu zdalnego shella i możliwości bezpiecznego przesyłu plików, umożliwia on także zdalny dostęp do programów działających w trybie graficznym. Wymaga to jednak włączenia opcji przekazywania protokołu X (w przypadku ssh z linii poleceń opcja -X) oraz działającego na maszynie z której się łączymy serwera X (na maszynie docelowej takiego serwera może nie być w ogóle — muszą być tylko stosowne biblioteki oraz program który chcemy odpalić). Po uzyskaniu połączenia shellowego z włączoną opcją przekazywania X, programy graficzne odpala się tak jak każdy inny program.
SSH umożliwia także tworzenie tuneli przekierowujących połączenia TCP na zadany port komputera z którego wykonujemy połączenie ssh do określonego adresu IP (wraz z portem) dostępnego z maszyny (serwera ssh), do której się łączymy (może być to np. prywatny adres IP dostępny tylko wewnątrz LAN-u):
ssh -L lokalny_port:mapowany_adres_ip:mapowany_port uzytkownik@serwer_ssh
Możliwe jest też tunelowanie w drugą stronę:
ssh -R mapowany_port_serwera:adres_ip:port uzytkownik@serwer_ssh
co umożliwia utworzenie (na serwerze ssh) portu nasłuchującego, który umożliwi połączenie do komputera (z którego zestawiony został tunel) do którego może nie być bezpośredniego dostępu (np. za firewallem); należy tutaj zaznaczyć iż domyślnie nasłuchiwanie na zadanym porcie odbywa się tylko lokalnie aby to zmienić należy przed tym portem określić adres nasłuchiwania (lub * dla wszystkich), aby było to skuteczne musi być włączona w konfiguracji serwera opcja "GatewayPorts". Umożliwia to także proste tworzenie swego rodzaju sieci VPN o bardzo dobrym zabezpieczeniu.