Jak korzystać z tunelowania SSH lub przekierowywania portów

Jak korzystać z tunelowania SSH lub przekierowywania portów
Tworzenie bezpiecznego połączenia między lokalnym hostem a zdalnym hostem nazywa się tunelingiem SSH lub przekazywanie portów. Wszystkie połączenia wykonane przez tuneling SSH są szyfrowane. Ta funkcja SSH jest przydatna do wielu celów, takich jak bezpieczne zarządzanie bazą danych serwera ograniczonego, wdrażanie podstawowej VPN (wirtualna sieć prywatna), korzystając z różnych usług bez otwierania portu w zaporze itp. Przekazywanie portów SSH można wykonać na trzy różne sposoby. Są to lokalne przekazywanie portów, przekazywanie portów zdalnych i przekazywanie portów dynamicznych. Sposoby korzystania z tunelowania SSH lub przekazywania portów zostały wyjaśnione w tym samouczku.

Wymagania wstępne

Przed rozpoczęciem kroków w tym samouczku konieczne będą następujące kroki do ukończenia.

A. Włącz usługę SSH na Ubuntu, jeśli nie jest ona wcześniej włączona.

B. Wygeneruj pary kluczy SSH, aby wykonać polecenia na zdalnym serwerze. Uruchom następujące polecenie, aby utworzyć klucz publiczny i klucz prywatny. Klucz prywatny będzie przechowywany na zdalnym serwerze, a klucze publiczne będą bezpiecznie przechowywane w kliencie.

$ ssh -keygen -t rsa

C. Uruchom następujące polecenie, aby otworzyć sshd_config Plik za pomocą nano edytora, aby dodać niezbędne konfiguracje.

$ sudo nano/etc/ssh/sshd_config

Dodaj następujące wiersze w pliku, aby włączyć logowanie root i uwierzytelnianie oparte na hasłach.

HasłoAuthentication Tak
Pertrootlogin Tak

D. Uruchom następujące polecenie, aby ponownie uruchomić usługę SSH.

$ sudo service ssh restart

Lokalne przekazywanie portów

Służy do przekazywania portu z komputera klienckiego do portu komputera serwerowego, a następnie, który zostanie przekazany do komputera docelowego. Maszyna kliencka słucha w danym porcie i tunels połączenie z tego portu do konkretnego portu komputera serwerowego w tego typu przekazywanie. Tutaj maszyną docelową może być dowolny zdalny serwer lub inny komputer. To przekazywanie jest używane głównie na serwerze sieci wewnętrznej, takiej jak VNC (Virtual Network Computing).

Zdalne przekazywanie portów

Przeciwieństwem lokalnego przekazywania portów jest odległe przekazywanie portów. Służy do przekazywania portu z komputera serwerowego do portu komputera klienta, a następnie, który zostanie przekazany do komputera docelowego. Maszyna serwera słucha w danym porcie i tunels połączenie z tego portu do konkretnego portu komputera klienckiego w tego typu przekazywanie. Tutaj maszyną docelową może być dowolna maszyna lokalna lub inna maszyna.

Dynamiczne przekazywanie portów

Służy do tworzenia gniazda na komputerze klienckim, które będzie działać jako serwer proxy Socks, a gdy klient połączy się z portem, połączenie zostanie przekazane do komputera serwerowego. Następnie przejdzie do dynamicznego portu komputera docelowego. Aplikacje korzystające z Proxy Socks połączą się z komputerem serwerowym, który przekazuje handel do komputera docelowego.

Przykłady tunelowania SSH lub przekazywania portów

Przykłady tunelowania i przekazywania portów SSH zostały tutaj pokazane przy użyciu dwóch lokalnych kont serwerowych. Możesz postępować zgodnie z tym samym procesem dla zdalnego serwera. Tutaj nazwa użytkownika komputera serwerowego to „Fahmida”, a nazwa użytkownika komputera klienta to „Yasmin. Trzy rodzaje przekazywania portów SSH zostały tutaj pokazane przez trzy przykłady.

