How To: Windows 8 i tunelowanie ruchu sieciowego po SSH
01.12.2012 23:13
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.exe Link do instalki Proxifier-a: http://proxifier.com/distr/ProxifierSetup.exe Link 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.