Tor

Aus Mikiwiki
Zur Navigation springen Zur Suche springen

Tor (früher: The Onion Router) ist ein Rechnernetz zur Anonymisierung der Verbindungsdaten. Es wird für TCP-Verbindungen eingesetzt und kann beispielsweise für Webbrowsing, Instant Messaging, IRC, SSH, E-Mail, P2P und anderes benutzt werden. Tor schützt vor der Analyse des Datenverkehrs seiner Nutzer.

Tork ist eine grafische Oberfläche für Tor.

Funktionsweise

Gewöhnlich kommuniziert der Webbrowser direkt mit dem entfernten Zielrechner und erhält von dort z. B. eine Webseite, wobei der dortige Server die Zugriffsdaten protokolliert. Mit Hilfe des Tor-Clients geht die eigene Anfrage nun nicht direkt zum Zielrechner, sondern passiert erste einen Proxy auf dem lokalen Rechner und dann eine Reihe sogenannter "Nodes" bis hin zu einem "Exit-Node", der dann in Kontakt mit dem Zielrechner tritt.

Als "Nodes" werden im Tor-Netzwerk Knotenpunkte bezeichnet, welche der Datenverkehr auf dem Weg zum Ziel passiert. Einen Node eröffnet, wer Tor als Server oder als sogenannten "Onion-Router" betreibt. Privatnutzer verwenden Tor mehrheitlich als Client bzw. als Socks-4-Proxy, der dann als "Onion-Proxy" bezeichnet wird. Dadurch ergibt sich ein Problem: Da die angeforderten Daten verschiedene privat betriebene Nodes passieren, bevor sie den eigenen Rechner erreichen, könnte theoretisch jeder Betreiber eines Onion-Routers den Datenverkehr mitprotokollieren. Daher wird zwischen dem eigenen Onion-Proxy und jedem Node auf dem Weg zum Exit-Node ein eigener Schlüssel vereinbart. Das verhindert, dass sich ein nicht autorisierter Node in die Route schmuggelt.

Das System verschlüsselt zudem Daten in mehreren Schichten (das kann nur der eigene Onion-Proxy) und verhindert so, dass ein Node-Betreiber die passierenden Inhalte entschlüsseln kann. Die Daten sind also - wie eine Zwiebel (engl. onion) - von mehreren Verschlüsselungsschichten umgeben. Erst der Exit-Node reicht die eigentlichen Daten an den Zielrechner weiter, wobei er nicht weiss, von welchem Rechner die Anfrage stammt, denn keiner der Onion-Router kennt den Onion-Proxy. So weiss auch kein Betreiber eines Onion-Touters, wessen Daten durch ihre Nodes fliessen.

Auf dem Rückweg werden die Daten wieder eingepackt: Erst der Onion-Proxy auf dem lokalen Rechner dekodiert die verschlüsselten Schichten und legt die Daten frei. So ist für Aussenstehende und auch den Provider nicht ersichtlich, welche Daten man anfordert oder schickt, und der Betreiber des Zielrechners sieht lediglich die IP-Adresse des Exit-Nodes, der irgendwo auf der Welt steht.

Installation

SUSE Linux

Voraussetzung sind die Pakete "libevent", "openssl", "openssl-devel" und "zlib".

$ tar xzf tor-0.1.1.26.tar.gz
$ cd tor-0.1.1.26
$ ./configure
$ make
# checkinstall
# yast -i /usr/src/packages/RPMS/i386/tor-0.1.1.26-1.i386.rpm

Das Programm installiert sich nach "/usr/local/bin".

Eine Muster-Konfigurationsdatei findet sich unter "/usr/local/etc/tor".

Es empfiehlt sich, einen eigenen Tor-Benutzer anzulegen, anstatt das Programm als Benutzer "root" laufen zu lassen.

Zusätzlich muss über YaST Privoxy über das Paket "privoxy" installiert werden. In der Datei Konfigurationsdatei "/etc/privoxy/config" oder "/usr/local/etc/config" muss folgende Zeile eingetragen werden.

forward-socks4a / localhost:9050 .

Tor und Privoxy können dann gestartet werden.

$ tor &
# /etc/init.d/privoxy start

Privoxy lauscht dann auf Port 8118.

Zum automatisierten Aufruf von Privoxy.

# insserv /etc/init.d/privoxy

Für jeden Benutzer eine KDE/Gnome-Autostartdatei einrichten, die "Tor &" aufruft.

Ubuntu 8.04 Hardy Heron

$ sudo apt-get install tor
$ sudo apt-get install privoxy

In der Datei Konfigurationsdatei "/etc/privoxy/config" muss folgende Zeile eingetragen werden.

forward-socks4a / localhost:9050 .

Tor und Privoxy können dann gestartet werden.