A. Uzyskaj dostęp do zdalnych zasobów z komputera klienta
Zasoby zdalnego urządzenia można uzyskać z komputera klienckiego za pomocą lokalnego przekazywania portów. Zwykle łączy się z serwerem SSH, ale w tym przypadku musisz użyć opcji -l z poleceniem SSH, definiując port lokalny, adres zdalny i zdalny port. Składnia lokalnego przekazywania portów podano poniżej.

SSH -l Local_port: Remote_address: Remote_port Nazwa uż[email protected]

Załóżmy, że lokalny numer portu to 8080, Adres IP zdalnego serwera to 10.0.2.15, a zdalny numer portu to 80. Uruchom następujące polecenie, aby połączyć się z komputerem serwerowym za pomocą przesyłania portów lokalnych. Tutaj nazwa hosta zdalnego maszyny to „Fahmida.com.Bd.'

$ ssh -l 8080: 10.0.2.15:80 [email protected]

Po połączeniu z zdalnym komputerem użytkownik komputera klient. Plik tekstowy o nazwie dziennik.tekst istnieje w zdalnej maszynie. Teraz uruchom następujące polecenie z komputera klienta, aby odczytać zawartość pliku po zalogowaniu się do zdalnego komputera.

$ CAT LOG.tekst

Uruchom następujące polecenia, aby wylogować się z zdalnego urządzenia.

$ exit

Następujące podobne dane wyjściowe pojawią się po wykonaniu powyższych poleceń. Wyjście pokazuje zawartość pliku tekstowego z zdalnego komputera i następnego logowania z zdalnego urządzenia.

B. Uzyskaj dostęp do lokalnych zasobów z komputera serwerowego
Zasoby komputera lokalnego można uzyskać z komputera serwerowego za pomocą zdalnego przekazywania portów. Zwykle łączy się z serwerem SSH, ale w tym przypadku musisz użyć opcji -r z poleceniem SSH, definiując port zdalny, adres lokalny i lokalny port. Składnia przekierowania portu zdalnego podano poniżej.

ssh -r remote_port: local_address: local_port nazwa uż[email protected]

Załóżmy, że zdalny numer portu to 22, nazwa hosta lokalnego serwera to Lokalny Gospodarz, A lokalny numer portu to 2345. Uruchom następujące polecenie, aby połączyć się z komputerem serwerowym za pomocą zdalnego przekazywania portów. Tutaj nazwa hosta zdalnego maszyny to „Fahmida.com.Bd.'

$ ssh -r 22: Localhost: 2345 [email protected]

Po połączeniu z zdalnym komputerem użytkownik zdalnego komputera uzyska dostęp do dowolnej zawartości z zdalnego komputera pokazanego tutaj. Plik tekstowy o nazwie produkty.tekst istnieje w katalogu domowym komputera klienta. Teraz uruchom następujące polecenie po połączeniu z zdalnym komputerem, aby odczytać zawartość pliku lokalnego.

$ cat/home/yesmin/produkty.tekst
Uruchom następujące polecenia, aby wylogować się z zdalnego urządzenia.
[cc lang = "text" szerokie = "100%" height = "100%" uciekł = "true" motyw = "blackboard" nowrapt = "0"]
$ exit

Następujące podobne dane wyjściowe pojawią się po wykonaniu powyższych poleceń. Dane wyjściowe pokazuje zawartość pliku tekstowego z komputera klienta i następnego wylogowania z zdalnego urządzenia.

C. Korzystanie z serwera SSH jako serwera proxy
Dynamiczne przekazywanie portów służy głównie do dostępu do konkretnego zastosowania sieci wewnętrznej za pomocą proxy Socks. Opcja -D jest używana z poleceniem SSH do dynamicznego przekazywania portów. Składnia dynamicznego przekazywania portów podano poniżej.

ssh -d local_port nazwa uż[email protected]

Załóżmy, że lokalny numer portu to 5050. Uruchom następujące polecenie, aby otworzyć proxy Socks w porcie 5050. Teraz użytkownik może skonfigurować dowolną przeglądarkę lub aplikację do korzystania z lokalnego adresu IP i portu 5050 do przekierowania całego ruchu przez tunel.

$ ssh -d 5050 [email protected]

Wniosek

W tym samouczku opisano trzy różne sposoby przekazywania portów SSH, aby pomóc czytelnikom zrozumieć koncepcję tunelowania SSH lub przekazywanie portów.