Der Tor-Client baut einen Circuit typischerweise über drei Relays auf und handelt mit jedem Relay eigene kryptographische Schlüssel aus. Ausgehende Daten werden in mehreren Verschlüsselungsschichten übertragen. Jedes Relay kann nur die für es bestimmte Schicht verarbeiten und kennt innerhalb des Circuits grundsätzlich nur seinen unmittelbaren Vorgänger und Nachfolger
Komponenten von Tor
Tor ist in allen gängigen Repositories eines Debian-basierten Linux enthalten und kann mit apt installiert werden:
$ sudo apt install tor
Damit werden folgende Komponenten auf Ihrem System installiert:
- Tor-Daemon: Das
torBinary, das sich auf einem Linux-System üblicherweise unter/usr/sbin/torbefindet, ist derTor-Daemon, der im Hintergrund läuft und das System mit dem Tor-Netzwerk verbindet. - Torsocks:
torsocksist ein Dienstprogramm, das es ermöglicht, beliebige Anwendungen über das Tor-Netzwerk zu leiten, ohne dass diese speziell für die Verwendung mit Tor konfiguriert oder entwickelt werden müssen. Es befindet sich in/usr/bin/torsocks. - Tor-Geoipdb:
tor-geoipdbist ein Paket, das eine Datenbank mit geografischen Informationen zu IP-Adressen enthält. Diese Datenbank wird von Tor verwendet, um festzustellen, in welchem Land sich die verschiedenen Tor-Knoten (Relays) befinden. Diese Datenbanken befinden sich in/usr/share/tor/. - Tor-Konfigurationsdateien: Die entsprechenden Dateien sind in der Regel unter
/etc/tor/zu finden. An dieser Stelle können Sie verschiedene Einstellungen vornehmen, beispielsweise festlegen, ob derTor-DaemonalsRelay(Weiterleitungsserver) oder alsExit-Node(Ausgangsserver) fungieren soll. - Log-Dateien: Tor erstellt Log-Dateien, die dazu dienen, den Status des Dienstes zu überwachen und potenzielle Probleme zu diagnostizieren. Diese finden sich in der Regel unter
/var/log/tor/.
Starten von Tor
Nach der Installation starten Sie Tor mit folgendem Kommando:
$ sudo systemctl start tor
Überprüfen Sie ob der Start erfolgreich war:
$ sudo systemctl status tor
Um den Tor-Dienst für den automatischen Start zu aktivieren, führen Sie das folgende Kommando aus. Dadurch wird eine Symbolverknüpfung für den Tor-Dienst im systemd-Verzeichnis erstellt, sodass er beim nächsten Systemstart automatisch ausgeführt wird:
$ sudo systemctl enable tor
Sie verfügen somit bereits über eine aktive Tor-Instanz, die standardmäßig auf dem TCP-Port 9050 lauscht und Datenverkehr entgegennimmt und durch das Tor-Netzwerk leitet.
Funktionstest
Sie können die Funktionalität testen, indem Sie die aktuelle öffentliche IP-Adresse des Exit-Nodes des Tor-Netzwerks aufrufen. Der Exit-Node stellt den letzten Knoten in der Tor-Relay-Kette dar, durch den der Datenverkehr das Tor-Netzwerk verlässt und zum Ziel (z. B. einer Website) weitergeleitet wird. Weicht die zurückgegebene IP-Adresse von Ihrer regulären öffentlichen IP-Adresse ab und gehört sie zu einem Tor-Exit-Relay, bestätigt dies, dass dieser Request über das Tor-Netzwerk geleitet wurde.
Verwenden Sie hierfür das Dienstprogramm torsocks, welches den Netzwerkverkehr einer Anwendung abfängt und über den Tor-Dienst leitet:
$ torsocks curl https://api.ipify.org
5.45.98.162
Grundlegende Konfiguration
Nach der Installation von Tor sind einige grundlegende Konfigurationen und Überlegungen erforderlich, um die Sicherheit und Funktionalität des Dienstes zu optimieren. Diese Einstellungen werden hauptsächlich in der Tor-Konfigurationsdatei vorgenommen, die sich auf einem Linux-System in der Regel unter /etc/tor/torrc befindet.
Circuit Rotation
Tor verwendet Circuits nicht unbegrenzt für neue Verbindungen. Standardmäßig können neue Streams einem bereits verwendeten Circuit für bis zu zehn Minuten zugeordnet werden (MaxCircuitDirtiness 600). Danach werden neue Streams einem anderen geeigneten Circuit zugeordnet, während bereits bestehende Streams weiterhin über ihren bisherigen Circuit laufen können. Tor verwaltet dabei mehrere Circuits parallel und prüft regelmäßig, ob neue Circuits aufgebaut werden sollten. Der Parameter NewCircuitPeriod steuert dieses Prüfintervall und beträgt standardmäßig 30 Sekunden.
Verkehrstyp
Tor wird standardmäßig als Client betrieben. In diesem Modus baut Tor Verbindungen über das Tor-Netzwerk auf, stellt den eigenen Rechner jedoch nicht als Relay für andere Tor-Nutzer zur Verfügung. Für den reinen Client-Betrieb sind in der Regel keine zusätzlichen Einstellungen erforderlich.
Soll Tor als Relay (Weiterleitungsknoten), jedoch nicht als Exit-Node, betrieben werden, kann dies beispielsweise wie folgt konfiguriert werden:
ORPort 9001
ExitRelay 0
Mit ORPort wird der Port festgelegt, über den der Knoten am Tor-Netzwerk teilnimmt. ExitRelay 0 stellt ausdrücklich sicher, dass über diesen Knoten kein Datenverkehr das Tor-Netzwerk in Richtung Internet verlässt.
Soll der Knoten zusätzlich als Exit-Node fungieren, muss der Exit-Betrieb aktiviert und über eine ExitPolicy festgelegt werden, welcher ausgehende Datenverkehr erlaubt ist:
ORPort 9001
ExitRelay 1
ExitPolicy accept *:80
ExitPolicy accept *:443
ExitPolicy reject *:*
In diesem Beispiel darf der Exit-Node ausgehende TCP-Verbindungen zu den Ports 80 (HTTP) und 443 (HTTPS) herstellen. Andere Zielports werden durch die abschließende Regel reject *:* abgelehnt.
Sofern in der Konfigurationsdatei des Tor-Daemons (/etc/tor/torrc) kein ORPort (bzw. eine andere Relay-Port-Konfiguration) festgelegt wurde, arbeitet Tor standardmäßig als Client und stellt keinen Relay-Dienst für andere Teilnehmer des Tor-Netzwerks bereit.
Bandwidth Limits
Wenn Sie Ihren Anschluss als Relay oder Exit-Node zur Verfügung stellen, wird Ihr Tor-Knoten von anderen Nutzern des Tor-Netzwerks genutzt, um deren Datenverkehr weiterzuleiten oder ins offene Internet zu leiten. Dies kann zu einer erheblichen Belastung Ihrer Internetverbindung führen, insbesondere wenn viele Verbindungen über Ihren Knoten laufen.
Durch das Setzen von Bandwidth Limits können Sie sicherstellen, dass Tor nur eine bestimmte Menge Ihrer verfügbaren Bandbreite nutzt. Dadurch wird verhindert, dass Tor eine hohe Last an Ihrem Internetanschluss erzeugt und andere Dienste oder Anwendungen beeinträchtigt werden.
Sie können beispielsweise folgende Bandwidth Limits setzen:
RelayBandwidthRate 100 KB # Durchschnittliche Bandbreite, die Tor verwenden darf
RelayBandwidthBurst 200 KB # Maximale Bandbreite, die Tor in kurzen Spitzen nutzen darf
Logs und Debugging
Um die Überwachung und Fehlersuche zu optimieren, muss das Log-Level entsprechend konfiguriert werden. Grundsätzlich ist das Logging zunächst deaktiviert. Um das reguläre Logging zu aktivieren, verwenden Sie den folgenden Parameter. Dadurch werden die Logs in das Logfile /var/log/tor/notices.log geschrieben:
Log notice file /var/log/tor/notices.log
Um Probleme zu debuggen, können Sie zusätzlich das Debug-Logfile /var/log/tor/debug.log mit folgendem Parameter aktivieren. Bitte beachten Sie, dass dadurch eine sehr hohe Anzahl an Logs generiert wird:
Log debug file /var/log/tor/debug.log
Abschließen der Konfiguration
Die Installation von Tor auf Ihrem System ist somit abgeschlossen und die grundlegenden Konfigurationen wurden vorgenommen. Um alle vorgenommenen Änderungen zu übernehmen, finalisieren Sie die Konfiguration durch einen Neustart von Tor:
$ sudo systemctl restart tor
![]()