Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

How To: Windows 8 i tunelowanie ruchu sieciowego po SSH

W tym wpisie, mimo że wątpię że zostanie on zakwalifikowany do kategorii Windows 8, postaram się pokazać, że wpisy o Windows 8 nie muszą być o tym co podoba się ich autorowi w kafelkach. :D

Przedstawię tutaj jak utworzyć tunel SSH między dowolnym serwerem Unix-owym i Windows 8, a następnie przekierować do tego tunelu ruch z dowolnej aplikacji zainstalowanej w systemie (Windows 8). Wykorzystamy do tego dwie aplikacje - PuTTY oraz Proxifier.

Czym się różni taki tunel od serwera proxy?

Po pierwsze, ruch jest tunelowany przez SSH, co zapewnia jego szyfrowanie, a nie tak jak z użyciem zwykłego serwera proxy, jawnym tekstem. Uniemożliwia to podsłuchiwanie operatorowi. Gdyby jednak ACTA przeszła, było by to bardzo przydatne.

Po drugie, tunelować możemy ruch dowolnego protokołu (np. Gadu-Gadu, maila, itp.), a nie tylko HTTP i FTP.

Po trzecie, nie wymaga żadnej konfiguracji po stronie serwera, wystarczy zdobyć konto użytkownika na serwerze z SSH.

Jest to więc bardzo dobra alternatywa dla zwykłego proxy HTTP oraz VPN-a, ponieważ nie trzeba jej konfigurować, a daje zbliżone możliwości.

Instrukcja

1. Pobieramy i instalujemy PuTTY oraz Proxyfier-a. Nie będę tutaj opisywał jak to zrobić, bo chyba każdy umie instalować oprogramowanie pod Windowsem. Dla ułatwienie dodam że obie aplikacje dostępne są w wersji portable, a więc nie wymagającej instalacji.

Link do instalki PuTTY: http://the.earth.li/~sgtatham/putty/latest/x86/putty-0.62-installer.ex...Link do PuTTY w wersji portable: http://the.earth.li/~sgtatham/putty/latest/x86/putty.exeLink do instalki Proxifier-a: http://proxifier.com/distr/ProxifierSetup.exeLink do Proxifier-a w wersji portable: http://proxifier.com/distr/ProxifierPE.zip

2. Uruchamiamy PuTTY, a następnie, w polu Host Name (or IP address) wpisujemy adres IP lub domenę naszego serwera, w polu znajdującym się pod Saved Sessions wpisujemy nazwę naszej sesji, np. "tunel". W moim przypadku adres serwera to olo-web.eu. Na liście znajdują się już 2 zapisane połączenia - w tym jedno do olo-web.eu, ale mimo to utworzę kolejne.

3. Przechodzimy do zakładki Connection -> SSH -> Tunnels, w pole Source port wpisujemy dowolny wolny numer portu, np. 4444, wybieramy opcję Dynamic, a następnie klikamy Add. Na wybranym porcie, na naszym lokalnym adresie pętli zwrotnej (127.0.0.1), zostanie uruchomiony tunel do naszego serwera.

4. Wracamy do pierwszej zakładki - Session, klikamy Save, a następnie Open. Gdy następnym razem będziemy chcieli utworzyć tunel, wystarczy że uruchomimy PuTTY i klikniemy dwukrotnie nazwę zapisanej sesji.

5. Logujemy się i MINIMALIZUJEMY, NIE ZAMYKAMY okienko PuTTY.

Na tym etapie tunel jest już zestawiony. Możemy manualnie, w konfiguracji danej aplikacji, ustawić serwer proxy typu SOCKS 5 na 127.0.0.1:4444 i ruch będzie przekierowywany. Poniżej przykład konfiguracji w Firefox-ie: (menu Firefox -> Opcje -> Zaawansowane -> Sieć -> Ustawienia):

