Jak utworzyć tunelowanie SSH lub przekazywanie portów w Linux

Jak utworzyć tunelowanie SSH lub przekazywanie portów w Linux

Tunelowanie ssh (zwane także przekazywaniem portu SSH) po prostu kieruje ruch sieci lokalnej za pośrednictwem SSH do zdalnych hostów. Oznacza to, że wszystkie twoje połączenia są zabezpieczone za pomocą szyfrowania. Zapewnia łatwy sposób konfiguracji podstawowego VPN (Wirtualnej sieci prywatnej), Przydatny do łączenia się z prywatnymi sieciami nad niezabezpieczonymi sieciami publicznymi, takimi jak Internet.

Możesz być również wykorzystywany do ujawnienia lokalnych serwerów za NATS i zaporami ogniowymi do Internetu przez bezpieczne tunele, jak zaimplementowano w Ngrok.

[Możesz także polubił: Jak zabezpieczyć i utwardzić serwer OpenSsh]

Ssh Sesje domyślnie pozwalają na połączenia sieciowe tunelowe i istnieją trzy typy przekazywania portów SSH: lokalny, zdalny I dynamiczny Przekazywanie portów.

W tym artykule pokażemy, jak szybko i łatwo skonfigurować tunelowanie SSH lub różne typy przekazywania portów w Linux.

Środowisko testowe:

Do celów tego artykułu używamy następującej konfiguracji:

  1. Lokalny Gospodarz: 192.168.43.31
  2. Zdalny host: Linode Centos 7 VPS z nazwą hosta serwer 1.przykład.com.

Zwykle możesz bezpiecznie połączyć się ze zdalnym serwerem za pomocą SSH w następujący sposób. W tym przykładzie skonfigurowałem login SSH bez hasła między moimi lokalnymi i zdalnymi hostami, więc nie poprosił o hasło administratora użytkownika.

$ ssh [chroniony e -mail] 
Połącz zdalny SSH bez hasła

Lokalne przekazywanie portów SSH

Ten typ przekierowania portów pozwala podłączyć z komputera lokalnego do zdalnego serwera. Zakładając, że jesteś za restrykcyjną zaporą lub zablokowaną przez wychodzącą zaporę zaporową dostępu do aplikacji działającej na porcie 3000 na zdalnym serwerze.

Możesz przekazać lokalny port (e.G 8080), którego możesz użyć, aby uzyskać dostęp do aplikacji lokalnie w następujący sposób. -L Flaga definiuje port przekazany do zdalnego hosta i zdalnego portu.

$ ssh [chroniony e -mail] -L 8080: serwer1.przykład.com: 3000 

Dodanie -N Flaga oznacza, że ​​nie wykonuj zdalnego polecenia, w tym przypadku nie otrzymasz powłoki.

$ ssh -n [chroniony e -mail] -L 8080: serwer1.przykład.com: 3000 

-F Switch instruuje SSH, aby działał w tle.

$ ssh -f -n [chroniony e -mail] -L 8080: serwer1.przykład.com: 3000 

Teraz na komputerze lokalnym otwórz przeglądarkę, zamiast uzyskiwać dostęp do zdalnej aplikacji za pomocą adresu serwer 1.przykład.com: 3000, możesz po prostu użyć Localhost: 8080 Lub 192.168.43.31: 8080, jak pokazano na zrzucie ekranu poniżej.

Uzyskaj dostęp do aplikacji zdalnej za pośrednictwem lokalnego przekazywania portów SSH

Zdalne przekazywanie portów SSH

Zdalne przekazywanie portów umożliwia podłączenie ze zdalnego komputera do komputera lokalnego. Domyślnie SSH nie pozwala na przekazywanie portów zdalnych. Możesz to włączyć za pomocą Gatewayports dyrektywa w głównym pliku konfiguracyjnym SSHD /etc/ssh/sshd_config na zdalnym hoście.

Otwórz plik do edycji za pomocą ulubionego edytora wiersza poleceń.

$ sudo vim/etc/ssh/sshd_config 

Poszukaj wymaganej dyrektywy, odkształcenie jej i ustawiaj jej wartość Tak, Jak pokazano na zrzucie ekranu.

Gatewayports Tak 
Włącz zdalne przekazywanie portów SSH

Zapisz zmiany i wyjdź. Następnie musisz ponownie uruchomić SSHD, aby zastosować ostatnią zmianę, którą dokonałeś.

$ sudo systemctl restart sshd lub $ sudo service sshd restart 

Następnie uruchom następujące polecenie, aby przekazać port 5000 na zdalnej maszynie do portu 3000 na maszynie lokalnej.

$ ssh -f -n [chroniony e -mail] -R 5000: LocalHost: 3000 

Gdy zrozumiesz tę metodę tunelowania, możesz łatwo i bezpiecznie ujawnić lokalny serwer programistyczny, szczególnie za NATS i zaporami ogniowymi do Internetu przez bezpieczne tunele. Tunele, takie jak Ngrok, pagekite, Localtunnel, i wiele innych pracuje w podobny sposób.

Dynamiczne przekazywanie portów SSH

To jest trzeci rodzaj przekierowania portu. w odróżnieniu lokalny I zdalny Przekazywanie portów, które umożliwia komunikację z jednym portem, umożliwia pełen zakres komunikacji TCP w różnych portach. Dynamiczne przekazywanie portów konfiguruje Twój komputer jako Serwer proxy Socks który słucha w porcie 1080, domyślnie.

Dla początkujących, SKARPETY to protokół internetowy, który określa, w jaki sposób klient może połączyć się z serwerem za pośrednictwem serwera proxy (w tym przypadku SSH). Możesz włączyć przekazywanie portów dynamicznych za pomocą -D opcja.

Poniższe polecenie uruchomi proxy Socks na porcie 1080 umożliwiając połączenie się ze zdalnym hostem.

$ ssh -f -n -d 1080 [chroniony e -mail] 

Odtąd możesz tworzyć aplikacje na swoim komputerze, używając tego serwera proxy SSH, edytując ich ustawienia i konfigurując je do użycia, aby połączyć się z serwerem zdalnym. Zauważ, że SKARPETY Proxy przestanie działać po zamknięciu sesji SSH.

Przeczytaj także: 5 sposobów na utrzymanie zdalnych sesji SSH po zamknięciu SSH

Streszczenie

W tym artykule wyjaśniliśmy różne rodzaje przekazywania portów z jednej maszyny do drugiej, w celu tunelowania ruchu za pośrednictwem bezpiecznego połączenia SSH. To jedno z bardzo wielu zastosowań SSH. Możesz dodać swój głos do tego przewodnika za pośrednictwem poniższego formularza sprzężenia zwrotnego.

Uwaga: Przekazywanie portów SSH ma kilka znacznych wad, można go nadużywać: można go używać do ominięcia programów monitorowania sieci i filtrowania ruchu (lub zapory). Atakujący mogą używać go do złośliwych czynności. W naszym następnym artykule pokażemy, jak wyłączyć lokalne przekazywanie portów SSH. Pozostawanie w kontakcie!