05 lut

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

tunel socks part2

Aby wrócić do pierwszej części tutorialu – Jak zaszyfrować ruch sieciowy przez tunel SOCKS bez używania VPN? – część 1.

Krok #4 (Mac OS X / Linux) – Tworzenie skrótów do wielokrotnego użytku

Dla systemów OS X lub Linux, możemy zrobić alias lub utworzyć skrypt do szybkiego tworzenia tunelu.  Poniżej przedstawiono dwa sposoby, aby zautomatyzować proces tunelu.

Uwaga: Te metody skrótów oba wymagają pusty klucz SSH do serwera!

Klikalny BASH Script

Jeśli chcesz stworzyć ikonę, która przy dwukrotnym kliknięciu będzie uruchamiała tunel, możemy stworzyć ją za pomocą prostego BASH skryptu.

Zrobimy skrypt skonfigurowania tunelu i uruchomienia Firefox, chociaż będzie trzeba po raz pierwszy ręcznie dodać ustawienia proxy Firefox.

Na OS X , binarny plik Firefox możemy uruchomić z linii poleceń w środku Firefox.app. Zakładając, że aplikacja znajduje się w folderze Applications, to plik będzie można znaleźć w  /Applications/Firefox.app/Contents/MacOS/firefox.

W systemach Linux , jeśli Firefox jest zainstalowany przez repo lub wstępnie zainstalowany,  jego lokalizacja powinna być /usr/bin/firefox. Zawsze można użyć polecenia which firefox, aby dowiedzieć się, gdzie znajduje się on w systemie.

W poniższym skrypcie wymień ścieżkę do przeglądarki Firefox, która jest odpowiednia dla Twojego systemu.

Za pomocą edytora tekstu, jak nano utwórz nowy plik:

nano ~/socks5.sh

Dodaj następujące linie:

socks5.sh
#!/bin/bash

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

/Applications/Firefox.app/Contents/MacOS/firefox &
  • Wymień 8123 z odpowiednim numerem portu (musi pasować do tego, co można umieścić w Firefox)
  • Wymień sammy@example.com z Twoim użytkownikiem SSH i nazwę hosta lub adres IP
  • Wymień /Applications/Firefox.app/Contents/MacOS/firefox ze ścieżką do pliku binarnego Firefox

Zapisz skrypt. Dla nano, poprzez CONTROL + o, a następnie zamknij, poprzez CONTROL + x.

Zrobimy tak, aby skrypt był wykonywalny po dwukrotnym kliknięciu na niego. Z wiersza poleceń wpisz następujące polecenie, aby dodać uprawnienia do wykonywania, wykorzystując własną ścieżkę do skryptu:

chmod +x /path/to/socks5.sh

Na OS X, być może trzeba będzie wykonać dodatkowe kroki, aby plik .sh był wykonywany jako program a nie otwierał się w edytorze.

Aby to zrobić, kliknij prawym przyciskiem myszy na pliku socks5.sh i wybierz polecenie Get Info.

Znajdź sekcję Open with: i jeśli trójkąt nie jest skierowany w dół, kliknij na nim, dzięki czemu można zobaczyć menu rozwijane. Xcode może być ustawiony jako domyślna aplikacja.socks_img6

Zmień go na Terminal.app. Jeżeli Terminal.app nie ma na liście, wybierz Other, a następnie przejdź do Applications > Utilities > Terminal.app.

Aby otworzyć SOCKS proxy teraz, wystarczy dwukrotnie kliknąć na plik socks.sh.

(Po wykonaniu, skrypt nie będzie pytał o hasło, więc jeśli wcześniej skonfigurowałeś swój klucz SSH z wymaganym hasłem, będzie to błędem).

Skrypt otworzy okno terminala, uruchomi połączenie SSH oraz Firefox. Można spokojnie zamknąć okno terminala. Dopóki masz zapisane ustawienia proxy w Firefox, można przeglądać Internet poprzez bezpieczne połączenie.

Wiersz polecenia Alias

Jeśli często korzystasz z wierszu poleceń i chcesz uruchomić tunel, można utworzyć BASH alias.

Najtrudniejszą częścią tworzenia aliasu jest dowiedzieć się, gdzie zapisać polecenie alias.

