Raspberry Pi: Tor WLAN Hotspot/Access-Point

17 Dez
17. Dezember 2013

Das Tor Netzwerk ist eines der bekanntesten Anonymisierungstools im Bezug auf das Tunneln des Internet Verkehrs. Man kann sich Tor auf seinen Computer installieren und es nutzen. Jedoch kann es sein, dass man diese Software aus gegebenen Gründen nicht auf dem eigenen Rechner haben möchte. Oder man möchte einen öffentlichen WLAN Hotspot betreiben, wobei man die Gefahr einer Abmahnung durch missbräuchliche Verwendung durch Dritte minimieren möchte. Dann bietet sich ein WLAN Hotspot/Access-Point an, der den gesamten Traffic über das Tor Netzwerk leitet. Dazu bietet sich aufgrund der geringen Leistungsaufnahme der Raspberry Pi an (Kombination auch unter dem Namen Onion Pi von Adafruit bekannt). Im Folgenden erkläre ich wie man mit dem Raspberry Pi einen Tor WLAN Hotspot/Access-Point aufbaut, der seinen Traffic über das Tor Netzwerk leitet.

Voraussetzung: Raspbian oder vergleichbare Distribution installiert mit angeschlossenem Access-Point fähigen WLAN-Stick

Step 1

Zunächst benötigt man einen Access-Point fähigen WLAN-Stick. Diesen muss man auf dem Raspberry Pi als Access-Point/Hotspot konfigurieren und den Internet Zugang über diesen freigeben. Die Vorgehensweise ist nicht bei jedem WLAN-Stick gleich (häufig ähnlich, aber nicht immer gleich). In dem Artikel WLAN-Access-Point einrichten habe ich dir Vorgehensweise für den weit verbreiteten RTL8192SU bzw. RTL8188CUS Chipsatz erklärt. Falls du einen anderen WLAN-Stick verwenden möchtest solltest du nach einem passenden Tutorial suchen.

Im Folgenden gehe ich davon aus, dass man sich über WLAN an dem Raspberry Pi Hotspot anmelden und darüber surfen kann.

Step 2

Wir installieren nun tor über den Paketmanager.

sudo apt-get install tor

Step 3

Nun müssen wir die Konfigurationsdatei von tor anpassen. Dazu schreiben wir folgende Konfigurationen einfach an das Ende der Datei. Dies definiert einige Vorgehensweisen von dem installierten Tor Client. Dabei ist darauf zu achten, dass 10.11.12.1 durch die IP-Adresse des WLAN Adapters ersetzt werden muss. Diese finden wir über den Befehl ifconfig heraus (siehe Screenshot). In dem Editor nano kann man mittels STRG + X, Y und Enter speichern.

WLAN inet addr

sudo nano /etc/tor/torrc

Step 4

Damit die soeben eingestellten Änderungen ihre Wirkung entfalten müssen wir Tor neustarten.

sudo service tor restart

Step 5

Jetzt müssen wir mittels iptables den gesamten Datenverkehr über den Port 9050 (Tor) umleiten. Davon ausgenommen ist der Port 22, über den der SSH Traffic läuft (sofern der SSH Port geändert wurde, muss dieser hier angepasst werden). Dies bewerkstelligen wir mit folgendem Kommando. Des Weiteren muss, sofern der WLAN Adapter nicht wlan0 heißt, dessen Name angepasst werden.

sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp --dport 22 -j REDIRECT --to-ports 22
sudo iptables -t nat -A PREROUTING -i wlan0 -p udp --dport 53 -j REDIRECT --to-ports 53
sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp --syn -j REDIRECT --to-ports 9040

Step 6

Wir sollten nun testen ob der Traffic über das Tor Netzwerk geleitet wird, wenn wir uns mit dem WLAN Hotspot des Raspberry Pis verbinden. Bspw. können wir dies unter der Check Page des Tor Projektes überprüfen.

Step 7

Hat alles klappt, dann müssen wir noch Tor in den Autostart legen.

sudo update-rc.d tor enable

Step 8

Abschließend legen wir die iptables Regeln noch in das Startscript von Tor, sodass sie bei jedem Start des Raspberry Pis ausgeführt werden. Dazu ersetzen wir die erste durch die zweite angegebene Version.