Poniżej opisałem jak wymusić tunelowanie ruchu przez aplikacje, w których nie można ustawić serwera proxy, lub nawet przez cały system (Windows 8):

6. Uruchamiamy Proxifier, klikamy Profile -> Proxy Servers... -> Add, w polu Address wpisujemy 127.0.0.1, natomiast w polu port, port na którym uruchomiliśmy tunel. W moim przypadku będzie to 4444. Ustawiamy wersję protokołu SOCKS na SOCKS Version 5 oraz klikamy Check.

Jeśli test wypadnie pomyślnie powinniśmy zobaczyć taki wynik:

Oznacza to że tunel działa poprawnie.

7. Klikamy OK, aby zakończyć test, jeszcze raz OK, aby dodać tunel do listy, a następnie po wyświetleniu się takiego komunikatu:

Klikamy Tak, jeżeli chcemy przekierować ruch z całego systemu, OK, minimalizujemy aplikację i możemy już korzystać z wszystkich aplikacji. Ruch sieciowy będzie automatycznie prowadzony przez tunel. Następnym razem gdy będziemy chcieli uruchomić tunel, wystarczy uruchomić PuTTY, kliknąć 2x na zapisaną sesję (u mnie "tunel"), zalogować się i uruchomić Proxifier. Po wyłączeniu Proxifiera, ruch będzie automatycznie kierowany przez standardowe połączenie Internetowe.

Klikamy Nie, a następnie OK, jeżeli chcemy przekierować do tunelu ruch tylko z wybranych aplikacji i czytamy dalej.

8. Program poinformuje nas że nie mamy zdefiniowanych żadnych reguł przekierowujących ruch do tunelu i pozwoli nam je skonfigurować.

9. Klikamy Add, w polu Name wpisujemy dowolną nazwę. Ja będę przekierowywał ruch dla Firefoxa, więc wpiszę tam Firefox. W ramce Applications, klikamy Browse i odnajdujemy EXE naszej aplikacji. W moim przypadku firefox.exe, na liście Action wybieramy Proxy SOCKS5 127.0.0.1, a następnie klikamy 2x OK.

10. Proxy powinno już działać, aby to sprawdzić uruchamiamy naszą aplikacje, np. Firefox i generujemy za jej pomocą ruch sieciowy, np. wchodząc na jaką stronę. Okno aplikacji powinno wtedy wyglądać tak:

Jeśli tak nie jest to coś skopałeś. :D

Error 404 - Zakończenie not found. 

windows linux internet

Komentarze

0 nowych
roobal   15 #1 01.12.2012 23:55

"Uniemożliwia to podsłuchiwanie operatorowi. Gdyby jednak ACTA przeszła, było by to bardzo przydatne"

To, to jest najmniejsze zmartwienie. Takie rozwiązanie bardziej przydaje się w przypadku korzystania z niezaufanych sieci, np. HotSpotów :)

okokok   12 #2 02.12.2012 01:42

O tym nawet nie pomyślałem :)
Motywacją bardziej było to że home.pl postanowiło wyłączyć na swoich VPS na OpenVZ urządzenie /dev/tun i ni mogłem postawić VPN-a.
Wpadłem na jeszcze jeden pomysł. :) Można podłączyć się do jakiegoś serwera w USA i oglądać seriale.

bachus   20 #3 02.12.2012 11:13

Potęgą Proxifiera jest to, że można zbindować dowolną aplikację a nie cały ruch - na tej samej zasadzie można przez SOCKS pchać bez Proxifiera. Można np. zdefiniować, że tylko ipla leci przez proxy w PL, Hulu przez proxy w USA itd.

  #4 02.12.2012 12:58

Wow, jeżeli na serio masz 17 lat to gratuluję ci ciekawości do poznawania takich mechanizmów, merytoryzmu i zdolności pisania. Ja w twoim wieku męczyłem ówczesnego Crysisa.

  #5 02.12.2012 17:05

