Czasami zdarza się, że od sieci odgradza nas nie dość że faszystowski, to upierdliwy firewall. No ale na wszystko są sposoby.
Obecnie wkurza mnie firewall który całkowicie odcina od sieci, dający tylko HTTP proxy. Do tego proxy ma wycięte pewne adresy (i kategorie). Youtuba jeszcze mogę przeżyć, ale free.fr już mi brakuje. Do tego ograniczenia wielkości ściąganych plików, blokada addons.mozilla.org i inne kwiatki
Wziąłem się więc do przebijania. W moim rozwiązaniu potrzebny jest serwer gdzieś w sieci, do którego mamy nieograniczony dostęp. Oto dlaczego.
Proxy które mnie tak irytuje, przepuszcza jedynie ruch na portach 80 i 443. Dla nieznających się: 80 to standardowe HTTP, 443 to HTTPS.
W moim rozwiązaniu, posłużyłem się portem 443. Ponieważ nie mam na serwerze żadnej usługi chodzącej na nim, po prostu przekonfigurowałem serwer SSH aby chodził na tym porcie.
I... to już praktycznie wszystko. Jeżeli tylko proxy przepuszcza ruch po 443, to jesteśmy w domu, i możemy zrobić co chcemy. No ale kontynuujmy.
Na serwerze instalujemy Squida. Squid to proxy HTTP. Domyślna konfiguracja zazwyczaj jest dla nas wystarczająco dobra. Co najwyżej zmieńmy adres IP i port na którym Squid ma słuchać. IP ustawmy na 127.0.0.1, port na... dowolny powyżej 1000, np. 1234.
Dalej, posłużymy się programem Putty. Nie ważne czy pod Linuksa czy pod Windows. Pomoże on nam stworzyć niezbędne tunele.
Odpalamy Putty, i konfigurujemy połączenie do naszego serwera (pamiętajmy o porcie:

Następnie, przechodzimy do ustawień proxy:

Teraz, rozwijamy SSH i wybieramy Tunnels (w source port wpisujemy port który przydzieliliśmy Squidowi):

Możemy jeszcze włączyć opcję 'pingowania' co jakiś czas serwera, jeśli nie ma ruchu (żeby proxy nas nie rozłączyło), ale to już znajdźcie sobie sami :P. Zapisujemy ustawienia, odpalamy i logujemy się.
Teraz otwieramy naszą ulubioną przeglądarkę internetową, i ustawiamy proxy w następujący sposób:

No i teraz, wszystko co będziemy w przeglądarce otwierać, będzie naszym tunelem przechodzić do Squida na serwerze, i dalej w świat. Lokalne proxy zupełnie nie będzie wiedziało co się dzieje, bo wszystko jest szyfrowane, i jedyne co zaobserwuje to ruch w sieci.
Rozwiązanie niby kompletne, ale można je polepszyć. Po co cały ruch puszczać przez zdalny serwer, skoro lokalne proxy też trochę puszcza. Niestety, przeglądarki internetowe oferują tylko niewielką konfigurację proxy (1 proxy i lista wykluczeń). Jeżeli jednak jesteśmy użytkownikami Firefoxa, możemy skorzystać z dodatku FoxyProxy, który pozwala wybierać proxy na podstawie adresu URL. Konfigurujemy je tak, że cały ruch domyślnie idzie przez lokalne proxy, a jeżeli zauważamy że coś jest blokowane, to puszczamy to w regułę od tunelu. No ale to już zadanie domowe dla czytelnika :)
P.S. Pamiętaj - żeby to działało, musisz mieć odpalonego Putty z tunelem.


Komentarze