sudo nano /etc/init.d/tor

ersetzen durch

Fertig! Der Tor WLAN Hotspot/Access-Point ist auf dem Raspberry pi eingerichtet und kann genutzt werden. An dieser Stelle noch der Hinweis, dass man auch über Tor nicht vollständig anonym/sicher im Internet unterwegs ist – wie bei jedem anderen System dieser Art. Jedoch wird durch Tor die Rückverfolgung über die IP-Adresse wesentlich(st) erschwert.

Dir hat der Artikel gefallen?
Teile ihn mit deinen Freunden!
35 Antworten
  1. Heiko says:

    Hallo Jan,
    vielen Dank für deinen Raspberry Blog.
    Ich überlege mir gerade eine Pi zuzulegen, noch läuft bei mir eine NSLU2 im 24/7 Betrieb.

    In den iptables Regeln schreibst du immer Port 9040. Müsste das nicht für TOR der Port 9050 sein?

    Dank und Gruß
    Heiko

    Antworten
    • Jan Karres says:

      Prinzipiell ist deine Annahme richtig (also, dass dies der Standardport ist). Da man jedoch ein VLAN für den Access Point erstellt wird in Step 3, um Überschneidungen zu vermeinen, der TransPort auf 9049 gesetzt, worüber der Traffic dann durch den Tor Client läuft.

      Antworten
  2. tom says:

    Hallo Jan,
    wird mein raspberry denn auch als „tor exit“ punkt oder als „tore node“ punkt benutzt??? Falls ja wie kann ich das ausstellen? Und wo finde ich generel die einstellungen dazu? Danke schonmal

    Antworten
  3. Tyler says:

    Hallo Jan,
    tolle Anleitung, habe aber 2 Verständnisfragen: Ich will meine NSLU2 (mit Debian) auch als TOR Maschine nutzen. Ich will aber kein TOR WLAN aufmachen, sondern das ganze über Ethernet machen, d.h. ich würde an meinem PC die NSLU2 dann als DNS, Gateway usw angeben…

    Müsste ich dann in Schritt 3 einfach die IP vom eth0 angeben und in Schritt 5 einfach eth0 anstatt wlan0? Wäre das schon alles?

    P.S. Vielleicht macht hier auch noch der Einsatz von Privoxy Sinn, um den Traffic zu filtern…!?!

    Gruss
    Tyler

    Antworten
    • Jan Karres says:

      Wenn ich es richtig verstehe möchtest du, dass über eth0 der Raspberry Pi zum Internet verbunden ist, aber auch Anfragen die reinkommen durch das TOR-Netz leitet. Ich würde sagen ohne einen zweiten Netzwerkcontroller geht das nicht.

      Antworten
  4. Michael says:

    hallo Jan erstmal danke für die tolle Anleitung ich habe den torhotspot genau nach deiner Anleitung eingerichtet.
    sogar mit dem gleichen WLAN stick.
    ich habe das folgende Problem wenn ich über den Torhotspot auf meine Emails zugreifen will „Googlemail“ wird automatisch das Konto gesperrt.
    ich habe auch schon viel wegen diesem Problem im Internet gesucht aber nicht eindeutiges gefunden.
    hast du vielleicht einen Tipp für mich wie ich das Problem beheben kann.
    viele liebe Grüße und danke im voraus michael.

    Antworten
  5. Markus says:

    Hi Jan
    wenn ich Step 4 ausführe kommt

    Feb 09 17:09:40.983 [warn] You specified a public address for TransPort. Other people on the Internet might find your computer and use it as an open proxy. Please don’t allow this unless you have a good reason.

    hab ich nun was falsch gemacht? Nur wenn was? Ist ja ne Sicherheitswarnung

    Antworten
    • Markus says:

      ich hab einfach mal weiter mit der Anleitung geamcht. Bei Step 7 kommt
      insserv: warning: script ‚mathkernel‘ missing LSB tags and overrides

      Hoffe du kannst mit bei den beiden Problemen helfen. Der Test das Tor läuft war erfolgreich schonmal. Nur würde ich dennoch gerne wissen was mit den Fehlermeldungen es auf sich hat. Vorallem wenn es Sicherheitsprobleme gibt.

      Antworten
      • Jan Karres says:

        „insserv: warning: script ‘mathkernel’ missing LSB tags and overrides“ – die Meldung ist unbedenklich. Ist seit geraumer Zeit im Raspbian Image sozusagen inklusive 😉

        Antworten
    • Jan Karres says:

      Mhhh… habe gerade auch mal nach dem Fehler gegoogelt. Klingt strange. Eine Lösung war nicht in Sicht. Ich würde ihn einfach ignorieren, auch wenns nicht schön ist.

      Antworten
  6. Markus says:

    traue mich ja fast nicht nochwas zu Fragen
    Bei
    crontab -e
    steht nirgends bei mir
    start)
    nur viel Informationen. Habe alles so eingegeben nur wenn ich den pi neu starte bin ich mit Tor nicht verbunden. Gebe ich die Befehle in der Konsole ein läuft alles prima.
    Irgendwas mache ich beim autostart falsch. Hab die crontab unter user pi und unter root schon angelegt

    Antworten
  7. Jens says:

    Hi Jan,
    wie schon vor Wochen beschrieben, habe ich mir jetzt mal die Zeit genommen und deine Anleitung (leicht verändert) angewendet. Ich nutze eine NSLU2 mit Debian 7 und 2 LAN Ports –> will keine Wifi, sondern das ganze über LAN realisieren.

    Ich habe daheim 2 Subnetze (wie ja auch in deiner Anleitung) hinter dem Router. Soweit habe ich alles konfiguriert, aber wenn ich die IP Adresse des 1. LAN Adapters als Default Gateway in meinem Windows PC eingebe, kommt keine Verbindung zustande.

    Meine Situation:
    LAN 1:
    192.168.178.0/24

    LAN 2:
    192.168.179.0/24

    LAN 2 kann das Default Gateway von LAN1 erreichen, damit man auch von LAN2 ins Internet kann (default route). Sonst kann man aus LAN 2 nichts im LAN1 erreichen.

    meine NSLU2:
    Eth0: 192.168.178.28
    Eth1: 192.168.179.28

    Das .179.28er Netz konfiguriere ich dann in Schritt 3 deiner Anleitung als Listen Address. Von meinem Windows PC errreiche ich ja nur LAN1 deshalb nehme ich die 192.168.178.28 als DNS und Gateway. Habe ich da jetzt nen starken Denkfehler oder wieso klappt es nicht?

    Beste Grüße u. schonmal Danke!

    Antworten
    • Jan Karres says:

      Puh. Ich muss zugeben Netzwerkkonfigurationen sind (wenn es keine Standardfälle sind) nicht meine Stärke. Damit würde ich mal in ein Debian Forum gehen. Dort findest du Leute, die sich damit besser auskennen als ich 🙂

      Antworten
    • Markus says:

      mh so ganz habe ich das noch nicht verstanden. Habe aber selbst ein Gateway bei mir eingerichtet und zusätlich noch ein netz für wlan über tor.

      Also welche ip hat den dein router 192.168.178.1?
      und dein zweites Netz ist dann der 179 er bereich?
      179 kann über 178 schon ins internet
      nun soll 179 das tor bekommen und ins internet gehen
      so richtig verstanden?
      verstehe nun nicht was dein windows pc soll. wieso soll der von 178 zu 179 gehen. Um das Tor zu benutzen? Wieso gibst du dem nicht die 179 um Tor zu benutzen. So kann der ja auch auf 178 netz zugreifen

      Antworten
  8. Jules says:

    Hi,
    eine Frage: An der Stelle an der ich in sudo nano /etc/init.d/tor

    start)
    sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp –dport 22 -j REDIRECT –to-ports 22
    sudo iptables -t nat -A PREROUTING -i wlan0 -p udp –dport 53 -j REDIRECT –to-ports 53
    sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp –syn -j REDIRECT –to-ports 9040

    einfügen muss wird mir ausgegeben die Syntax „)“ von „start)“ nicht zu kennen, daher startet mein Tor auch beim reboot nicht von selbst. Wenn ich tor dann manuell starte, steht da es läuft, jedoch bleibt meine IP wenn ich über den access Point gehe dieselbe wie davor. Hatte niemand dieses Problem? Habe mich streng an die Anleitung, auch andere gehalten.

    Antworten
    • Jan Karres says:

      Deine Aussage widerspricht sich. Du könntest mit /etc/init.d/tor starten, aber darin ist ein Syntax Fehler. Das geht nicht. Die drei von dir zitierten Zeilen nach start) leiten den Datenverkehr erst über da Tor Netzwerk um.

      Antworten
  9. Philipp says:

    Hi Jan!

    Tolle Anleitung, ich werde mich mal daran versuchen.
    Einen Hinweis hätte ich jedoch noch, falls ein Neuling wie ich sich dazu entschließt, das auch zu versuchen und sich nicht mit TOR auskennt.

    Um die Sicherheit gegen Bad Exit-Nodes zu erhöhen, kann (sollte) man vertrauenswürdige Exit Nodes festlegen, die benutzt werden sollen. Das müsste in der Datei torcc gehen.
    Auch sollte man vielleicht erwähnen, dass es sinnvoll ist, besonders bei sensibler Kommunikation noch Ende zu Ende Verschlüsselung zu verwenden und auf die Zertifikate und deren Vertrauenswürdigkeit zu achten.

    Grüße
    Philipp

    Antworten
    • Jan Karres says:

      Ich denke jeder dem es in hohem Maße um Sicherheit geht muss sich sowieso eingehender mit der Thematik beschäftigen. Alles andere bietet keine ernstzunehmende Sicherheit. Folglich lass ich den Kommentar mal in den Kommentaren stehen, werde ihn jedoch nicht in den Artikel einpflegen. Trotzdem danke für deine Anregung!

      Antworten
  10. Jan007 says:

    Hallo,

    folgendes Szenario: Von unterwegs per VPN beim Rasperry einwählen und von dort aus ins Tor Netzwerk. VPN habe ich, nach deiner Einleitung, schon erfolgreich eingerichtet.

    Ich denke, da muss nur eine richtige Einstellung bei den IPs erfolgen? Nur was genau?

    Antworten
  11. Moritz_de says:

    Und wie funktioniert das dann mit einem OpenVPN Client?:)

    Antworten
  12. Steffen S. says:

    Hi,

    ich muss nach jedem reboot die hostapd neu starten (obwohl anscheinend der Prozess läuft), sonst ist keine Verbindung zum Netzwerk möglich.

    Hat jemand ein ähnliche Problem oder eine Lösung?

    Antworten
    • Jan Karres says:

      Diesen Fehler kann ich bei mir leider nicht replizieren. Schau doch mal in das syslog. Dort sollten Fehler von hostapd geloggt werden.

      cat /var/log/syslog

      Antworten
  13. Lucas Fleischer says:

    Hallo Jan!
    Zuerst mal danke für die rollen Anleitungen.

    Ist es sicher dass der Ganze Datenverkehr über Tor geleitet wird, also nicht das Flash sich „vorbeischummelt“ oder so?

    Wenn ichs richtig sehe wird hier nur TCP über Tor geleitet. Kann man p2p Protokolle irgendwie auf z.B 127.0.0.1 umleiten, sodass keine „bösartigen Protokolle“ das Internet erreichen?

    Vielen Dank und mach weiter so!

    Antworten
  14. Hauke says:

    Hallo Jan,

    wenn ich deinem tutorial folge, wird dann der gesammte traffic über tor geleitet?

    Danke,
    Hagen

    Antworten
  15. Retch says:

    Hallo Jan,
    eben alles nach Anleitung gemacht und es hat funktioniert. Jedoch ist ach dem restart vom Pi irgendetwas kaputt gegangen. Der Traffic wird nicht mehr über Tor geleitet. Wenn ich tor starten möchte kommt das: Job for tor.service failed. See ’systemctl status tor.service‘ and ‚journalctl -xn‘ for details.
    Hast du eine Ahnung was ich machen könnte?

    Antworten

Trackbacks & Pingbacks

  1. […] Router baut, der beispielsweise alle Verbindungen über einen OpenVPN Server leitet oder ein Tor WLAN Hotspot aufbaut. Zur Realisierung benötigt man nicht mehr als einen WLAN-Stick an dem kleinen Rechner und […]

Antworten

Kommentar verfassen

JanKarres.de © 2007-2018