Tor Server installieren [Middle-Node, Relay]

tor_logo

Tor ist eine kostenlose Software für jeden Mensch, der Wert auf anonymisiertes Surfen im Internet legt oder weil es einfach gar nicht mehr anders geht. Da es sich hierbei um eine freie Software handelt, kann jeder das Tor-Netzwerk mit Hilfe seines Servers und ein wenig Traffic unterstützen. Dieses kleine Tutorial ist auf Debian 5.0 (Lenny) spezialisiert, unter anderen Distributionen sieht es ähnlich aus. Die Vorgehensweise ist in etwa die Gleiche.

Alle Befehle sind als root per SSH auszuführen, daher erwähne ich das nicht bei jeder Befehlseingabe. Versteht sich von selbst :)

 

1. Zuerst sollte sichergestellt sein, dass die Uhr auf dem Server richtig tickt. Das Paket "ntpdate" ist bei vielen bereits installiert, es kann aber nicht schaden, den Befehl ein weiteres Mal einzugeben und die Zeit zu syncronisieren:

  1. apt-get install ntpdate
  2. ntpdate pool.ntp.org

 

2. Prüfen, ob der Server DNS richtig auflöst. Bei Fehlern stimmt die DNS-Konfiguration auf dem Server nicht und sollte überprüft werden:

host torproject.org

 

3. Paketliste um eine Zeile erweitern. Speicherort: '/etc/apt/sources.list'

deb http://deb.torproject.org/torproject.org lenny main

 

4. GPG-Key hinzufügen für das Signieren der Pakete:

  1. gpg --keyserver keys.gnupg.net --recv 886DDD89
  2. gpg --export 886DDD89 | apt-key add -

 

5. Tor-Pakete installieren:

  1. apt-get update
  2. apt-get install tor tor-geoipdb

 

Optional als visuelles Monitoring und sofern in der Paketliste verfügbar:

apt-get install tor-arm

 

Nach einer kurzen Weile sind die Pakete installiert und Tor wurde bereits als Daemon gestartet. Dennoch ist hier nicht das Ende, da die Config noch auf Standardwerten steht. 

 

6. Mit WinSCP die Konfiguration bearbeiten. Speicherort: '/etc/tor/torrc'

  1. SocksPort 0 # what port to open for local application connections [auf 0 lassen, da ein Middle-Node Server erstellt wird]
  2. Log notice file /var/log/tor/notices.log
  3. RunAsDaemon 1
  4. ORPort 9001 [Port muss nicht geändert werden]
  5. Nickname Nick [Ein Name für den Server]
  6. Address 1.2.3.4 [IP vom Server, optional]
  7. RelayBandwidthRate 2 MB [Bandbreite ein-/ausgehend in bytes|KB|MB|GB, kann später erhöht werden]
  8. RelayBandwidthBurst 2 MB [Bandbreite ein-/ausgehend in bytes|KB|MB|GB, kann später erhöht werden]
  9. ContactInfo Contact-Person "email at adress dot net"

 

Das Wichtigste von allen, damit der Tor-Server kein Exit Server wird:

ExitPolicy reject *:* # no exits allowed

 

Optional für tor-arm. Passwort mit "tor --hash-password das_Passwort" erstellen:

  1. ControlPort 9051
  2. HashedControlPassword 16:16FI4LDZ73HP97JVMQL

 

Für weitere Parameter liest man sich die Doc-Seite von TorProject durch.

Somit ist die Konfiguration fertig und der Tor-Server kann neu gestartet werden:

/etc/init.d/tor restart

 

Hat man bei der Konfiguration Fehler gemacht, kann man im Verzeichnis '/var/log/tor' die vorhandenen Log-Dateien anschauen und findet dort die Fehlerquelle. Andernfalls liest man folgende Zeile:

[notice] Self-testing indicates your ORPort is reachable from the outside. Excellent. Publishing server descriptor.

 

Außerdem kann man hier den Fingerprint nachlesen, den man für die Tor-Seite zum Suchen benötigt. Alternativ geht auch der Nickname, welcher unter Umständen aber auf der Tor-Status Seite mehrfach vorkommen kann:

Your Tor servers identity key fingerprint is 'Nick 123456XXX....'

 

Optional kann nun 'tor-arm' [Monitoring vom Tor-Server] gestartet werden mit:

./arm -p password [das vorhin gemerkte Passwort]

 

Alternativ, falls tor-arm nicht funktioniert, klappts auch mit dem Befehl:

lsof -ni | grep tor

 

Nach ein paar Stunden findet man den Server dann auch auf der Tor Metrics Seite durch Eingabe des Namens / IP / Fingerprints etc in der Relay-Suche. Alles zum TOR-Netzwerk, den TOR-Browser und weitere nützliche Sachen findet Ihr auf der Homepage von TorProject.

Somit ist ein Tor-Server in relativ kurzer Zeit erstellt und andere Leute haben auch noch einen Nutzen davon :)