how to setup ssh tunel (port forwording) in linux using sshreahme
Spisu treści:
- Lokalne przekierowanie portów
- Zdalne przekierowanie portów
- Dynamiczne przekierowywanie portów
- Skonfiguruj tunelowanie SSH w systemie Windows
- Wniosek
Tunelowanie SSH lub przekierowywanie portów SSH to metoda tworzenia szyfrowanego połączenia SSH między klientem a maszyną serwerową, za pośrednictwem której można przekazywać porty usług.
Przekazywanie SSH jest przydatne do przesyłania danych sieciowych usług wykorzystujących niezaszyfrowany protokół, takich jak VNC lub FTP, uzyskiwania dostępu do treści ograniczonych geograficznie lub omijania pośrednich zapór ogniowych. Zasadniczo możesz przekazać dowolny port TCP i tunelować ruch przez bezpieczne połączenie SSH.
Istnieją trzy typy przekierowania portów SSH:
- Lokalne przekierowanie portów. - Przekazuje połączenie z hosta klienta do hosta serwera SSH, a następnie do docelowego portu hosta. - Przesyła port z hosta serwera do hosta klienta, a następnie do docelowego portu hosta. Dynamiczne przekazywanie portów. - Tworzy serwer proxy SOCKS, który umożliwia komunikację przez szereg portów.
, porozmawiamy o tym, jak skonfigurować lokalne, zdalne i dynamicznie szyfrowane tunele SSH.
Lokalne przekierowanie portów
Lokalne przekierowanie portów umożliwia przekierowanie portu na lokalnym komputerze (kliencie ssh) do portu na zdalnym komputerze (serwerze ssh), który jest następnie przekierowywany do portu na komputerze docelowym.
W tego rodzaju przekazywaniu klient SSH nasłuchuje na danym porcie i tuneluje każde połączenie z tym portem do określonego portu na zdalnym serwerze SSH, który następnie łączy się z portem na komputerze docelowym. Komputer docelowy może być zdalnym serwerem SSH lub dowolnym innym komputerem.
Lokalne przekierowanie portów jest najczęściej używane do łączenia się ze zdalną usługą w sieci wewnętrznej, takiej jak baza danych lub serwer VNC.
W systemie Linux, macOS i innych systemach Unix w celu utworzenia lokalnego przekierowania portów przekaż opcję
-L
do klienta
ssh
:
ssh -L LOCAL_PORT:DESTINATION:DESTINATION_PORT SSH_SERVER
Dostępne opcje są następujące:
-
LOCAL_PORT
- numer IP i numer portu lokalnego komputera. PoLOCAL_IP
klient ssh łączy się zLOCAL_IP
lokalnym.DESTINATION:DESTINATION_PORT
- adres IP lub nazwa hosta i port komputera docelowego.SERVER_IP
- zdalny użytkownik SSH i adres IP serwera.
Możesz użyć dowolnego numeru portu większego niż
1024
jako
LOCAL_PORT
. Porty o numerach mniejszych niż
1024
są portami uprzywilejowanymi i mogą być używane tylko przez root. Jeśli serwer SSH nasłuchuje na porcie innym niż 22 (domyślnie), użyj opcji
-p
.
Docelowa nazwa hosta musi być rozpoznawalna z serwera SSH.
Załóżmy, że masz serwer bazy danych MySQL uruchomiony na komputerze
db001.host
w sieci wewnętrznej (prywatnej), na porcie 3306, który jest dostępny z komputera
pub001.host
i chcesz połączyć się za pomocą lokalnego klienta
mysql
z serwerem bazy danych. Aby to zrobić, możesz przekazać połączenie w następujący sposób:
ssh -L 3336:db001.host:3306 [email protected]
Po uruchomieniu polecenia pojawi się monit o wprowadzenie hasła użytkownika zdalnego SSH. Po wejściu do niego zostaniesz zalogowany na zdalnym serwerze i zostanie utworzony tunel SSH. Dobrym pomysłem jest skonfigurowanie uwierzytelniania opartego na kluczu SSH i połączenie się z serwerem bez podawania hasła.
Teraz, jeśli
db001.host:3306
klientowi bazy danych komputera lokalnego na
127.0.0.1:3336
, połączenie zostanie przesłane do serwera MySQL
db001.host:3306
za
pub001.host
komputera
pub001.host
, który będzie działał jako serwer pośredni.
Możesz przekazać wiele portów do wielu miejsc docelowych za pomocą jednego polecenia ssh. Na przykład masz inny serwer bazy danych MySQL uruchomiony na komputerze
db002.host
i chcesz połączyć się z obydwoma serwerami za pomocą klienta lokalnego, który uruchomisz:
ssh -L 3336:db001.host:3306 3337:db002.host:3306 [email protected]
Aby połączyć się z drugim serwerem, użyj
127.0.0.1:3337
.
Jeśli host docelowy jest taki sam jak serwer SSH, zamiast określać adres IP hosta docelowego lub nazwę hosta, możesz użyć
localhost
.
Powiedz, że musisz połączyć się ze zdalną maszyną za pośrednictwem VNC, który działa na tym samym serwerze i nie jest dostępny z zewnątrz. Polecenie, którego użyjesz to:
ssh -L 5901:127.0.0.1:5901 -N -f [email protected]
Opcja
-f
informuje komendę
ssh
aby działała w tle, a opcja
-N
nie wykonywała komendy zdalnej. Używamy
localhost
ponieważ VNC i serwer SSH działają na tym samym hoście.
Zdalne przekierowanie portów
Zdalne przekierowanie portów jest przeciwieństwem lokalnego przekierowania portów. Umożliwia przekierowanie portu na zdalnym komputerze (serwerze ssh) do portu na komputerze lokalnym (kliencie ssh), który jest następnie przesyłany do portu na komputerze docelowym.
W przypadku tego typu przekazywania serwer SSH nasłuchuje na danym porcie i tuneluje każde połączenie z tym portem do określonego portu na lokalnym kliencie SSH, który następnie łączy się z portem na komputerze docelowym. Komputer docelowy może być komputerem lokalnym lub dowolnym innym.
W systemie Linux, macOS i innych systemach Unix, aby utworzyć zdalne przekierowanie portów, przekaż opcję
-R
do klienta
ssh
:
ssh -R REMOTE_PORT:DESTINATION:DESTINATION_PORT SSH_SERVER
Dostępne opcje są następujące:
-
REMOTE_PORT
- adres IP i numer portu na zdalnym serwerze SSH. PustyREMOTE
oznacza, że zdalny serwer SSH będzie się wiązał na wszystkich interfejsach.DESTINATION:DESTINATION_PORT
- adres IP lub nazwa hosta i port komputera docelowego.SERVER_IP
- zdalny użytkownik SSH i adres IP serwera.
Lokalne przekierowanie portów jest najczęściej używane do zapewnienia dostępu do usługi wewnętrznej komuś z zewnątrz.
Załóżmy, że tworzysz aplikację internetową na komputerze lokalnym i chcesz pokazać podgląd programistom. Nie masz publicznego adresu IP, więc inny programista nie może uzyskać dostępu do aplikacji przez Internet.
ssh -L 8080:127.0.0.1:3000 -N -f [email protected]
Powyższe polecenie spowoduje, że serwer ssh będzie nasłuchiwał na porcie
8080
i tunelował cały ruch z tego portu do komputera lokalnego na porcie
3000
.
Teraz twój inny programista może wpisać w swojej przeglądarce
the_ssh_server_ip:8080
i wyświetlić podgląd swojej niesamowitej aplikacji.
Dynamiczne przekierowywanie portów
Dynamiczne przekierowywanie portów umożliwia utworzenie gniazda na komputerze lokalnym (kliencie ssh), który działa jak serwer proxy SOCKS. Gdy klient łączy się z tym portem, połączenie jest przekazywane do zdalnego komputera (serwera ssh), który jest następnie przesyłany do dynamicznego portu na komputerze docelowym.
W ten sposób wszystkie aplikacje korzystające z serwera proxy SOCKS połączą się z serwerem SSH, a serwer przekaże cały ruch do miejsca docelowego.
W systemie Linux, macOS i innych systemach uniksowych w celu utworzenia dynamicznego przekierowania portów (SOCKS) przekaż opcję
-D
klientowi
ssh
:
ssh -D LOCAL_PORT SSH_SERVER
Dostępne opcje są następujące:
-
LOCAL_PORT
- numer IP i numer portu lokalnego komputera. PoLOCAL_IP
klient ssh łączy się zLOCAL_IP
lokalnym.SERVER_IP
- zdalny użytkownik SSH i adres IP serwera.
Typowym przykładem dynamicznego przekierowywania portów jest tunelowanie ruchu przeglądarki internetowej przez serwer SSH.
Następujące polecenie utworzy tunel SOCKS na porcie
9090
:
ssh -D 9090 -N -f [email protected]
Po ustanowieniu tunelowania możesz skonfigurować aplikację, aby z niego korzystała. W tym artykule wyjaśniono, jak skonfigurować przeglądarki Firefox i Google Chrome, aby korzystały z serwera proxy SOCKS.
Przekierowanie portów musi być skonfigurowane osobno dla każdej aplikacji, która ma tunelować ruch.
Skonfiguruj tunelowanie SSH w systemie Windows
Użytkownicy systemu Windows mogą tworzyć tunele SSH za pomocą klienta PuTTY SSH. Możesz pobrać PuTTY tutaj.
-
Uruchom Putty i wprowadź adres IP serwera SSH w polu
Host name (or IP address)
.Pojawi się nowe okno z prośbą o podanie nazwy użytkownika i hasła. Po wprowadzeniu nazwy użytkownika i hasła nastąpi zalogowanie na serwerze i uruchomienie tunelu SSH.
Skonfigurowanie uwierzytelniania za pomocą klucza publicznego pozwoli ci połączyć się z serwerem bez podawania hasła.
Wniosek
Pokazaliśmy, jak skonfigurować tunele SSH i przekazywać ruch przez bezpieczne połączenie SSH. Dla ułatwienia możesz zdefiniować tunel SSH w pliku konfiguracyjnym SSH lub utworzyć alias Bash, który skonfiguruje tunel SSH.
bezpieczeństwo sshJak skonfigurować, skonfigurować, używać Kontroli rodzicielskiej w Windows 7
Dowiedz się, jak włączyć, wyłączyć, skonfigurować i używać funkcji Kontroli rodzicielskiej w systemie Windows 7 do monitorowania i kontrolowania aktywności internetowych dzieci.
Jak skonfigurować i skonfigurować ustawienia routera Zapora
Dowiedz się, jak skonfigurować zaporę routera, uzyskać dostęp do strony routera sprzętowego, skonfigurować ustawienia zapory routera. Sprawdź, które porty są niezbędne na komputerze.
Jak skonfigurować tunelowanie ssh, aby ominąć zaporę
Zapora ogniowa jest dobrą rzeczą, ale jeśli powstrzymuje cię przed zrobieniem czegoś, tunelowanie SSH jest dobrym rozwiązaniem do zbadania.