Ok, czyli ruch sieciowy jest szyfrowany na drodze: twój host twój serwer. A co przy połączeniu twój serwer inny serwer? Rozumiem, że np. zapytanie HTTP z twojego hosta do strony dobreprogramy.pl, korzystające z tego tunelu jest zaszyfrowane tylko w "połowie drogi"? Czy coś źle rozumiem?

Schocker   2 #6 02.12.2012 17:13

Ja własnie przez taki tunel słucham muzyki przez Spotify, próbowałem jeszcze z innymi serwisami tego typu, ale wciąż im coś nie pasowało.
Tak czy siak, poradnik zdecydowanie przydatny. :)

okokok   12 #7 02.12.2012 17:40

Schocker, po awatarze cię skądś kojarzę. ProLabs?

adam9870   12 #8 03.12.2012 00:48

"Jest to więc bardzo dobra alternatywa dla zwykłego proxy HTTP oraz VPN-a, ponieważ nie trzeba jej konfigurować, a daje zbliżone możliwości."
Co do VPN, tworzysz RAZ sieć, jeżeli chcesz zmieniasz RAZ ustawienia i po wszystkim.

okokok   12 #9 03.12.2012 01:56

adam9870,

Chodziło mi o to że nie wymaga konfiguracji serwera. Domyślnie praktycznie żaden Unix tego nie blokuje i na prawie każdym po instalacji jest już SSH. Nie wymaga to też uprawnień root-a.

VPN oczywiście jest lepszy - zapewnia dwukierunkową łączność oraz drugą warstwę sieciową - drugi interface, a w konsekwencji drugie IP :) Niestety nie można go postawić na VPS z którego korzystam, ponieważ home zablokowało interface /dev/net/tun (OpenVZ) :(

Co do konfiguracji:

Proxifier domyślnie dodaje się do autostartu i nie trzeba go konfigurować przy każdym włączeniu. Jedyna czynność którą trzeba wykonać to włączenie PuTTY i dwukrotne kliknięcie na zapisaną sesję.

Można to jeszcze bardziej zautomatyzować, ustawiając logowanie za pomocą pary kluczy RSA i dodając PuTTY z wybraną sesją jako parametrem polecenia do autostartu, ew. w jakimś skrypcie BAT razem z tunelowaną aplikacją. Okienko PuTTY można ukryć za pomocą PuTTY tray.

jozzy   3 #10 05.12.2012 15:53

OT:

Na podobnej zasadzie działa TOR (https://www.torproject.org/). Aplikacja tworzy lokalnie port (coś ale ten 4444 z przykładu) a cały ruch kierowany jest przez różne hosty na całym świecie. Więc jak ktoś ma potrzebe to może wykorzystać Proxifier do przekierowywania ruchu przez sieć TOR.

roobal   15 #11 08.12.2012 14:57

@jozzy

W przypadku TORa wadą może być to, że w sieci działasz zarówno jako klient i jako serwer, w tym rozwiązaniu działasz tylko jako klient, co powinno być wydajniejsze, przynajmniej dla hosta.

dexterix   5 #13 11.12.2012 10:39

A da się zrobić tak, żeby 1 instancja Firefoxa leciała przez proxy, a 2 instancja normalnie?

tfl   8 #14 11.12.2012 11:30

@dexterix

polecam dodatek foxyproxy. Zrobi mniej wiecej to co chcesz (tylko lepiej ;)

okokok   12 #15 12.12.2012 20:33

Można też w 1 instancji FF ustawić proxy na sztywno.

  #16 13.06.2013 13:15

Ja używam proxifiera do przekierowania downolnej aplikacji pzez TORa. Dodatkowo Poxifier ma opcję przepuszczeniu DNSów przez proxy, co zapewnia doatkową warstwę ochrony.

koksik202   8 #17 03.01.2014 22:49

świetne! bomba! właśnie zrobiłem tak przy użyciu dedykowanego wirtualnego severa z Ubuntu od OVH działa ! :D mega tutorial