Versteckte Dienste bei Tor einrichten
Mit Tor ist es möglich, versteckte Dienste, so genannte Hidden Services, anzubieten. Dies funktioniert sowohl mit einem Tor-Knoten, als auch mit einem Client. Damit kann man zum Beispiel einen Webserver, einen Mailserver oder einen SSH-Server anbieten, ohne die Identität preiszugeben. Es ist sogar möglich, solch einen Dienst hinter einer Firewall zu betreiben.
Wenn du bereits Tor installiert hast, kannst du unseren versteckten Dienst live unter duskgytldkxiuqc6.onion oder den versteckten Dienst von Wikileaks unter gaddbiwdftapglkq.onion erleben.
In diesem HowTo erfährst du, wie du eine eigene, versteckte Webseite betreiben kannst. Für technische Details, wie das Protokoll für die versteckten Dienste funktioniert, schau dir unsere hidden service protocol Seite an.
Schritt Null: Bekomme Tor und Privoxy zum Laufen
Bevor es losgeht, überprüfe folgendes:
- Tor ist installiert und läuft.
- Privoxy oder Polipo installiert und läuft.
- Privoxy oder Polipo ist richtig eingerichtet und benutzt Tor und
- alles funktioniert so wie es soll.
Windows Nutzer sollten dem Windows HowTo, OS X Nutzer dem OS X HowTo, und Linux/BSD/Unix Nutzer dem Unix HowTo folgen.
Wenn du alles eingerichtet hast, versuche nochmal den oben erwähnten versteckten Dienst unter duskgytldkxiuqc6.onion oder den versteckten Dienst von Wikileaks unter gaddbiwdftapglkq.onion zu erreichen. Normalerweise dauert es zwischen 10—60 Sekunden, bis die Seite geladen ist (oder bis sich herausstellt, dass sie gerade unerreichbar ist). Wenn es gleich zu Beginn fehlschlägt und dein Browser eine Meldung bringt wie "www.duskgytldkxiuqc6.onion could not be found, please check the name and try again" scheinst du Tor und Privoxy nicht richtig konfiguriert zu haben. Zum dem Problem gibt es einen Eintrag in der FAQ, der dir vielleicht weiterhelfen kann.
Schritt Eins: Installiere einen lokalen Webserver
Als Erstes musst du einen lokalen Webserver einrichten. Das kann durchaus kompliziert sein, daher können wir nur ganz grundlegende Hilfestellung geben. Solltest du Probleme haben, frage einen Freund um Hilfe. Wir empfehlen die Installation eines neuen, separaten Webservers für den versteckten Dienst, weil du einen bereits installierten möglicherweise bereits für eine andere Seite benutzt oder mal benutzen möchtest.
Wenn du Unix oder OS X benutzt und dich mit der Kommandozeile auskennst, ist der beste Weg, wenn du dir thttpd installierst. Hol dir einfach den neuesten Tarball und entpacke ihn. Mittels ./configure && make wird der Server installiert. Danach musst du noch mkdir hidserv; cd hidserv eingeben und danach mittels ../thttpd -p 5222 -h localhost den Server starten. Du landest wieder auf der Kommandozeile, hast aber jetzt einen Webserver auf Port 5222 laufen. Du kannst Dateien, die er ausliefern soll, einfach in das hidserv Verzeichnis legen.
Wenn du unter Windows arbeitest, wählst du am Besten Savant oder Apache. Versichere dich aber, dass der Server nur an localhost gebunden ist. Ausserdem solltest du wissen, auf welchem Port der Server lauscht, diese Information brauchst du gleich.
(Das Binden an localhost stellt sicher, dass der Server nur über Tor ansprechbar ist. Ansonsten könnte man vielleicht auf diese Weise den Betreiber des versteckten Dienstes enttarnen.)
Wenn du den Server eingerichtet hast, solltest du dich davon überzeugen, dass er funktioniert: starte deinen Browser und besuche http://localhost:5222/. 5222 ist der Port, an dem dein Webserver lauscht. Wenn das geht, versuche eine Datei, in das Verzeichnis zu legen und schaue, ob sie im Browser auftaucht, wenn du die Ansicht aktualisierst.
Schritt Zwei: Einrichtung des versteckten Dienstes
Als nächsten Schritt musst du deinen versteckten Dienst einrichten, damit er auf deinen Webserver zeigt.
Erstens: Öffne deine torrc in einem Text-Editor. (Unter torrc FAQ Eintrag steht, was das bedeutet.) Etwa in der Mitte der Datei steht die folgende Zeile:
\############### This section is just for location-hidden services ###
Dieser Abschnitt besteht aus Zeilengruppen. Jede steht für einen versteckten Dienst. Zu Beginn sind alle auskommentiert (haben also ein # als erstes Zeichen), versteckte Dienste sind also nicht aktiv. Jede Zeilengruppe besteht aus einer HiddenServiceDir-Zeile und einer oder mehreren HiddenServicePort-Zeilen:
- HiddenServiceDir ist ein Verzeichnis, in dem Tor Informationen über den Hidden Service speichert. Genauer gesagt: Tor wird hier eine Datei namens hostname erstellen, in der die URL des versteckte Dienste steht. Du musst keine Dateien in das Verzeichnis legen.
- HiddenServicePort lässt dich einen virtuellen Port (das ist der Port, mit dem Nutzer auf deinen versteckten Dienst zugreifen können) und eine IP-Adresse sowie Port (an welche die Anfragen dann weitergeleitet werden) festlegen.
Damit unser Beispiel-Webserver funktioniert, musst du die folgenden Zeilen in deine torrc hinzufügen:
HiddenServiceDir /Library/Tor/var/lib/tor/hidden_service/
HiddenServicePort 80 127.0.0.1:5222
Du solltest die Variable HiddenServiceDir so wählen, dass der Nutzer der Tor laufen lässt, darauf Lese- und Schreibzugriff besitzt. Die Zeile oben sollten auch für das OS X Paket funktionieren. Unter Unix, müsste "/home/username/hidserv/" gehen (natürlich musst du "username" mit deinem eigenen Benutzernamen ersetzen). Unter Windows sollte folgendes funktionieren (natürlich auch mit dem richtigen Benutzernamen):
HiddenServiceDir C:\Documents and Settings\username\Application Data\hidden_service\ HiddenServicePort 80 127.0.0.1:5222
Jetzt musst du deine veränderte torrc speichern und Tor neustarten.
Wenn Tor startet, ist das schon mal super. Wenn nicht, ist etwas schief gegangen. Als erstes solltest du in deinen Logfiles nach Hinweisen suchen. Tor wird Warnungen oder sogar Fehler ausgeben. Damit solltest du in der Lage sein, das Problem einzugrenzen. Typischerweise hast du Tippfehler in deiner torrc oder fehlende Schreib- und Leserechte in den angegebenen Verzeichnissen. (Unter Der Logfile FAQ Eintrag findest du weitere Hilfe, wenn du Probleme hast die Logs zu finden oder zu aktivieren.
Wenn Tor startet wird es automatisch das Verzeichnis in HiddenServiceDir, falls nötig, anlegen und darin 2 Dateien ablegen.
- private_key
- Als Erstes wird Tor ein neues Schlüsselpaar mit öffentlichem und privatem Schlüssel für deinen versteckten Dienst erzeugen. Dieses Paar wird in die Datei namens "private_key" geschrieben. Diese Datei darfst du unter keinen Umständen weitergeben, ansonsten könnten andere deine Identität annehmen.
- hostname
- Die andere Datei die Tor erstellt nennt sich "hostname". Dabei handelt es sich um eine kurze Zusammenfassung deines öffentlichen Schlüssels. Diese Zusammenfassung sieht etwa folgendermaßen aus: duskgytldkxiuqc6.onion. Dabei handelt es sich gleichzeitig auch um die Adresse deines versteckte Dienste, die du an andere Menschen weitergeben oder z.B. im Internet veröffentlichen kannst.
Wenn Tor unter einem anderen Benutzeraccount läuft, musst du möglicherweise die Rechte des Hauptnutzers (root, Administrator) haben, damit du die Dateien anschauen kannst.
Nach einem Neustart ist Tor erstmal damit beschäftigt, sogenannte Introduction Points auszuwählen und einen hidden service descriptor zu erzeugen. Dabei handelt es sich um eine unterschriebene Liste von Introduction Points mit dem vollständigen öffentlichen Schlüssel des versteckten Dienstes. Diese Beschreibung veröffentlicht dein Client dann anonym auf den Verzeichnisservern, wo andere Leute, die deinen versteckten Dienst besuchen wollen, ihn dann ebenfalls anonym abrufen.
Jetzt kannst du es versuchen: Kopiere den Inhalt der hostname-Datei in deinen Webbrowser. Wenn es klappt, solltest du die vorher eingerichtete HTML-Seite bekommen. Wenn es nicht geht, schau in deinen Logs nach Hinweisen und versuche diesen nachzugehen, bis es klappt.
Schritt Drei: Tipps für Fortgeschrittene
Wenn du vor hast deinen versteckten Dienst über längere Zeit anzubieten, solltest du den privaten Schlüssel des Dienstes, also die private_key Datei redundant sichern.
Wir haben weiter oben bewusst nicht den Webserver Apache empfohlen, weil er a) vielleicht schon für andere Webseiten auf dem Rechner eingesetzt wird und er b) sehr groß und kompliziert ist und an vielen Stellen deine wirkliche IP verraten könnte (z.B. auf 404 Seiten). Für Leute, die etwas mehr Funktionalität brauchen, könnte Apache aber genau das Richtige sein. Wir bräuchten daher eine Checkliste, wie man seinen Apache absichert, wenn du ihn für versteckte Dienste nutzen willst. Es wäre toll, wenn die uns jemand erstellen könnte. Savant hat möglicherweise ähnliche Probleme.
Wenn du mehrere virtuelle Adressen an einen einzelnen versteckten Dienst weiterleiten willst, musst du einfach mehr HiddenServicePort-Zeilen einfügen. Wenn du mehrere versteckte Dienste mit dem gleichen Tor-Client anbieten möchtest, must du einfach eine weitere HiddenServiceDir-Zeile einfügen. Alle danach folgenden HiddenServicePort-Zeilen beziehen sich dann auf diese HiddenServiceDir-Zeile, bis du eine neue HiddenServiceDir-Zeile einfügst:
HiddenServiceDir /usr/local/etc/tor/hidden_service/ HiddenServicePort 80 127.0.0.1:8080 HiddenServiceDir /usr/local/etc/tor/other_hidden_service/ HiddenServicePort 6667 127.0.0.1:6667 HiddenServicePort 22 127.0.0.1:22
Du solltest dir ein paar Gedanken über deine Anonymität machen:
- Wie bereits erwähnt, solltest du aufpassen, dass dein Webserver keine Informationen über dich, deinen Computer oder deinen Aufenthaltsort herausgibt. Zum Beispiel könnte jemand herausfinden, ob du thttpd oder Apache einsetzt und könnte dann auch noch etwas über dein Betriebssystem herausfinden.
- Wenn dein Rechner nicht immer online ist, ist es auch dein verstecker Dienst nicht. Dadurch hinterlässt du Spuren, die jemand interessieren könnten.
Wenn du Vorschläge hast, wie wir dieses Dokument verbessern könnten, schick Sie uns bitte zu. Danke!
