• Blog
  • Raspberry Pi
  • Über mich
  • Projekte
  • devowl.io

Raspberry Pi: Tor WLAN Hotspot/Access-Point

17. Dezember 2013
Raspberry Pi
36 Kommentare

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

Log notice file /var/log/tor/notices.log
VirtualAddrNetwork 10.192.0.0/10
AutomapHostsSuffixes .onion,.exit
AutomapHostsOnResolve 1
TransPort 9040
TransListenAddress 10.11.12.1
DNSPort 53
DNSListenAddress 10.11.12.1
ClientOnly 1
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

  start)

ersetzen durch

  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

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.

Quelle: TorForum.org, Tor Project Trac, Adafruit

36 Kommentare. Hinterlasse eine Antwort

  • Heiko
    Dezember 17, 2013 5:44 pm

    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
      Dezember 17, 2013 7:38 pm

      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
  • tom
    Januar 4, 2014 1:27 pm

    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
    • Jan Karres
      Januar 4, 2014 2:20 pm

      Meines Kenntnisstandes nach wird dein Raspberry Pi bei der beschriebenen Einrichtung nicht hierfür verwendet.

      Antworten
  • Tyler
    Januar 18, 2014 11:40 am

    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
      Januar 18, 2014 2:08 pm

      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
      • Tyler
        Januar 18, 2014 4:28 pm

        Ja stimmt, habe ich mich blöd ausgedrückt. Ich habe einen zweiten USB Ethernet Adapter dran. Dann müsste mein Vorhaben aber gehen oder?

        Antworten
        • Jan Karres
          Januar 18, 2014 6:22 pm

          Ja, das sollte gehen. Anstatt wlan0 eben den zweiten Ethernet Adapter angeben.

          Antworten
  • Michael
    Januar 20, 2014 8:46 pm

    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
    • Jan Karres
      Januar 20, 2014 8:51 pm

      Tor und Google sind meines Wissens nach nicht die besten Freunde. Das sollte schon alles Wichtige aussagen 😉

      Antworten
  • Markus
    Februar 9, 2014 5:15 pm

    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
      Februar 9, 2014 5:26 pm

      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
        Februar 16, 2014 5:31 pm

        „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
      Februar 16, 2014 5:29 pm

      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
  • Markus
    Februar 9, 2014 6:00 pm

    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
    • Jan Karres
      Februar 16, 2014 5:39 pm

      Das war jetzt aber mein Fehler. Habs im Artikel korrigiert 🙂

      Antworten
  • Jens
    Februar 16, 2014 2:45 pm

    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
      Februar 16, 2014 6:47 pm

      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
      Februar 20, 2014 6:58 pm

      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
  • Jules
    April 21, 2014 7:36 pm

    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
      April 21, 2014 9:04 pm

      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
  • Philipp
    Februar 25, 2015 12:53 am

    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
      März 31, 2015 4:48 pm

      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
  • Jan007
    März 20, 2015 5:29 pm

    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
    • Jan Karres
      März 31, 2015 7:11 pm

      Das sollte man über iptables behandeln können. Wie genau weiß ich auf die schnelle jedoch auch nicht. Das sollte aber recherchierbar sein.

      Antworten
      • Andreas
        September 19, 2015 12:20 pm

        Ich möchte das auch gerne einrichten (von extern mit vpn auf raspberry zu Hause und über Tor ins Internet) . Leider finde ich im Internet keine Lösung / Anleitung. Kann mir jemand helfen? VPN ist wie bei dir eingerichtet.

        Antworten
        • Andreas
          Oktober 13, 2015 10:01 pm

          Hat keiner eine Lösung?

          Antworten
  • Raspberry Pi: WLAN-Access-Point einrichten » Jan Karres
    Juni 4, 2015 11:25 am

    […] 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
  • Moritz_de
    Juni 6, 2015 9:30 pm

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

    Antworten
    • Jan Karres
      Juni 16, 2015 1:36 pm

      Ähnlich, wäre aber ein eigenes Tutorial. Habe ich mal auf meine Todo-Liste geschrieben 😉

      Antworten
  • Steffen S.
    August 22, 2015 9:23 pm

    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
      August 25, 2015 6:39 pm

      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
  • Lucas Fleischer
    Oktober 8, 2015 10:10 pm

    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
  • Hauke
    März 20, 2016 12:14 pm

    Hallo Jan,

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

    Danke,
    Hagen

    Antworten
  • Retch
    Januar 22, 2017 3:06 pm

    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
  • Walther
    Juli 22, 2022 4:19 am

    Hallo Jan,

    die Anleitung funktioniert mit den heutigen OS leider gar nicht mehr. Wie wäre es bitte mit einer Aktualisierung?

    VG Walther

    Antworten

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Bitte füllen Sie dieses Feld aus.
Bitte füllen Sie dieses Feld aus.
Bitte gib eine gültige E-Mail-Adresse ein.
Sie müssen den Bedingungen zustimmen, um fortzufahren.

Jan Karres
Jan Karres
Wirtschaftsinformatiker
Facebook
Twitter
YouTube
LinkedIn
Xing
GitHub

Themen

  • Blogging
  • Debian (Linux)
  • Eine Geschichte aus dem Leben des Jan
  • Fotos
  • Gaming
  • Gedanken
  • Linksammlungen
  • Privates
  • Projekte
  • Raspberry Pi
    • Einplatinencomputer (außer Raspberry Pi)
  • Schule und Studium
  • Tipps und Tricks
  • Videos
  • Vorgestellt
  • WordPress

Projekte

Dieser Blog ist meine kleine Base im Internet, in der ich über Themen schreibe, die mich persönlich beschäftigen. Abseits davon habe ich weitere Projekte im Netz, die teils aus Spaß entstanden, jedoch zum Teil auch meinen Kühlschrank füllen.

Alle Projekte

JanKarres.de © 2007-2022

Neueste Beiträge

  • Raspberry Pi: WLAN Access Point mit NordVPN (VPN Router) einrichten Dezember 5, 2020
  • Real Cookie Banner: Wie das Opt-in Cookie Banner für WordPress entstand November 18, 2020
  • Blog Setup erneut: Aufräumen einer kleinen Historie Oktober 13, 2020
  • devowl.io: Auf geht’s in das WordPress Business! März 10, 2020
  • Kuschelpartys: Nähe und Geborgenheit einfach erleben September 30, 2018

devowl.io

Meine Brötchen verdiene ich im Internet. Dazu habe ich gemeinsam mit meinem Kollegen Matze die devowl.io GmbH gegründet. Gemeinsam entwickeln und vertreiben wir in unser Plugins und Entwickler-Tools im WordPress Umfeld.

Mehr erfahren
  • Datenschutzerklärung
  • Impressum