Systemowy klient Tor w TorBrowser

Spis treści

TorBrowser to projekt, który ma na celu zabezpieczenie użytkownika przed przeciekiem informacji. Jest to połączenie klienta sieci Tor oraz przeglądarki Firefox (plus kilka dodatków). Ten mechanizm jest tak skonfigurowany, by możliwie jak w największym stopniu dbał o naszą prywatność podczas przeglądania stron internetowych. Kilka lat wstecz, użytkownicy Firefox'a mogli się zaopatrzyć w addon TorButton. Niemniej jednak, obecnie ten dodatek nie jest już rozwijany, przynajmniej nie jako osobny projekt. Cały ten TorButton został zintegrowany z TorBrowser i nie ma obecnie sposobu na to, by przeznaczyć jeden profil Firefox'a pod bezpieczne przeglądanie internetu. Jeśli chcemy mieć taką możliwość, to musimy korzystać z TorBrowser. Nie stanowi to oczywiście problemu, ale jako że ma on w sobie wbudowanego klienta Tor'a, to uruchamia też pewne procesy, które mogą okazać się zbędne, zwłaszcza, gdy na swoim linux'ie mamy już systemową instancję Tor'a. W takim przypadku, przydałoby się wyłączyć tego klienta Tor w TorBrowser, a ruch z przeglądarki przekierować do systemowego Tor'a i przez ten proces postaramy się przebrnąć w tym wpisie.

Systemowa instancja Tor'a i TorBrowser

Zanim zaczniemy cokolwiek robić, trzeba zaznaczyć, że TorBrowser działa praktycznie OOTB i nie musimy sobie zawracać głowy instalowaniem w debianie pakietu tor . Jeśli jednak korzystamy z pewnych udziwnień, np. komunikacja z serwerem kluczy GPG odbywa się przez sieć Tor, to ten pakiet mamy już zainstalowany. Sama usługa TOR'a została też prawdopodobnie już skonfigurowana i działa sobie w tle. Jeśli zależy nam na oszczędności zasobów systemowych, to musimy wyłączyć tego klienta sieci Tor, który siedzi w TorBrowser. Na dobrą sprawę wszystkie potrzebne nam instrukcje na temat tego jak to zrobić są dostępne w paczce z TorBrowser. Pobierzmy ją zatem i wypakujmy. W środku mamy skrypt startowy start-tor-browser.desktop oraz właściwy katalog przeglądarki Browser/ . W tym katalogu z kolei jest plik start-tor-browser , to tam są te instrukcje.

Wyłączenie klienta sieci Tor w TorBrowser

Samo wyłączenie klienta sieci Tor w przypadku TorBrowser sprowadza się do edycji kilku opcji w ustawieniach Firefox'a. Odpalamy zatem tę przeglądarkę i wpisujemy w pasku adresu about:config . Musimy wyszukać dwie frazy: extensions.torbutton. oraz extensions.torlauncher. . Następnie zmieniamy wartości poszczególnych opcji:

# SETTING NAME                          VALUE
extensions.torbutton.banned_ports       [...],<SocksPort>,<ControlPort>
extensions.torbutton.block_disk         false
extensions.torbutton.custom.socks_host  127.0.0.1
extensions.torbutton.custom.socks_port  <SocksPort>
extensions.torbutton.inserted_button    true
extensions.torbutton.launch_warning     false
extensions.torbutton.loglevel           2
extensions.torbutton.logmethod          0
extensions.torbutton.settings_method    custom
extensions.torbutton.socks_port         <SocksPort>
extensions.torbutton.use_privoxy        false

extensions.torlauncher.control_port      <ControlPort>
extensions.torlauncher.loglevel          2
extensions.torlauncher.logmethod         0
extensions.torlauncher.prompt_at_startup false
extensions.torlauncher.start_tor         false

Wyżej widzimy, że w kilku parametrach został wykorzystany SocksPort i ControlPort . W ich miejscu musimy podać porty, na których nasłuchuje systemowa usługa Tor. Domyślne porty to odpowiednio 9050 i 9051.

Drugą bardzo istotną rzeczą jest skonfigurowanie hasła, które umożliwi przeglądarce podłączenie się do systemowej usługi Tor. Robimy to w pliku Browser/start-tor-browser . Odnajdujemy w nim poniższą pozycję i ustawiamy hasło dla gniazda kontrolnego (tak, to hasło musi być ujęte w '" "' ):

setControlPortPasswd ${TOR_CONTROL_PASSWD:='"jakies-haslo"'}

Edytujemy teraz konfigurację systemowego Tor'a, która zwykle znajduje się w pliku /etc/tor/torrc i dopisujemy w nim tę poniższą linijkę:

HashedControlPassword 16:ciag-hex

Nie możemy tutaj jednak wpisać tego samego hasła, które wpisaliśmy do pliku Browser/start-tor-browser . Hasło w pliku /etc/tor/torrc musi być przechowywane w postaci szyfrowanej. Jak zatem uzyskać ten ciąg HEX? Trzeba go wygenerować przy pomocy tor --hash-password , przykładowo:

$ tor --hash-password jakies-haslo
16:D948AD0EB6A8C33F6035D7B72A767F617B8A17489AF80A24EC0BD622CF

Uzupełniamy konfigurację i restartujemy usługę Tor'a.

Test połączenia w TorBrowser

Jeśli wszystkie kroki przeprowadziliśmy jak należy, TorBrowser powinien być w stanie podłączyć się do lokalnej instancji Tor'a. Sprawdźmy zatem czy tak się w istocie dzieje. Odpalamy przeglądarkę i przechodzimy na testową stronę check.torproject.org . Powinna nam się pojawić zielona cebula sugerująca nie tylko fakt korzystania z sieci Tor ale także wykorzystywanie przeglądarki TorBrowser:

torbrowser-konfiguracja-test-tor

W przypadku, gdy korzystamy z graficznej nakładki Vidalia, to podczas przeglądania stron w TorBrowser powinniśmy zarejestrować ruch na jego grafie:

torbrowser-test-vidalia-graf

Mikhail Morfikov avatar
Mikhail Morfikov
Po ponad 10 latach spędzonych z różnej maści linux'ami (Debian/Ubuntu, OpenWRT, Android) mogę śmiało powiedzieć, że nie ma rzeczy niemożliwych i problemów, których nie da się rozwiązać. Jedną umiejętność, którą ludzki umysł musi posiąść, by wybrnąć nawet z tej najbardziej nieprzyjemniej sytuacji, to zdolność logicznego rozumowania.