Wykorzystanie SSH do tunelowania ruchu

Mając dostęp po SSH do serwera, gdzie w konfiguracji nie jest wyłączona opcja AllowTCPForwarding, możemy wykonywać połączenia i tworzyć tunele do innych serwisów.

Na przykład: Jestem w pracy, mam dostęp SSH do swojego routera, a za nim mam swój komputer, na którym mam udostępnioną usługę Remote Desktop. Wykonujemy poniższą komendę

ssh Ja@MojRouter -f -L 3389:10.0.0.10:3389 -N

A następnie uruchamiamy klienta RDP logując się na adres: 127.0.0.1, ponieważ nasza maszyna rozpoczęła nasłuchiwanie na porcie wskazanym porcie. Zrzut z netstat

netstat -netap | grep 3389
tcp 0 0 127.0.0.1:3389 0.0.0.0:* LISTEN 1003 35973076 5273/ssh

Powinniśmy bez przeszkód móc wykonać połączenie.

SSH możemy też wykorzystać jako pełne proxy, jeżeli mamy filtrowany przez proxy ruch, a odblokowany inny port, który zezwoli na wykonanie nawiązania sesji SSH

ssh -D 8081 Ja@MojRouter -N

Dzięki takiemu zestawowi przełączników, logujemy się do serwera i tworzymy tunel TCP Secure Socks, który nasłuchuje na porcie 8081. Po tej operacji i utrzymując połączenie SSH z routerem, konfigurujemy odpowiednio przeglądarkę internetową, wpisując w pole „Host SOCKS” adres IP localhost: 127.0.0.1 i jako port: 8081.

Od tej pory możemy cieszyć się niefiltrowanym dostępem do sieci.