Tunelowanie połączenia przez SSH

Z Podręcznik Administratora by OPZ SGU
Przejdź do nawigacji Przejdź do wyszukiwania

Wiadomo jak to jest w dzisiejszym świecie, bezpieczeństwo jest kluczowym aspektem. Są usługi i aplikacje które natywnie nie wspierają enkrypcji, przez co ich upublicznienie na świat jest zbyt niebezpieczne. Jak zapewne każdy zainteresowany wie, to fakt że tunelowanie można wykorzystać również w celu omijania firewalli, restrykcji administratorów (np w przeglądaniu określonych stron www).


Tunelowanie z powodzeniem może wykorzystać dosłownie każdy, od użytkowników Windows (putty) po konsolo-wców Debiana.


Przykładem "pożytecznego" wykorzystania tunelowania będzie zabezpieczenie sesji VNC.

ssh -L 5901:localhost:5901 root@192.168.0.45


Poprawne tunelowanie VNC

Komenda ta spowoduje otwarcie lokalnego portu 5901 i przetransferowanie go, na port (localhost:5901) na serwerze zdalnym o adresie IP 192.168.0.45 użytkownik root.

(nazwa localhost jest myląca i oznacza komputer lokalny względem maszyny zalogowanej) Jeżeli serwer VNC stoi na innej maszynie niż komputer na którym jest SSH, wydajemy komendę

ssh -L 5901:192.168.0.152:5901 root@192.168.0.45
  • 192.168.0.152 - to komputer gdzie stoi serwer VNC w lanie z maszyna SSH.

Teraz, jako użytkownik, logujemy się poprzez localhost:1 (nasz ruch, zostanie przesłany poprzez zaszyfrowany tunel do serwera).

Analogicznie wygląda to w przypadku SMTP, POP3, TELNET oraz innych podstawowych usług. Ta sama komenda, zmieniamy tylko porty.


Proxy czyli szyfrowanie ruchu HTTP :)

Do utworzeniu tunelu typu SOCKS użyjemy parametru -D

ssh root@192.168.0.45 -D 8888


Reverse tunel

Odwrotność tunelu powyższego, ten pozwala nam na udostępnienie lokalnego portu, dla komputera na którym się zalogujemy.