Różne dystrybucje wersji Linux i OS X zapisują aliasy w różnych miejscach. Najlepszym rozwiazaniem jest szukać jeden z następujących plików oraz alias, aby zobaczyć, gdzie obecnie są zapisywane inne aliasy. Funkcje obejmują

  • ~/.bashrc
  • ~/.bash_aliases
  • ~/.bash_profile
  • ~/.profile

Jak tylko znajdziesz odpowiedni plik, dodaj alias poniżej tych które już masz, lub po prostu na końcu pliku.

.bashrc
alias socks5='ssh -D 8123 -f -C -q -N sammy@example.com && /Applications/Firefox.app/Contents/MacOS/firefox &'
  • Wymień 8123 z odpowiednim numerem portu (musi pasować do tego, co można umieścić w Firefox)
  • Wymień sammy@example.com z Twoim użytkownikiem SSH i nazwę hosta lub adres IP
  • Wymień /Applications/Firefox.app/Contents/MacOS/firefox ze ścieżką do pliku binarnego Firefox

Twoje aliasy są ładowane tylko przy uruchamianiu nowej  powłoki, więc zamknij sesję terminalu i uruchom ponownie.

Teraz po wpisaniu:

socks5

Ten alias ustawi Twój tunel, a następnie uruchomi Firefox i wróci do wiersza poleceń.

Upewnij się, że Firefox nadal jest skonfigurowany do korzystania z serwera proxy. Teraz można przeglądać Internet bezpiecznie!

Krok #5 (opcjonalnie) – Rozwiązywanie problemów: Uzyskanie przez zapory

Jeśli połączenie działa, można opuścić ten krok.

Jednak, jeśli okaże się, że nie można ustawić połączenie SSH ze względu na ograniczenia zapory, jest prawdopodobne, że port 22, który jest niezbędny do tworzenia tunelu, został zablokowany.

Jeśli możesz zarządzać ustawieniami SSH i serwera proxy, można ustawić nasłuchiwanie SSH na porcie innym niż 22.

Jaki port można użyć, który nie jest zablokowany?

Oprócz wątpliwego planu uruchomienia skanowania portów za pomocą takiego narzędzia, jak ShieldsUP! (wątpliwy, ponieważ twoja sieć lokalna może traktować to jako atak), to lepiej spróbować porty, które zwykle zostają otwarte.

Porty, które są często otwarte obejmują 80 (ogólny ruch sieciowy) oraz 443 (ruch sieciowy SSL).

Jeśli twój serwer SSH nie obsługuje treści internetowych, SSH może skorzystać z jednego z tych portów sieciowych do komunikacji zamiast portu domyślnego 22. 443 jest najlepszym wyborem, ponieważ ruch jest szyfrowany na tym porcie, i nasz ruch SSH będzie szyfrowany.

Edycja ustawień SSH serwera:

sudo nano /etc/ssh/sshd_config

Spójrz na wiersz Port 22.

Możemy albo wymienić 22 w całości (co jest dobrą techniką SSH hartowanie tak)  lub dodać drugi port dla SSH do słuchania.

Będziemy wybierać nasłuchuje SSH na wielu portach, więc dodamy nowy wiersz pod Port 22 który czyta Port 443. Przykład:

sshd_config
. . .

Port 22

Port 443

. . .

Uruchom ponownie SSH, aby zaktualizować konfigurację SSH ze zmianami.

W zależności od dystrybucji, nazwa serwera SSH może być różna, to może być ssh albo sshd. Jeśli pierwsza nie działa, spróbuj drugą.

sudo service ssh restart

Aby sprawdzić, czy nowy port SSH działa, otwórz nową powłokę (na wszelki wypadek nie zamykając bieżącą) i SSH w korzysta z nowego portu.

ssh sammy@example.com -p 443

Jeśli Ci się uda, można wylogować się z obu powłok i otworzyć tunel SSH przy użyciu nowego portu.

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

To wszystko! Ustawienia Firefox będą dokładnie takie same, ponieważ nie zależą od portu SSH, tylko port tunelu (8123 powyżej).

Wniosek

Otwórz SOCKS 5 tunel do przeglądania za pośrednictwem bezpiecznego tunelu SSH, kiedy potrzebujesz lekkiego sposobu, aby uzyskać dostęp do bezpiecznego Internetu.