Skip to content

Einen Tor-Knoten sicher betreiben

Ich habe hin und wieder mit Mitmenschen Kontakt, die gern einen Tor-Server betreiben wollen, sich aber wegen eventueller unangenehmer Kontakte zu Strafverfolger nicht trauen. Das Tor-Projekt hat nun kürzlich ein Blogposting verfasst, indem der Autor Mike Perry einige Vorschläge macht, wie man etwas mehr Sicherheit erlangen kann. Über die Jahre hat wenig bis keinen Ärger damit gehabt.

Ich habe diese Hinweise unten mal übersetzt und ein wenig kommentiert. Vielleicht hilft das einem heutigen oder zukünftigen Betreiber eines Tor-Knotens.

Informiere deinen Provider
Für Mike ist das gleichzeitig der wichtigste Punkt. Das heißt, bevor du deinen Tor-Knoten aufsetzt, solltest du dich mit deinem Provider in Verbindung setzen. Erkläre ihm, was du vorhast, was Tor ist und auch welchen Nutzer er den Leuten bringt. Gerade momentan bietet sich das Beispiel Iran zur Erklärung der Vorteile für die Menschen gut an. Falls du dir unsicher bist, welchen Provider du wählen solltest, schaue dir die Liste der guten/schlechten ISPs für Tor an. Sollte dein Provider gegen einen Exitknoten sein, kannst du einen Brückenserver oder einen Mittelknoten (middle man) aufsetzen. Damit hilfst du dem Tor-Projekt und hast wenig Risiko Ärger zu bekommen.
Nutze eine separate IP-Adresse für deinen Tor-Server und leite privaten Verkehr nicht über diesen Rechner.
Auf der einen Seite hat die Variante, allen Traffic über den Tor-Server zu leiten, den Vorteil, dass du eine Schutzbehauptung im Zweifelsfall hast. Andererseits kann bei einer eigenen IP-Adresse für den Tor-Knoten dein Provider klar sagen, dass es eben der Knoten war und kann automatisiert eine Antwort auf eventuelle Anfragen schicken.
Richte einen Reverse-DNS-Eintrag ein.
Es ist sinnvoll, wenn der Reverse-DNS-Name eine sinnvolle, für sich sprechende Bezeichnung ist. Also etwas in der Richtung wie tor-knoten.example.org oder tor-exit.example.com oder ähnliches. Ich sah kürzlich einen Server mit dem Namen i.am.a tor.exit.node.example.org. :-)
Richte eine Notiz beim Server ein.
Wenn du eine aktuelle Tor-Version (0.2.1.x oder neuer) besitzt, kannst du in der Datei torrc die Variable DirPortFrontPage setzen. Als Argument muss der Option ein Dateiname übergeben werden. Diese Datei sollte eine HTML-Datei mit Informationen zu Tor allgemein oder zu deinem Server sein. Das Tor-Projekt hat ein Beispiel einer solchen Seite.
Beschränke die Bandbreite deines Knotens.
Mike führte in einem Teilprojekt Messungen durch. Dabei stellte er fest, dass Tor-Server, die die Option BandwidthRate gesetzt haben, recht zuverlässig arbeiten. Dabei ist die Option so gesetzt, dass sie recht nahe an der wirklich Bandbreite liegt. Weiterhin liesse sich QoS einsetzen.

Ich hoffe, diese Hinweise helfen dir, deinen Tor-Knoten sicherer zu betreiben. Wenn du Fragen oder Hinweise hast, kannst du unten gern einen Kommentar hinterlassen.

Mit Tor die Zensur umgehen

Beim Artikel zu Picidae hatte ich in den Kommentaren versprochen, etwas zur Umgehung der Zensur mittels Tor zu schreiben. Heute ist es nun soweit.

Tor ist ja per se schon gut geeignet, um unbeobachtet zu kommunizieren. Jedoch könnten Angreifer auf die Idee kommen, einfach die Kommunikation über Tor zu blockieren und schon funktioniert dieser Kanal nicht mehr. Die Schwachstellen, die hierfür gern benutzt werden, sind die öffentlich verfügbaren Verzeichnisserver. Denn jeder Client muss sich von dort aktuelle Informationen über die verfügbaren Tor-Server herunterladen. Wenn die Verbindung zu allen der fünf Verzeichnisserver geblockt wird, dann hat der Client keine Informationen und kann auch keine Verbindung aufbauen. Der Angreifer könnte auch die Verzeichnisinformationen runterladen und die IP-Adressen der einzelnen Tor-Server extrahieren (awk ‘/^router/ { print $3 }’ /var/lib/tor/cached-routers). Jetzt kann die Verbindung zu den Rechnern gezielt über den Paketfilter gesperrt werden. Ein dritter Weg liegt in der Prüfung des HTTP-Verkehrs. Tor lädt die Verzeichnisinformationen über HTTP herunter. Somit kann man gezielt Verbindungsanfragen sperren. In der Praxis filtern viele auf den String “tor”. Diese Maßnahme lässt sich am einfachsten umgehen. In den neueren Tor-Versionen gibt es eine Option TunnelDirConns. Sobald diese auf 1 gesetzt wird, lädt der Tor-Client die Verzeichnisinformationen über HTTPS herunter und der Filter läuft ins Leere.

Die beiden zuerst beschriebenen Fälle sind etwas komplizierter. Seit diesem Jahr arbeiten die Entwickler daran, Mechanismen zur Lösung des Problems in Tor einzuarbeiten. Die Theorie basiert auf folgendem Design. Die ursprüngliche Idee stammt vom JAP und wurde für Tor weiterentwickelt. Der Grundgedanke besagt, dass man sich nicht direkt mit dem Netzwerk verbindet, sondern Hilfen, so genannte Brückenserver, benutzt. Diese nehmen eine Anfrage entgegen und leiten sie dann an das Tor-Netzwerk weiter. Für einen effektiven Schutz gegen Zensur ist es wichtig, dass die Brückenserver nicht als solche erkannt werden. Das Tor-Projekt geht verschiedene Wege. Zum einen muss ein Brückenserver nicht in einem zentralen Verzeichnis registriert sein. Das heißt, ihr könnt zu Hause selbst einen aufsetzen, von dem nur ihr wisst und gebt die Adresse des Servers an Freunde weiter. Ein dritter sieht nur eine SSL-Verbindung zu dem Server und kann nicht sagen, welche Inhalte transportiert werden. Wenn du dich entscheidest, den Brückenserver bei einem Verzeichnisserver anzumelden, wird von seiten des Projektes viel getan, um dessen Identität zu verschleiern. Details findet ihr in dem oben erwähnten Designdokument.

Wenn ihr einen Brückenserver ausprobieren wollt, reicht es, die Option UseBridges in der torrc auf 1 zu setzen. Solltet ihr einen speziellen Server nutzen wollen, dann kommt noch die Zeile Bridge 12.34.56.78:9009 hinzu. Sie legt fest, dass der Brückenserver auf der IP-Adresse 12.34.56.78 auf Port 9009 erreichbar ist. Wenn ihr den Fingerprint des Servers könnt, schreibt diesen hinter die IP-Adresse. Nun kommuniziert Tor immer über den Brückenserver. Damit sollte es einem Angreifer nicht mehr so ohne Weiteres möglich sein, eure Kommunikation mit Tor zu stören.

Momentan sind Brückenserver nur im experimentellen Code von Tor enthalten. Soweit ich das mitbekommen habe, wird diese in den nächsten Wochen freigegeben und der Code fließt in die stabile Version mit ein.

cronjob