02 lut

Jak zaszyfrować ruch sieciowy przez tunel SOCKS bez używania VPN? – część 1

tunel socks part1

Czasami chcąc uzyskać dostęp do witryny, korzystamy z sieci, która nie jest zabezpieczona lub ma zbyt restrykcyjną zaporę sieciową. Chcemy być pewni, że nikt nie obserwuje nasz ruch.

Jednym z rozwiązań jest VPN, ale wiele wirtualnych sieci prywatnych (VPN) wymagają specjalnego oprogramowania na komputerze, który może nie mieć uprawnień do instalacji czegokolwiek.

Jeśli wszystko czego potrzebujesz to zabezpieczenie przeglądarki internetowej, prostą alternatywą jest SOCKS 5 proxy tunel.

SOCKS proxy jest, w zasadzie, tunelem SSH w którym konkretne aplikacje przesyłają ich ruch przez tunel do serwera, a zatem na końcu serwera proxy serwer kieruje ruch do ogólnego Internetu. W przeciwieństwie do sieci VPN, SOCKS proxy musi być skonfigurowany w aplikacji na komputerze klienckim, ale również on może być skonfigurowany bez żadnych specjalnych agentów klienckich.

Jeśli masz serwer fizyczny czy VPS z dostępem SSH, można użyć go jako punkt końcowy SOCKS proxy. W tym tutorialu użyjemy Ubuntu 14.04 VPS jako proxy i przeglądarki internetowej Firefox jako aplikacji klienckiej. Pod koniec tego tutorialu będziemy mieć możliwość bezpiecznego przeglądania stron internetowych przez tunel.

Wymagania

Jak wspomniano powyżej, pierwsze co jest potrzebne to serwer działający w dowolnej wersji systemu Linux, na przykład jak Ubuntu 14.04 z dostępem SSH.

  • Uruchom serwer (ten przykład używa Ubuntu 14.04)

Trochę więcej konfiguracji jest wymagana na Twoim komputerze. W tym celu trzeba pobrać jedną lub dwie następujące programy.

  • Przeglądarka internetowa Firefox (wszyscy)
  • PuTTY (użytkownicy systemu Windows)

Firefox pozwala ustawić proxy tylko dla przeglądarki  Firefox zamiast ustawiania proxy dla całego systemu.

PuTTY jest używany do utworzenia proxy tunelu dla użytkowników systemu Windows. Użytkownicy Mac OS X i Linux mają zainstalowane narzędzia, aby skonfigurować wstępnie zainstalowany tunel.

Krok #1 (Mac OS X / Linux) – Konfiguracja tunelu

Na swoim lokalnym komputerze, należy utworzyć klucz SSH. Jeśli masz już klucz SSH, można go użyć.

Choć ustawienie hasła dla swego klucza SSH jest dobrą praktyką, w tym tutorialu będziemy pozostawiać hasło puste, aby uniknąć problemów w przyszłości.

Po skonfigurowaniu klucza, upewnij się że on jest dodany do autoryzowanych kluczy dla użytkownika sudo na serwerze(w tym przykładzie to użytkownik sammy).

Otwórz program terminala na komputerze. W systemie Mac OS X, to Terminal w Applications > Utilities.

Skonfiguruj tunel za pomocą tego polecenia:

ssh -D 8123 -f -C -q -N sammy@example.com

Wyjaśnienie argumentów:

-D   Informuje SSH, że chcemy SOCKS tunel na określoną liczbę portów (można wybrać liczbę między 1025-65536)

-f  Ustawia proces do pracy w tle

-C  Kompresuje dane przed wysłaniem

-q  Wykorzystuje tryb cichy

-N  Informuje SSH, że nie zostanie wysłane żadne polecenie, gdy tunel się kończy

Pamiętaj, aby wymienić sammy@example.com na Twojego własnego sudo użytkownika i adres IP serwera lub domeny.

Po wpisaniu polecenia, natychmiast zostaniesz przeniesiony do wiersza poleceń ponownie bez oznak sukcesu lub niepowodzenia; jest to normalne.

Upewnij się tym poleceniem, że tunel jest uruchomiony i działa:

ps aux | grep ssh

Powinieneś zobaczyć następny wynik:

Output
sammy    14345   0.0  0.0  2462228    452   ??  Ss    6:43AM   0:00.00 ssh -D 8123 -f -C -q -N sammy@example.com

Można zamknąć aplikację terminala i tunel pozostanie uruchomiony. To dlatego, że użyliśmy argumentu -f, który stawia sesję SSH do pracy w tle.

Uwaga:  Jeśli chcesz zatrzymać tunel będziesz musiał określić PID przez ps i używając polecenia kill, które pokażemy później.

Krok #1 (Windows) – Konfiguracja tunelu

Otwórz PuTTY.

Jeśli nie masz jeszcze zainstalowanego PuTTY, można pobrać i zapisz go gdzie chcesz. PuTTY nie wymaga uprawnień administratora do zainstalowania; wystarczy pobrać .exe i uruchomić go.

Wykonaj następujące kroki, aby skonfigurować tunel:

  1. W sekcji Session należy dodać Host Name (or IP address) serwera, oraz SSH port (zwykle 22)

socks_img1

  1. Po lewej stronie przejdź do: Connection > SSH > Tunnels
  2. Wpisz dowolnynumer portu źródłowego między 1025-65536. W tym przykładzie użyliśmy portu 1337

socks_img2

  1. Wybierz przycisk opcji Dynamic
  2. Kliknij przycisk Add
  3. Wróć do Session po lewej stronie
  4. Dodaj nazwę na liście Saved Sessions i kliknij przycisk Save
  5. Teraz kliknij przycisk Open, aby nawiązać połączenie
  6. Wprowadź Twoją nazwę użytkownika sudo i hasło serwera aby się zalogować

