Sieć anonimizująca w praktyce
Ostatnia zmiana: 2024-05-25 15:14

O sieci Tor napisano już naprawdę dużo - ogólnie ujmując, jest to sieć nastawiona na anonimowość dzięki której możliwe jest przeglądanie internetu i wypowiadanie swoich opinii bez narażania się na odkrycie swojej tożsamości, co jest ważne np. dla dziennikarzy czy w krajach w których obowiązuje ostra cenzura. Ma to także drugą stronę medalu - sieć Tor uważana jest za wolną, pełną złych treści i osób z którymi zwykle nie chcemy mieć za wiele wspólnego. Ważne jest zapoznanie się z opisem czym jest sieć Tor, jakie ma wady i zalety. Dobrym punktem wyjścia jest strona projektu, FAQ oraz Wikipedia.

Celem zaprezentowanego projektu jest utworzenie konfiguracji routera opartej o OpenWrt umożliwiającej całkowicie przezroczyste korzystanie z sieci Tor - nie wymaga to instalowania dodatkowego oprogramowania na komputerze klienta, więc może także służyć np. jako konfiguracja otwartego hostpota. Do projektu wykorzystano system OpenWrt 23.05.

Konfiguracja zostanie wykonana w taki sposób, aby cały ruch był przesyłany bezpośrednio przez sieć Tor, łącznie z zapytaniami dns. Źródłem internetu będzie port wan, natomiast dostęp do routera i sieci będzie odbywał się bezprzewodowo (interfejsem radiowym - dodatkową siecią gościnną).

Konfiguracji dodatkowej sieci

Wykorzystujmy poradnik o sieci gościnnej. Tworzymy nową sieć, upewniamy się że działa - łączymy się do niej, sprawdzamy połączenie.

Jeżeli chcemy używać Tor'a bezprzewodowo - konfigurujemy sobie dodatkową sieć Wi-Fi (wirtualne AP) i dołączamy ją do sieci guest. Jeżeli chcemy mieć dostęp przez port ethernet - przenosimy dany port z bridge br-lan do bridge br-guest.

Pamięć i swap

Tor do działania wymaga wielu zasobów systemowych i dużo pamięci RAM (minimum 64MB). Jeżeli konfigurację przeprowadzamy na routerze wyposażonym tylko w 32MB pamięci ram, to należy zrobić swap np. na nośniku USB.

Tor

Instalacja



    # opkg update
    # opkg install tor


Konfiguracja

Plik konfiguracyjny tora znajduje się w pliku /etc/tor/torrc. Ma czytelnie opisane opcje; w domyślnej konfiguracji dla OpenWrt wystarczy dodać na końcu pliku tylko kilka linii żeby słuchał tylko na naszej sieci gościnnej:


    VirtualAddrNetworkIPv4 10.192.0.0/10
    AutomapHostsOnResolve 1
    AutomapHostsSuffixes .onion,.exit
    SocksPort 172.16.0.1:9050
    DNSPort 172.16.0.1:9053
    TransPort 172.16.0.1:9040

(adresacja zgodna z poradnikiem o sieci gościnnej)
Dodajemy przekierowanie DNS z sieci guest na Tor'a.


    # uci -q delete firewall.tor_dns
    # uci set firewall.tor_dns="redirect"
    # uci set firewall.tor_dns.src="guest"
    # uci set firewall.tor_dns.src_dport="53"
    # uci set firewall.tor_dns.dest_port="9053"
    # uci set firewall.tor_dns.proto="tcp udp"
    # uci set firewall.tor_dns.family="any"
    # uci set firewall.tor_dns.target="DNAT"

Usuwamy sekcję forwarding pomiędzy strefą guest a wan (jeżeli taką utworzyliśmy):


    # uci -q del firewall.@forwarding[-1]

(zakładam że ta sekcja była dodana jako ostatnia. Z firewalla trzeba usunąć sekcję


    config forwarding
        option src 'guest'
        option dest 'wan'

Należy przez uci show firewall upewnić się to była ostatnia sekcja pliku, jeżeli tak nie jest to należy dostosować poprzednie polecenie).
Następnie dodajemy przechwytywanie całego ruchu i kierujemy go na sieć Tor


    # uci -q delete firewall.tor_int
    # uci set firewall.tor_int="redirect"
    # uci set firewall.tor_int.src="guest"
    # uci set firewall.tor_int.src_dport="0-65535"
    # uci set firewall.tor_int.dest_port="9040"
    # uci set firewall.tor_int.proto="tcp"
    # uci set firewall.tor_int.family="any"
    # uci set firewall.tor_int.target="DNAT"
    # uci commit firewall

Restartujemy usługi:


    # /etc/init.d/firewall restart
    # /etc/init.d/tor enable
    # /etc/init.d/tor restart

Sprawdzenie połączenia

Po restarcie routera nastąpi połączenie z siecią. W zależności od łącza może to potrwać do kilku minut. Jeżeli podłączymy się do routera można sprawdzić logi, powinna pojawić się informacja typu:


Sat May 25 15:04:13 2024 daemon.notice Tor[9782]: Catching signal TERM, exiting cleanly.
Sat May 25 15:04:14 2024 daemon.notice Tor[11395]: We compiled with OpenSSL 300000d0: OpenSSL 3.0.13 30 Jan 2024 and we are running with OpenSSL 300000c0: 3.0.12. These two versions s.
Sat May 25 15:04:14 2024 daemon.notice Tor[11395]: Tor 0.4.8.10 running on Linux with Libevent 2.1.12-stable, OpenSSL 3.0.12, Zlib 1.2.13, Liblzma N/A, Libzstd N/A and Unknown N/A as .
Sat May 25 15:04:14 2024 daemon.notice Tor[11395]: Tor can't help you if you use it wrong! Learn how to be safe at https://support.torproject.org/faq/staying-anonymous/
Sat May 25 15:04:14 2024 daemon.notice Tor[11395]: Read configuration file "/tmp/torrc".
Sat May 25 15:04:14 2024 daemon.notice Tor[11395]: Processing configuration path "/etc/tor/torrc" at recursion level 1.
Sat May 25 15:04:14 2024 daemon.notice Tor[11395]: Including configuration file "/etc/tor/torrc".
Sat May 25 15:04:14 2024 daemon.notice Tor[11395]: You configured a non-loopback address '172.16.0.1:9053' for DNSPort. This allows everybody on your local network to use your machine.
Sat May 25 15:04:14 2024 daemon.notice Tor[11395]: You configured a non-loopback address '172.16.0.1:9040' for TransPort. This allows everybody on your local network to use your machi.
Sat May 25 15:04:14 2024 daemon.notice Tor[11395]: You configured a non-loopback address '172.16.0.1:9050' for SocksPort. This allows everybody on your local network to use your machi.
Sat May 25 15:04:14 2024 daemon.notice Tor[11395]: You configured a non-loopback address '172.16.0.1:9053' for DNSPort. This allows everybody on your local network to use your machine.
Sat May 25 15:04:14 2024 daemon.notice Tor[11395]: You configured a non-loopback address '172.16.0.1:9040' for TransPort. This allows everybody on your local network to use your machi.
Sat May 25 15:04:14 2024 daemon.notice Tor[11395]: Opening Socks listener on 172.16.0.1:9050
Sat May 25 15:04:14 2024 daemon.notice Tor[11395]: Opened Socks listener connection (ready) on 172.16.0.1:9050
Sat May 25 15:04:14 2024 daemon.notice Tor[11395]: Opening DNS listener on 172.16.0.1:9053
Sat May 25 15:04:14 2024 daemon.notice Tor[11395]: Opened DNS listener connection (ready) on 172.16.0.1:9053
Sat May 25 15:04:14 2024 daemon.notice Tor[11395]: Opening Transparent pf/netfilter listener on 172.16.0.1:9040
Sat May 25 15:04:14 2024 daemon.notice Tor[11395]: Opened Transparent pf/netfilter listener connection (ready) on 172.16.0.1:9040
Sat May 25 15:04:14 2024 daemon.notice Tor[11395]: Bootstrapped 0% (starting): Starting
Sat May 25 15:04:25 2024 daemon.notice Tor[11395]: Starting with guard context "default"
Sat May 25 15:04:25 2024 daemon.notice Tor[11395]: Bootstrapped 5% (conn): Connecting to a relay
Sat May 25 15:04:25 2024 daemon.notice Tor[11395]: Bootstrapped 10% (conn_done): Connected to a relay
Sat May 25 15:04:26 2024 daemon.notice Tor[11395]: Bootstrapped 14% (handshake): Handshaking with a relay
Sat May 25 15:04:26 2024 daemon.notice Tor[11395]: Bootstrapped 15% (handshake_done): Handshake with a relay done
Sat May 25 15:04:26 2024 daemon.notice Tor[11395]: Bootstrapped 75% (enough_dirinfo): Loaded enough directory info to build circuits
Sat May 25 15:04:26 2024 daemon.notice Tor[11395]: Bootstrapped 80% (ap_conn): Connecting to a relay to build circuits
Sat May 25 15:04:27 2024 daemon.notice Tor[11395]: Bootstrapped 85% (ap_conn_done): Connected to a relay to build circuits
Sat May 25 15:04:27 2024 daemon.warn Tor[11395]: Received http status code 404 ("Not found") from server 23.92.34.41:443 while fetching "/tor/keys/fp/14C131DFC5C6F93646BE72FA1401C02A8.
Sat May 25 15:04:28 2024 daemon.notice Tor[11395]: Bootstrapped 89% (ap_handshake): Finishing handshake with a relay to build circuits
Sat May 25 15:04:28 2024 daemon.notice Tor[11395]: Bootstrapped 90% (ap_handshake_done): Handshake finished with a relay to build circuits
Sat May 25 15:04:28 2024 daemon.notice Tor[11395]: Bootstrapped 95% (circuit_create): Establishing a Tor circuit
Sat May 25 15:04:29 2024 daemon.notice Tor[11395]: Bootstrapped 100% (done): Done

Łączymy się do sieci gościnnej, wchodzimy przeglądarką na adres https://check.torproject.org/ . Powinna pojawić się informacja że jesteśmy połączeni z siecią Tor.

image

Zakończenie

Tor nie zapewnia 100% anonimowości w sieci. Bardzo trudno zidentyfikować użytkownika korzystającego z takiej sieci, ale jest to możliwe (polecam poszukanie odpowiednich informacji na portalach związanych z bezpieczeństwem w sieci). Aby być jeszcze bardziej anonimowym, należy zmienić adres mac routera (dla zmylenia usług geolokalizacyjnych). Trzeba pamiętać, że każda przeglądarka zostawia prawie niepowtarzalny "odcisk palca", należy więc korzystać z popularnych systemów operacyjnych i standardowych (najpopularniejszych) ustawień przeglądarki. Zalecane jest np. wyłączenie ciasteczek w przeglądarce. Zaleca się także systematyczne aktualizowanie programu TOR do najnowszych dostępnych wersji.