$ sudo /etc/init.d/tor start
$ sudo /etc/init.d/privoxy start

Privoxy lauscht dann auf Port 8118.

Zum automatisierten Aufruf von Privoxy.

$ sudo insserv /etc/init.d/privoxy

Ubuntu 8.04 Hardy Heron

$ sudo apt-get install tor

Verwendung

Start von Tor, das dann auf Port 9050 lauscht.

$ tor
Aug 10 21:36:43.826 [notice] Tor v0.2.0.34 (r18423). This is experimental software. Do not rely on it for strong anonymity. (Running on Linux i686)
Aug 10 21:36:43.829 [notice] Initialized libevent version 1.3e using method epoll. Good.
Aug 10 21:36:43.829 [notice] Opening Socks listener on 127.0.0.1:9050
Aug 10 21:36:45.297 [notice] We now have enough directory information to build circuits.
Aug 10 21:36:51.948 [notice] Tor has successfully opened a circuit. Looks like client functionality is working.

Um den Datenverkehr nun über Tor zu leiten, müssen im Webbrowser folgende Einstellungen gemacht werden.

Webbrowser Menü
Firefox 2 Bearbeiten > Einstellungen > Verbindung: Verbindungs-Einstellungen > [X] Manuelle Proxy-Konfiguration > SOCKS-Host: 127.0.0.1 Port: 9050 [X] SOCKS v4
Firefox 3 Bearbeiten > Erweitert: Netzwerk > Einstellungen > Verbindung: Verbindungs-Einstellungen > [X] Manuelle Proxy-Konfiguration > SOCKS-Host: 127.0.0.1 Port: 9050 [X] SOCKS v4

Zum Testen der Funktionstüchtigkeit kann eine der folgenden Seiten einmal mit und einmal ohne eingeschaltetem Proxy besucht werden. Die dabei angezeigten IP-Adressen sollten sich bei funktionierendem Tor unterscheiden.



$ sudo /etc/init.d/tor start


Einstellungen im Webbrowser und Test

Webbrowser Menü
Firefox 2 Bearbeiten > Einstellungen > Verbindung: Verbindungs-Einstellungen > [X] Manuelle Proxy-Konfiguration > HTTP-Proxy: localhost Port: 8118
Firefox 3 Bearbeiten > Erweitert: Netzwerk > Einstellungen > Verbindung: Verbindungs-Einstellungen > [X] Manuelle Proxy-Konfiguration > HTTP-Proxy: localhost Port: 8118
Opera Extras > Einstellungen > Erweitert > Netzwerk > Proxyserver > [X] HTTP localhost Port 8118

Zum Testen der Funktionstüchtigkeit kann eine der folgenden Seiten einmal mit und einmal ohne eingeschaltetem Proxy besucht werden. Die dabei angezeigten IP-Adressen sollten sich bei funktionierendem Tor unterscheiden.

Verwendung

Tor kennt einen Client- und einen Server-Modus. Der Client-Modus bietet sich an, wenn der eigene Rechner eine private, nicht routbare IP-Adresse hat (z. B. 10.x.x.x) und für Internetverbindungen ein NAT-Gateway nutzen muss. Auch Rechner mit Modems sind im Client-Modus gut aufgehoben.

Nach dem Start wartet Tor am Port 9050 auf eingehende Socks-4-Verbindungen. Wird jetzt der eigene Webbrowser angewiesen, diesen Port anzusteuern, läuft die Verbindung über das Onion-Routing-Netz. Die Dokumentation weist richtigerweise daraufhin, dass fürs Surfen die Kombination mit Privoxy eine gute Idee ist.

Bei Verfügbarkeit einer öffentlichen IP-Adresse und ausreichend Bandbreite sollte Tor im Server-Modus betrieben werden. Dadurch wird der Rechner selbst zu einem Knoten im Onion-Routing-Netz. Die Systemuhr sollte dabei so genau wie möglich gehen, was regelmässiges Abgleichen mit einem Zeitserver am besten sicherstellt. In der gut dokumentierten Konfigurationsdatei "torrc" muss zudem mindestens der Nickname des Servers eingetragen und eingestellt werden, auf welchem Port er Verbindungen entgegennehmen soll. Sinnvollerweise werden hier ebenfalls Bandbreitenbeschränkungen oder unerwünschte Netze eingetragen.

Unter der "exit policy" verbirgt sich Tors Mechanismus, Verbindungen zu bestimmten Zielports zu unterbinden - danach wird per Voreinstellung keine E-Mail mehr versandt, selbst wenn der Mailclient mit Socks-Proxies umgehen kann. So wird verhindert, dass sich Tor als Spamschleuder aufschwingt.

Weblinks

Herausgeber Sprache Webseitentitel Anmerkungen