Można zminimalizować okno PuTTY teraz, ale nie zamykaj go. Połączenie SSH powinno być otwarte.

Wskazówka:  Można zapisać swoją nazwę użytkownika sudo ( sammy ) oraz klucza SSH dla tej samej sesji, wykonując główne instrukcje PuTTY SSH . Wtedy nie będziesz musiał podawać nazwę użytkownika i hasło przy każdym otwarciu połączenia.

Krok #2  Konfiguracja Firefox dla korzystania z tunelu

Teraz, gdy już masz tunel SSH, nadszedł czas skonfigurować Firefox, aby wykorzystać ten tunel. Pamiętaj, że do pracy SOCKS 5 tunel, trzeba korzystać z lokalnej aplikacji, która może skorzystać z tunelu; Firefox załatwia sprawę.

Ten krok jest taki sam dla Windows, Mac OS X i Linux.

Upewnij się, że masz numer portu, który został użyty w poleceniu SSH lub PuTTY, który podałeś w tym przykładzie. Użyliśmy 8123 w przykładzie OS X / Linux oraz 1337 w przykładzie systemu Windows.

Poniższe kroki zostały wykonane z Firefox w wersji 39, one również powinny działać na innych wersjach.

  1. W prawym górnym rogu kliknij na ikonę hamburger aby uzyskać dostęp do menu Firefox:

socks_img3

  1. Kliknij Preferences lub ikonę Options
  2. Przejdź do Advanced section
  3. Kliknij na zakładkę Network

socks_img4

  1. Kliknij na przycisk Settings pod pozycją Connection. Otworzy się nowe okno
  2. Wybierz przycisk opcji Manual proxy configuration:

socks_img5

  1. Wpisz localhost dla SOCKS Host
  2. Wpisz ten sam numer portu z połączenia SSH; na zdjęciu widać, że wpisaliśmy 1337, aby dopasować instrukcje dla systemu Windows
  3. Kliknij przycisk OK, aby zapisać ustawienia i zamknąć konfigurację

Teraz otwórz nową kartę w Firefox i rozpocznij przeglądanie stron internetowych! Wszystko musi być gotowe do bezpiecznego przeglądania przez tunel SSH.

Opcjonalnie: Aby upewnić się, że korzystasz z serwera proxy, wróć do Network ustawień w Firefox. Spróbuj wprowadzić inny numer portu. Kliknij przycisk OK , aby zapisać ustawienia. Teraz, jeśli próbujesz przeglądać strony internetowe, powinieneś otrzymać komunikat o błędzie Serwer proxy odrzucił połączenie. To dowodzi, że Firefox korzysta z serwera proxy, a nie tylko z połączenia domyślnego.

Wracając do normalnego niezabezpieczonego przeglądania w przeglądarce Firefox:

Po zakończeniu potrzeby prywatności tunelu SSH, wróć do Network ustawień proxy (Preferences > Advanced > Network > Settings) w Firefox.

Kliknij na przycisk opcji Use system proxy settings i kliknij OK. Firefox będzie teraz wyświetlać normalne ustawienia połączenia, które prawdopodobnie jest niezabezpieczone.

Jeśli skończyłeś korzystać z tunelu, trzeba będzie zatrzymać go, co omówimy w następnym rozdziale.

Jeśli planujesz używać tunel często można go pozostawić otwarty do późniejszego użycia, ale należy pamiętać, że on może wyłączyć się na własną rękę, jeżeli zbyt długo jest bezczynny, lub jeśli komputer przechodzi w tryb uśpienia.

Krok #3 (Mac OS X / Linux) – Zamknięcie tunelu

Zamknięcie tunelu zatrzyma zdolność Firefox do przeglądania za pośrednictwem serwera proxy.

Tunel, który stworzyliśmy wcześniej na naszym lokalnym komputerze został wysłany do pracy w tle, tak, że zamknięcie okna terminala, który został użyty do otwarcia tunelu nie przerwie go.

Aby zatrzymać tunel, musimy określić ID procesu (PID), za pomocą polecenia ps, a potem go usunąć za pomocą polecenia kill.

Znajdźmy wszystkie aktywne procesy SSH  na naszym komputerze:

ps aux |grep ssh

Znajdź wiersz, który wygląda jak polecenie, które podałeś wcześniej do tworzenia tunelu. Oto przykład wyniku:

Output
sammy    14345   0.0  0.0  2462228    452   ??  Ss    6:43AM   0:00.00 ssh -D 8123 -f -C -q -N sammy@example.com

Od początku wiersza, w jednej z pierwszych dwóch kolumn liczba z 3-5 cyfr to jest PID. W powyższym przykładzie PID 14345 jest podświetlony.

Teraz, gdy wiesz jaki jest PID, można użyć polecenia kill, aby zatrzymać tunel. Użyj własnego PID, gdy zatrzymujesz proces.

sudo kill 14345

Teraz, jeżeli chcesz zautomatyzować proces połączenia, przejdź do Kroku 4.

Krok 3 (Windows) – Zamknięcie tunelu

Zamknięcie tunelu zatrzyma zdolność Firefox do przeglądania za pośrednictwem serwera proxy.

Zamknij okno PuTTY, które zostało użyte do utworzenia tunelu. To wszystko!

W systemie Windows nie istnieje prostego sposobu zautomatyzowania procesu połączenia, ale PuTTY i Firefox mogą zapisać ustawienia wprowadzone wcześniej, więc po prostu jeszcze raz otwórz połączenia, aby ponownie korzystać z tunelu.

O następnych krokach czytaj w drugiej części tutorialu – Jak zaszyfrować ruch sieciowy przez tunel SOCKS bez używania VPN? – część 2.