Mówiąc o tunelowaniu SSH mamy na myśli forwardowanie jakiegoś portu przez port szyfrowany SSH. Wykorzystanie tej technologii pozwoli na dostęp do zasobów w sieci wewnętrznej przy wykorzystaniu SSH. Na przykład, jeśli mamy w sieci lokalnej, niedostępnej z zewnątrz, serwer stron WWW i jest on zablokowany z zewnątrz, ale port szyfrowany SSH jest dopuszczony, możemy połączyć się z portem SSH naszego serwera i przekierować przez niego ruch do portu WWW innego zasobu w sieci. 

Tunelowanie SSH można przyrównać niejako do VPN’a, z którego na co dzień większość z nas korzysta. Różnica między obiema technologiami jest oczywiście znaczna, ale przy wykorzystaniu tunelowania SSH, możemy w podobny, bezpieczny sposób korzystać z firmowych zasobów poprzez publiczną i niezaufaną sieć internetu, gdyż cały ruch jaki puścimy przez SSH jest przecież szyfrowany i w pełni zabezpieczony. 

Istnieją trzy typy forwardowania SSH: local, remote, dynamic. 

W dzisiejszym artykule opiszę je po krótce. 

W założeniach naszego artykułu przyjąłem, że mamy już serwer z dostępem do SSH, na porcie 22, poprzez klucze dostępowe. Platforma hostignowa nie ma większego znaczenia – o ile mamy pełny adres IP zewnętrzny i nie jest on filtrowany w zakresie SSH. 

Logowanie standardowe do serwera wygląda za zwyczaj tak: ssh root@serwer.pl 

Remote Forwarding 

Ten typ połączenia pozwala na połączenie z Twojego zdalnego komputera do innego lokalnego komputera w sieci lokalnej. Domyślnie ten typ forwardowania jest zablokowany i, aby go odblokować, należy dodać do pliku konfiguracyjnego sshd (np. w 

/etc/ssh/sshd_config) dyrektywę: 

GatewayPorts yes 

Aby przekierować ruch i dostać się na port 80 zdalnej maszyny, wykonamy poniższą linijkę. Port 80 zdalnej maszyny będzie przekierowany na port 8080 naszej maszyny lokalnej. 

Local Forwarding 

en typ forwardowania pozwoli Ci na połączenie się z Twojej maszyny lokalnej, na jakiś zasób na zdalnej maszynie, na której port, do którego chcesz się dostać jest zablokowany. Dla przykładu, jeśli jesteś w sieci lokalnej, zabezpieczonej, w której wyjście na dany port w sieci zdalnej jest zablokowane, to dzięki forwardowaniu typu local możesz do tego zasobu się dostać. 

Jeśli zatem z twojej sieci lokalnej nie możesz połączyć się na port 80 w jakimś zdalnym zasobie (serwerze), to możesz przekierować przez port SSH ten ruch na lokalny port 8080 Twojego komputera. Dzięki temu otworzysz przeglądarkę, wpiszesz http://localhost:8080 i uzyskasz dostęp do zasobu zlokalizowanego na http://serwer1.pl 

Dynamic Forwarding 

Jest ostatnim z trzech typów forwardowania i umożliwia, w przeciwieństwie do local i remote forwarding, komunikację na większej ilości portów. Jest najbardziej ciekawym i użytecznym z perspektywy użytkownika typem forwardowania/tunelowania. Za jego pomocą możemy omijać często restrykcje w sieciach, o czym w dalszej części. Poprzednie dwa typy umożliwiały przekierowanie tylko na jeden konkretny port. Dynamic forwarding umożliwia przekierowanie całego zakresu TCP. Ten typ forwardowania tworzy na Twoim komputerze serwer socks proxy, dzięki któremu na wyjściu twojego komputera możesz przyjąć IP serwera np. serwer.pl i przez niego technicznie komunikować się z innymi zasobami. 

Aby lepiej zobrazować o co chodzi. Załóżmy, że chcesz pracować zdalnie na zasobach firmowych, jakimś panelu administracyjnym, ale jeden jest na porcie takim, inny na innym, jeszcze kolejny na kolejnym. Można zestawić kolejno jedno, drugie, trzecie połączenie typu single point, ale można wykorzystać typ dynamic i za pomocą jednego forwardu zrobić forwarding do innych zasobów. Po co? Na przykład, jeśli dostęp do danych zasobów jest tylko ze zdefiniowanych IP lub wymagane jest posiadanie stałego adresu, ale Ty masz pod ręką tylko sieć komórkową ze zmiennym IP – wówczas dynamic forwarding jest właśnie dla ciebie. 

Za pomocą tej linijki ustawisz dynamic forwarding na Swoim komputerze. Będzie to proxy typu socks. Teraz wystarczy w przeglądarce internetowej wprowadzić odpowiednią konfigurację, czyli w miejscu proxy socks wpisać localhost i port 9000 i Twoim IP na wyjściu w przeglądarce będzie IP serwera serwer.pl

Proxy typu socks, czyli forwardowanie typu dynamic, można wykorzystać nie tylko do przeglądania sieci internetu za pomocą przeglądarki internetowej. Często w firmach aplikacje typu Spotify, do strumieniowania, są blokowane. Wiadomo, chodzi o zużycie transferu i, kiedy setka osób korzysta ze streamingów, sieci firmowe szybko potrafią się zapchać, zwłaszcza wifi. W aplikacjach typu Spotify można jednak wpisać adres serwera proxy socks i w ten sposób posłuchać ulubionej muzyki.