Tor Relay und Hidden Service einrichten

Was ist Tor?

Tor ist ein Netzwerk von freiwillig teilnehmenden Servern. Durch dieses Netzwerk werden alle Daten über mehrere virtuelle Tunnel geschleust. Damit wird Nachverfolgung, Zensur und Überwachung verhindert.

Damit das Tor Netzwerk funktionieren kann, braucht es viele “Tor Relays” – und ein solches richte ich jetzt ein.

UPDATE: Aufgrund der AGB meines Hosters und schlechten Berichten über den Hoster in Verbindung mit TOR ist das Relay vorübergehend wieder offline.

Tor Relay einrichten

Tor Implementierungen gibt es für so gut wie jedes Betriebssystem. Laut torproject.org ist die Installation und Einrichtung allerdings am einfachsten mit Debian oder Ubuntu. Da mir zurzeit ein Debian Server zur Verfügung steht, richte ich das Tor Relay auf diesem ein.

Sämtliche Befehle wurden als root ausgeführt.

  • apt-get install tor

Damit ist Tor installiert und läuft auch schon. Das ging ja einfach. Aber man sollte die Konfiguration natürlich noch anpassen, also stoppe ich den Service erstmal und öffne das config File.

  • service tor stop
  • nano /etc/tor/torrc

clip_image001

So sieht das Config File dann aus – Viel Dokumentation und die Standard-Werte. Ich setze folgende Einstellungen:

ORPort 9001
Nickname iDidEdiTheConfig
RelayBandwidthRate 125 KB # Throttle traffic to 100KB/s (800Kbps)
RelayBandwidthBurst 200 KB # But allow bursts up to 200KB/s (1600Kbps)
DirPort 9030
ExitPolicy reject *:* # no exits allowed

Die letzte Zeile ist ist SEHR wichtig wenn man keinen Ärger bekommen will. Sie besagt, das man KEIN “Exit Relay” betreibt. Das könnte bei uns nämlich zu gesetzlichen Schwierigkeiten führen. Und ja ich habe den Tippfehler im Nickname auch schon gefunden (default Wert ist “ididntedittheconfig”). Sofern man keinen Webserver betreibt, bittet torproject.org darum den ORPort auf 80 oder 443 zu setzen, damit Firewalls weniger Probleme machen wenn man sich zu dem Relay verbinden will.

Jetzt starte ich den Service wieder

  • service tor start

Damit läuft das Tor Relay auch schon und ist richtig konfiguriert. Kurze Zeit später taucht das Relay auch im “Atlas” auf:

Atlas Übersicht meines Tor Relays

Hidden Service auf Tor

Jetzt will ich noch einen Hidden Service auf Tor zur Verfügung stellen. Als Beispiel nehme ich meinen FHTW LV-Plan.

Als erstes installiere ich nginx – ein Webserver.

  • apt-get install nginx

falls Port 80 bereits durch einen anderen Webserver oder durch das Tor Relay belegt ist, endet die Installation mit einem Fehler. Das ist aber nicht weiter schlimm – die Installation war trotzdem erfolgreich, bloß starten konnte nginx nicht.

Jetzt passen wir die Konfiguration von nginx an:

 

  • nano /etc/nginx/sites-enabled/default

 

 

Den vorherigen Inhalt lösche ich und ersetze in durch folgenden:

server {
listen 127.0.0.1:9980;
location / {
proxy_pass https://fhtw.ml/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

Das konfiguriert nginx so, das es nur lokal auf den Port 9980 hört, und alle Requests die da eingehen an https://fhtw.ml weiterleitet.

Nginx (neu) starten:

  • service nginx restart

Im nächsten Schritt bringen wir Tor bei, dass unser Hidden Service unter 127.0.0.1:9980 erreichbar ist. Dafür noch folgendes zur tor config hinzufügen:

HiddenServiceDir /var/lib/tor/hidden_fhtwml/
HiddenServicePort 80 127.0.0.1:9980

Nach einem reload von tor (service tor reload) findet man im konfigurierten Pfad (/var/lib/tor/hidden_fhtwml/) ein file namens “hostname”. In diesem findet man die neue .onion Adresse des Hidden Service.

In meinem Fall: http://hhvnqnlqg4v2xads.onion/ (siehe Update am Anfang des Artikels)

Und unter der Adresse ist der LV-Plan auch schon im Tor-Netzwerk erreichbar:

FHTW LV-Plan als Hidden Service über mein Tor Relay

Wenn man zum ansurfen dieser Seite den Torbrowser verwendet, muss man selbstverständlich JavaScript für die Seite erlauben, sonst funktioniert überhaupt nichts.

Side Note: Wenn man sich mit dieser Konfiguration das Log von Tor ansieht, findet man folgende Meldung:

Tor is currently configured as a relay and a hidden service. That’s not very secure: you should probably run your hidden service in a separate Tor process, at least — see https://trac.torproject.org/8742

Das ist in meinem Fall jedoch nicht weiter schlimm, da ich damit leben kann wenn jemand feststellen kann das ich Relay UND Dienstanbieter bin. Wenn man das jedoch nicht will, sollte man 2 verschiedene Installationen dafür verwenden.