Tor pod Debianem
Tor umożliwia osiągnięcie w pewnym stopniu anonimowości podczas korzystania z Internetu. Niniejszy nieco już nieaktualny artykuł zawiera instrukcje instalacji klienta Tora w systemie Debian etch 4.0. Współczesne dystrybucje Linuksa na ogół mają Tora w paczkach, więc ręczne budowanie nie jest konieczne, ale jeśli ktoś ma ochotę...
Spis treści |
[edytuj] Lektura
Na początek warto co nieco przeczytać na temat sieci Tor. Podstawowe informacje dostępne są na stronach projektu. Jest tam też instrukcja instalacji w systemach Unix i Linux. Warto też zapoznać się z artykułem na anglojęzycznej Wikipedii, który przedstawia także pewne wady i zagrożenia niekonieczne poruszone na stronach Tora.
[edytuj] Przygotowanie
Z odpowiedniej strony należy pobrać kod źródłowy z oprogramowaniem Tor oraz plik z sygnaturą, który posłuży do weryfikacji paczki źródłowej. Alternatywnie można skorzystać z paczek binarnych, przygotowanych dla kilku platform, tu jednak zakładam, że użyto wersji źródłowej.
Żeby zweryfikować autentyczność pobranej paczki, należy postąpić zgodnie z instrukcjami. W skrócie, trzeba pobrać z keyservera klucz publiczny o identyfikatorze 0x28988BF5:
gpg --keyserver subkeys.pgp.net --recv-keys 0x28988BF5
i sprawdzić jego fingerprints:
gpg --fingerprint 0x28988BF5
które powinny być następujące:
B117 2656 DFF9 83C3 042B C699 EB5A 896A 2898 8BF5
Jeśli klucz się zgadza, można przystąpić do weryfikacji źródeł. W momencie pisania tego tekstu, najnowszą stabilną wersją była 0.1.12.17, więc sprawdzenie wyglądało tak (przy założeniu, że paczka ze źródłami Tora ─ tor-0.1.12.17.tar.gz ─ oraz plik z sygnaturą znajdowały się w bieżącym katalogu):
gpg --verify tor-0.1.2.17.tar.gz.asc
co powinno dać w wyniku mniej więcej następujący komunikat:
gpg: Signature made czw 30 sie 2007 23:03:58 CEST using DSA key ID 28988BF5 gpg: Good signature from "Roger Dingledine <arma@mit.edu>" gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: B117 2656 DFF9 83C3 042B C699 EB5A 896A 2898 8BF5
Identyfikator klucza (28988BF5) i potwierdzenie: Good signature from... pozwalają mniemać, że paczka jest poprawna.
[edytuj] Kompilacja
Po pomyślnej weryfikacji można rozpakować źródła:
tar xzvf tor-0.1.2.17.tar.gz cd tor-0.1.2.17
skonfigurować, opcjonalnie podając katalog docelowy, np.:
./configure --prefix=/usr/local/tor
skompilować:
make
i zainstalować:
make install
[edytuj] Privoxy
Tor działa jako serwer proxy SOCKS. Można skonfigurować np. przeglądarki tak, by z niego korzystały. Nie należy jednak tego robić bezpośrednio ze względu na DNS leaks, czyli zapytania do serwerów DNS wykonywane z pominięciem Tora. Zalecanym rozwiązaniem jest użycie serwera pośredniczącego Privoxy. Jeśli jeszcze nie jest zainstalowany, można to zrobić wpisując:
aptitude install privoxy
Następnie należy przystosować Privoxy do współpracy z Torem. Można to zrobić globalnie, w pliku konfiguracyjnym /etc/privoxy/config. Jeśli jednak Privoxy będzie wykorzystywane w innych celach, to lepiej skopiować sobie gdzie indziej całą zawartość katalogu /etc/privoxy i zmian dokonywać na kopiach.
Oto zmiany, które należy wprowadzić w pliku /etc/privoxy/config, w stosunku do domyślnej konfiguracji, obowiązującej po instalacji pakietu privoxy.
- Opcja confdir. W przypadku, gdy pracujemy na kopii katalogu konfiguracyjnego, należy podać tu ścieżkę do tej kopii. Na przykład, gdy zawartość /etc/privoxy została skopiowana do /etc/privoxy-tor, należy wpisać:
confdir /etc/privoxy-tor
- Opcja listen-address domyślnie przyjmuje wartość 127.0.0.1:8118. Można zmienić port, żeby nie kolidował z "normalnym" privoxy, np. na 8888:
listen-address 127.0.0.1:8888
- Za pomocą opcji forward-socks4a konfigurujemy Privoxy tak, że będzie żądania przekazywać do nadrzędnego proxy działającego w oparciu o protokół SOCKS4a. W tym przypadku tym nadrzędnym serwerem proxy będzie Tor.
forward-socks4a / 127.0.0.1:9050 .
- Wyłączamy logowanie do plików przez wykomentowanie wierszy:
# logfile logfile # jarfile jarfile
- Po wyłączeniu logowania, ewentualne informacje będą wypisywane na standardowe wyjście (stderr?). Włączona opcja debug 1 powoduje, że będą raportowane wszystkie żądania. Może to być przydatne podczas testowania, ale później należy też to wyłączyć:
# debug 1
Jeśli zdecydowaliśmy się na modyfikacje systemowych plików konfiguracyjnych Privoxy, należy je dla pewności zrestartować:
/etc/init.d/privoxy restart
gdyż najprawdopodobniej jest już uruchomione przez systemowe skrypty startowe. Natomiast w przypadku, gdy będziemy używać osobnej konfiguracji, należy uruchomić nowy proces privoxy, podając jako argument ścieżkę do pliku konfiguracyjnego:
/usr/sbin/privoxy --no-daemon /etc/privoxy-tor/config
Opcja --no-daemon spowoduje, że program będzie pracować w pierwszym planie, nie odłączając się od terminala. W ten sposób wygodniej będzie obserwować ewentualne błędy jak też łatwiej go zabić w razie potrzeby. Jeśli jednak chcemy, by privoxy pracowało w tle, należy tę opcję pominąć.
Żeby było wygodniej, można sobie zrobić skrypt uruchamiający specjalną wersję privoxy, i nazwać go np. privoxy-tor:
#! /bin/sh /usr/sbin/privoxy --no-daemon /etc/privoxy-tor/config
[edytuj] Fałszowanie pola User-agent
Jednym z pól wysyłanych przez przeglądarki w nagłówku HTTP jest User-agent, opisujący przeglądarkę, system operacyjny, ich wersje, architekturę, preferowany język użytkownika. W większości przypadków zawartość tego pola nie ma większego znaczenia. Niektóre serwisy mogą się dostosowywać do preferowanego języka czy konkretnych przeglądarek, ale architektura i system operacyjny to już naprawdę nadmiar wypływających informacji, w szczególności gdy używamy czegoś mniej popularnego (np. Linux/x86-64). Za pomocą Privoxy można podmienić zawartość pola User-agent, dopisując w pliku user.action na przykład:
{+hide-user-agent{Opera/9.10 (Windows NT 5.1; U) [en]}}
/
co oznacza, że rzekomo używamy Opery 9.10 pod Windows XP i posługujemy się językiem angielskim.
[edytuj] Konto użytkownika
Do bezpieczenego korzystania z Tora oprogramowanie, w szczególności przeglądarki, wymagają odpowiedniej konfiguracji. W szczególności, przeglądarkom należy wskazać serwer proxy oraz wyłączyć możliwość pobierania tzw. aktywnej zawartości (javascript, aplety Javy itp.); więcej o konfiguracji w dalszej części tekstu.
Z tego powodu nie zawsze i nie wszystkie strony będą działać pod Torem, więc używanie go na stałe raczej nie wchodzi w grę. Z kolei zmienianie konfiguracji przeglądarek, gdy okaże się, że z jakiegoś serwisu trzeba korzystać bez pośrednictwa Tora, jest uciążliwe i podatne na błędy.
Dlatego wydaje się, że sensownym rozwiązaniem jest utworzenie nowego konta, przeznaczonego wyłącznie do uruchamiania przeglądarek skonfigurowanych do współpracy z Torem. Przykładowo, niech konto to nazywa się johndoe. Żeby je utworzyć, jako root należy wpisać:
adduser johndoe
Dla pewności można przyciąć uprawnienia na katalogu domowym:
chown go-rwx ~johndoe
Można tam umieścić pliki konfiguracyjne przystosowujące Privoxy do współpracy z Torem a także stamtąd uruchamiać Tora i Privoxy, a później przeglądarki. W ten sposób wszystkie elementy związane z użytkowaniem Tora będą pod ręką, w jednym miejscu.
Mankamentem tego rozwiązania jest konieczność logowania się na osobne konto w celu skorzystania z Tora. Pracując w środowisku graficznym X można sprawę uprościć: zamiast rozpoczynać nową sesję po prostu uruchomić terminal i w nim zalogować się na specjalne konto:
exec su - johndoe
Zakładając, że będziemy używać przeglądarek graficznych, pozostaje w tym przypadku do rozwiązania kwestia możliwości korzystania z X-serwera przez użytkownika johndoe. Po pierwsze, należy wskazać namiary na X-serwer poprzez ustawienie zmiennej środowiska DISPLAY. Na ogół będzie ona mieć wartość :0:
DISPLAY=:0 export DISPLAY
Po drugie, pojawia się kwestia autoryzacji dostępu do X-serwera. W przypadku systemów z jednym użytkownikiem najłatwiej ją rozwiązać pozwalając na nieautoryzowany dostęp lokalny (tylko procesy działające na lokalnej maszynie będą miały dostęp do serwera X):
xhost +local:
Polecenie to należy wydać we własnej sesji, nie jako użytkownik johndoe.
Na koniec warto spróbować uruchamić jakąś aplikację X-ową z konta nowego użytkownika, chociażby archaiczny xcalc. Jeśli okno się pokaże, znaczy że jest OK.
[edytuj] Konfiguracja przeglądarek
Po zalogowaniu się na nowe konto można przystąpić do konfiguracji przeglądarek internetowych. Należy przede wszystkim wskazać im serwery proxy – uprzednio skonfigurowane Privoxy oraz Tor jako serwer SOCKS5. Ponadto trzba wyłączyć: rozmaite pluginy (aplety Javy, flash) i javascript, zakazać przyjmowania bądź okresowo usuwać ciasteczka. Do kompletu warto też wyłączyć referrer logging, przechowywanie historii odwiedzanych stron oraz cache'owanie ich zawartości.
[edytuj] Firefox
Twórcy Tora zalecają używanie przeglądarki Firefox. Można w niej zainstalować rozszerzenie Torbutton, załatwiające kwestię wskazania serwerów proxy.
[edytuj] Opera
W Operze warto zastosować następujące zmiany w stosunku do domyślnej konfiguracji.
- Preferences/General/Startup: ustawić "Start with blank page", żeby przeglądarka nie startowała z poprzednio otwartymi stronami, a jako preferowany język wybrać angielski ─ bo najpopularniejszy.
- Preferences/Advanced/Content: wyłączyć javascript, Javę i pluginy.
- Preferences/Advanced/History: liczbę pamiętanych adresów ustawić na zero, wyłączyć cache dyskowy i zaznaczyć opcję "Empty on exit".
- Preferences/Advanced/Cookies: można spróbować wyłączyć ciasteczka ("Never accept cookies"), niektóre strony jednak nie będą bez nich działać. Sensownym rozwiązaniem jest więc wybranie opcji "Accept cookies" i zaznaczenie "Delete new cookies when exiting Opera". Potem należy jeszcze wcisnąć "Manage cookies..." i usunąć wszystkie już zgromadzone ciasteczka.
- Preferences/Advanced/Network/Proxy servers: skonfigurować serwery proxy zgodnie z instrukcją; Opera niestety nie obsługuje serwerów SOCKS, więc należy ograniczyć się do wpisania we wszystkich polach namiarów na nasze Privoxy (localhost i port, 8888 we wcześniejszych przykładach).
- Preferences/Advanced/Network: wyłączyć opcję "Enable referrer logging".
Podczas użytkowania Opery, zwłaszcza przed zakończeniem, warto też wywołać opcję "Tools/Delete private data", żeby pousuwać różne informacje normalnie zapamiętywane przez przeglądarkę.
[edytuj] Sprawdzenie
Na zakończenie można sprawdzić poprawność konfiguracji za pomocą serwisu TorCheck. Można też zajrzeć na przykład na stronę leader.ru.
