Jak działa tunelowanie?
Tunelowanie jest mechanizmem, który chroni różne usługi, wyłączając je bezpośrednio spoza sieci. Obejmuje odbieranie ruchu w jednym porcie i przekazanie go do innego portu i może być wykonane zarówno lokalnie, jak i zdalnie. Tunelowanie to technika przekierowania portu, która wykorzystuje szyfrowane tunele w protokole SSH. Tunelowanie to rodzaj komunikacji między dwoma urządzeniami sieciowymi za pomocą połączenia SSH. SSH łapie żądanie usługi od klienta do hosta, a następnie tworzy połączenie, które przenosi żądanie na drugą stronę połączenia. Po drugiej stronie połączenia SSH żądanie jest odszyfrowane do wysyłania do serwera aplikacji w systemie zdalnym.
Rinetd
Rinetd to narzędzie, które pozwala użytkownikowi przesyłać ruch sieciowy z jednego portu do innego portu. Jest to jedno z najczęstszych narzędzi do przekazywania portów ze względu na łatwy w użyciu charakter.
Na przykład rozważ scenariusz, w którym serwer RDP (192.168.0.10) W porcie 3389 jest niedostępny z powodu zablokowania całego ruchu wychodzącego z systemu biurowego (192.168.0.15) Z wyjątkiem portu 80, a jest inny system domowy (192.168.0.20) też.
Sytuacja może wykorzystywać system domowy jako serwer proxy za pomocą Rinetd, aby otrzymał połączenie z jednego adresu IP i portu i przekazać go na inny adres IP i numer portu. W systemie domowym skonfiguruj plik konfiguracyjny Rinetd w następujący sposób:
#BindAddress #Bindport #ConnectAddress #Connectport
192.168.0.20 80 192.168.0.10 3389
W biurze (192.168.0.15), spróbuj połączyć się z RDP w porcie IP:.168.0.20:80). System domowy otrzyma połączenie pod adresem (192.168.0.20:80), ale z powodu przekazywania portów przekazuje połączenie z serwerem RDP (192.168.0.10) w porcie 3389. Stąd serwer RDP jest dostępny z systemu biurowego, nawet jeśli cały ruch wychodzący jest zablokowany.
Ngrok
NGRok zapewnia synchronizację tego, co działa na lokalnym hostach. Umożliwia dostęp do strony internetowej, która działa na naszym lokalnym hostu za Nat i zaporami zaporami ogniowymi przez społeczeństwo przez Internet przez bezpieczne tunele. Załóżmy, że opracowujemy stronę internetową i testujemy ją na naszym lokalnym hostu na porcie 4444. Chcemy podzielić się nim z kimś innym w celach demonstracyjnych. Możemy to udostępnić za pomocą GitHub i innych metod.
Ale wdrożenie zajmie dużo czasu, a zmiany nie będą miały miejsca w czasie rzeczywistym we wszystkich miejscach. W przypadku NGrok każda zmiana w Localhost wyśle aktualizację na końcu wszystkich. NGrok to usługa wieloplatformowa dostępna do pobrania na swojej oficjalnej stronie internetowej.
Na przykład strona internetowa działająca na Localhost: 8080 może być publicznie dostępna przez każdego z linkiem URL. Użyj następującego polecenia, aby wygenerować publiczny adres URL:
Ubuntu@ubuntu: ~ $./ngrok http 8080
Tunelowanie ssh
Tunelowanie SSH to najlepszy sposób na porty tunelu z systemu klienta do systemu serwerowego i odwrotnie. Aby użyć SSH do tunel portów, zarówno klient, jak i serwer powinny skonfigurować SSH. Istnieją trzy rodzaje tunelowania SSH, i.mi., Lokalne przekazywanie portów, przekazywanie portów zdalnych, przekazywanie portów dynamicznych.
Lokalne przekazywanie portów
Lokalne przekazywanie portów to technika udostępniania lokalnych zasobów zdalnych. Zasoby te mogą zostać zakazane lub umieszczone za zaporą ogniową, aby ograniczyć dostęp do lokalnego dostępu.
Składnia:
Ubuntu@ubuntu: ~ $ ssh -l: : Nazwa uż[email protected]
Rozważ scenariusz, w którym zdalny pulpit musi zostać zintegrowany z komputerem domowym z systemu biurowego. Ale port 3389 (RDP) jest zablokowany ze względów bezpieczeństwa. Aby uzyskać dostęp do portu RDP, użyj tunelowania SSH, aby przesyłać porty blokowe do innego odblokowania numeru portu. Można to zrobić za pomocą następującego polecenia:
Ubuntu@ubuntu: ~ $ ssh -l 4444: 192.168.0.2: 3389 [email protected]
Teraz w konfiguracji RDP Localhost można zapisać zamiast IP lub nazwa hosta z kolumną numeru 4444 portu, aby uzyskać dostęp do Home RDP.
Odległe przekazywanie portów:
Zdalne przekazywanie portów to technika zdalnego dostępu do lokalnych zasobów. Powiedzmy, że firma chce, aby pracownik pracował z biura i ogranicza dostęp do systemu biurowego, blokując port RDP (3389). W takim przypadku zdalne przekazywanie portów może się przydać. W systemie biurowym użyj następującego polecenia:
Ubuntu@Ubuntu: ~ $ SSH -r 4444: Localhost: 3389 [email protected]
To nawiązuje połączenie. Teraz komputer roboczy można uzyskać z systemu domowego za pomocą RDP, wprowadzając LocalHost zamiast IP lub nazwa hosta z kolumną numeru 4444 w konfiguracji RDP.
Dynamiczne przekazywanie portów:
Dynamiczne przekazywanie portów umożliwia tunelowe wiele portów. W tego rodzaju przekazywaniu SSH działa jak serwer proxy. Powiedzmy, że pracownicy mogą uzyskać dostęp do sieci w porcie 80 z systemu biurowego z powodu ograniczenia zapory. Dynamiczne przekazywanie portów może pomóc w surfowaniu w Internecie na porcie 80 jako z domu. Użyj następujących ssh Komenda:
Ubuntu@ubuntu: ~ $ ssh -d 4444 [email protected]
Powyższe polecenie tworzy proxy Socks, który wymaga konfiguracji przeglądarki internetowej. W przypadku Firefox przejdź do ustawień i kliknij „Otwórz ustawienia proxy”. Wpisz LocalHost w kolumnie proxy Socks i określony numer portu.
Ilekroć adres jest wpisany na pasku adresu URL, zostanie wysłany do numeru portu określonego za pośrednictwem tunelu SSH i odbierany w naszym systemie domowym.
Wniosek
Tunelowanie i przekazywanie portów może być używane do bezpiecznego dostępu do ruchu sieciowego w zaporach ogniowych. Tunele SSH zapewnia, że dane w tranzycie przechodzą przez bezpieczny tunel, aby nie można było go podsłupić ani przechwytywać. Umożliwia także skonfigurowanie połączeń VPN i dostęp do danych anonimowo lub z bezpiecznej lub niedostępnej lokalizacji z powodu zapory. Artykuł omawia różne scenariusze, które wymagają zastosowania mechanizmu, który pomaga uzyskać dostęp do pożądanych zasobów lokalnie lub zdalnie poprzez tuneling Rinetd, NGRok i SSH.