Tor Gateway – Raspberry Pi zum anonymen surfen verwenden – AnoPi

Oft ist anonymes Surfen von Vorteil, zum einen möchte man nicht unbedingt immer alles über sich preis geben, zum anderen ermöglicht ein Tor Gateway Gästen anonymen Zugang ins Netz. Ein oft genutztes Anwendungsbeispiel ist das Umgehen der Steam Länder-sperre zum aktivieren von PC-Spielen die eigentlich für Deutschland oder andere Länder gesperrt wurden.

In diesem Tutorial zeige ich euch wie auf Basis des Raspberry Pi ein WiFi Tor-Gateway, auf auch als Onion Pi bezeichnet, selbst aufbauen könnt.

Update 11/2016: Das Tutorial wurde auf den RasPi 3 aktualisiert und auf Validität geprüft
Update 09/2017: Update für Raspbian Stretch

Inhaltsverzeichnis

Was ist Tor und wie funktioniert es?

Tor oder auch The Onion Router ist eine kostenlose Software um online anonym unterwegs zu sein und um Internet-Zensur, zum Beispiel durch Regierungen, zu umgehen. Das Tor Netzwerk besteht aus freiwilligen die sich zu einem Netzwerk zusammengeschlossen haben, der Datenverkehr der Tor Benutzer wird über dieses Netzwerk geleitet um den Standort und die Aktivität des Benutzers zu verschleiern.

Um die Anonymität zu gewährleisten sendet der Tor-Client oder euer Tor Gateway euren gesamten Datenverkehr über das Tor Netzwerk, die Daten werden hierbei immer über mehrere Tor Knoten geleitet bis diese vom Letzten Knoten (auch Exit-Node genannt) an das Ziel weitergeleitet werden. Der Datenverkehr ist bis zur Exit Node verschlüsselt, wird dort entschlüsselt und an das eigentliche Ziel weitergegeben.

Wichtig!

Das alleinige verwenden von Tor über den Raspberry Pi garantiert keine Anonymität, wenn ihr anonym im Netz unterwegs sein möchtet solltet ihr euch auch so verhalten. Verwendet also keine Logins, Webseiten oder E-Mail Adressen die Rückschlüsse auf eure Identität zulassen. Benutzt zum Surfen am besten FireFox mit aktivierten AddOns welche das Anonyme Surfen unterstützen, das ist zum Beispiel das Plugin NoScript, Better Privacy und HTTPS Everywhere um Böse Identifikations-Scripte und Schnüffler an den Exit Nodes zu umgehen. Löscht nach einer Sitzung immer eure Browser Daten wie Cookies und Offline Daten, CCleaner unterstützt euch hierbei. Ihr solltet euch bewusst sein das Tor auch gerne von zwielichtigen Gestallten für Online Betrug (Fraud) verwendet wird, persönliches und kritisches sollte daher niemals bzw nicht ohne SSL-Verschlüsselung übertragen werden.

200px-Tor-logo-2011-flat.svg

Was benötige ich hierzu?

Da wir allen Datenverkehr über den Raspberry Pi ins Tor Netz leiten möchten benötigt unser Raspberry Pi zwei Netzwerkschnittstellen. Da nur eine Ethernet-Schnittstelle vorhanden ist wird die zweite Netzwerkschnittstelle via WLAN realisiert. Die LAN Seite ist quasi der Ausgang Richtung Tor Netzwerk (ins Internet) und die WLAN Seite ist Quasi euer Verbindungspunkt (WLAN Hotspot), also der Eingang für euren Rechner.

Benötigte Hardware

  • Einen Raspberry Pi 3
    • Mit SD-Karte für das Betriebssystem (mindestens 4GB) – Für alle Modelle geeignet
    • Ein Netzteil mit mindestens 1200mA und MicroUSB Anschluss
    • Ein SD-Kartenleser um eure SD-Karte mit dem Betriebssystem zu bespielen (für Micro SD Adapter benötigt)
    • Ein Gehäuse für den Raspberry Pi  – Optional
  • Ein Ethernet Kabel um euren RasPi mit eurem DSL-Router zu verbinden

Voraussetzung ist natürlich ein Internet-Anschluss und ein DSL-Router mit freiem LAN-Anschluss, ich verwende eine FritzBox.

Raspberry Pi als Tor Gateway – Vorbereiten

Wir müssen, bevor wir auf unserem Raspberry Pi die Tor Software installieren einige Vorbereitungen treffen.

  1. Bespielt eure SD-Karte mit dem aktuellsten Raspbian ImageSiehe Raspberry Pi Einsteiger Tutorial Teil 2
  2. Verbindet euren Raspberry Pi via LAN-Kabel mit eurem Heimnetzwerk und richtet ihn ein – Siehe Raspberry Pi Einsteiger Tutorial Teil 3

Tipp:
Falls ihr den Raspberry Pi ohne Monitor betreibt schaltet den HDMI-Anschluss ab, das spart zusätzlich Strom (tvservice -o).

Raspberry Pi als Tor Gateway Einrichten

Als erstes aktualisieren wir unser Betriebssystem und die Firmware wie immer via APT

Da wir unseren kleinen Computer direkt am Internet bzw. als Hotspot betreiben müsst ihr auf jeden Fall das Standard-Passwort des Benutzers Pi ändern, das erledigt folgender Befehl für uns. Nach Eingabe des alten Kennworts müsst ihr das neue eingeben und bestätigen.

WLAN Hotspot einrichten

Als nächstes konfigurieren wir den WLAN-Stick als Hotspot um später unseren Rechnern und Gästen einen anonymen Zugang bereitstellen zu können. Die Einrichtung des Hotspot / Access Point verläuft in mehreren Schritten:

  1. WLAN und LAN Verbindung prüfen
  2. DHCP-Server Software auf dem Raspberry Pi einrichten (das WLAN Geräte eine IP-Adresse erhalten)
  3. WLAN Adapter konfigurieren (IP-Adresse vergeben)
  4. Die Access Point Software einrichten (Steuert die Konfiguration des WLAN Netzwerkes)
  5. Netzwerk Routing einstellen (Daten aus dem WLAN ans Internet weiterleiten)
  6. Hotspot testen

Raspberry-pi-tor-gateway

WLAN Adapter konfigurieren

Für unser WLAN verwenden wir das Netz 192.168.179.0 mit der Netzmaske 255.255.255.0 unser Raspberry Pi wird für WLAN Clients das Standard Gateway und erhält die IP-Adresse 192.168.179.1 . Falls das Subnetz in eurem Netzwerk schon vergeben ist verwendet bitte ein anderes.

Für das aktuelle Raspbian Stretch müssen wir der einfachheit halber die normalen Namen für die Netzwerkverbindungen wiederherstellen.

Mit Jessie und Stretch übernimmt der dhcp client deamon (dhcpcd) die Konfiguration der Netzwerkinterfaces wenn wir es im nicht explizit untersagen, daher konfigurieren wir für WLAN eine feste IP-Adresse und belassen eth0 in der Standard-Konfiguration (bezieht eine IP-Adresse von eurem Heim-Router oder Kabel-Modem)

fügt ganz unten folgendes ein

Speichern wieder mit STRG+X, Y und Enter. Rebootet euren Pi.

Access Point Software am Raspberry Pi konfigurieren

Als erstes installieren wir hostapd, die Software macht aus unserer WLAN Karte am Raspberry Pi 3 einen WLAN Access Point

Wir konfigurieren nun das WLAN Netzwerk das unser Raspberry Pi später ausstrahlt. Hierzu erstellen wir eine Konfigurationsdatei für den vorher installierten Dienst hostapd.

Fügt folgende Konfiguration ein, diese bestimmt das WLAN Netz auf dem Adapter wlan0 erstellt wird und der WLAN Name raspberry.tips ist. Als Passwort für das WLAN Netzwerk wird RaspberryTor verwendet unter Verwendung von WPA Verschlüsselung (Auf Groß- Kleinschreibung achten!).

Speichert und beendet wie immer und stellt sicher das keine Leerzeichen etc. in der Datei vorhanden sind, die Software ist hier sehr genau.

Wir Editieren nun noch die Parameter des Dienstes um festzulegen wo wir unsere WLAN Access Point Konfigurationsdatei abgelegt haben.

Wir ändern die Zeile  #DAEMON_CONF=““ wie folgt ab, vergesst nicht die Raute zu entfernen. Speichert und Beendet Nano wie gewöhnlich.

Nach einem Reboot solltet ihr mit einem WLAN Gerät (z.B. euer Smartphone) das neue WLAN schon sehen, falls nicht ist etwas schief gelaufen.

DHCP-Server Software auf dem Raspberry Pi einrichten

Da wir Geräte, die sich mit dem WLAN Hotspot verbinden, nicht immer manuell mit den passenden IP-Adressen etc konfigurieren möchten installieren wir auf unserem Raspberry Pi einen DHCP-Server der mit dem WLAN verbundenen Geräten automatisch ihre Einstellungen übermittelt (dnsmasq enthält einen einfachen DHCP Server). Die Software hostap übernimmt für uns die Bereitstellung des Access Points auf dem Raspberry Pi.

Wir editieren die Konfiguration des DHCP-Servers

Wir fügen ans Ende der Datei folgende DHCP Server Konfiguration ein

Wir speichern und beenden den Editor Nano, gespeichert wird bei Nano mit STRG+X, Y und Enter.

Routing und NAT am Raspberry Pi einrichten

Es existiert nun ein WLAN, eine Verbindung zum Internet via LAN, aber woher soll der Raspberry Pi nun wissen was er mit den Daten, welche über das WLAN bei Ihm ankommen, machen soll? Das ist ganz einfach, wir richten ein Routing ein welches bestimmt das die Daten aus dem WLAN Netz an das Internet weitergeleitet werden, das ganze passiert via Network Adresse Translation (NAT).

Als erstes aktivieren wir das IP Forwarding in der Datei sysctl.conf. Das benötigen wir um überhaupt Daten zwischen den Netzwerken weiterleiten zu können.

Wir fügen ans Ende der Datei folgende Zeile ein und speichern/beenden wie gewohnt.

Jetzt konfigurieren wir noch das NAT zwischen WLAN0 und ETH0 über das Tool iptables (die Änderungen lander in der Datei /etc/iptables.ipv4.nat)

Wichtig! Erhaltet ihr einen Fehler ( modprobe: ERROR: ../libkmod/libkmod.c:557 kmod_search_moddep() could not open moddep file …) müsst ihr euren Pi mit „sudo reboot“ einmal neu starten und die Einstellungen erneut vornehmen.

Da wir nach jedem Reboot die Konfiguration für das NAT wieder laden möchten installieren wir noch ein tool das für uns diesen schritt erledigt.

Bestätigt im Setup-Dialog das Speichern der Regeln für IPV4 mit YES für IPv6 mit NO

Dann speichern wir die Regeln.

WLAN Hotspot testen

Jetzt wird es Zeit unsere vorgenommenen Konfigurationen zu testen. Um alle Änderungen zu aktivieren führen wir jetzt einen Reboot durch, das ist einfacher als alle Dienste nun von Hand zu starten.

Nach einen Reboot solltet ihr eich mit einem beliebigen WLAN Gerät verbinden und im Internet surfen können. Bei meinem Test mit meinem Windows Phone funktioniert alles einwandfrei.

wp_ss_20150125_0002

Solltet ihr kein WLAN finden ist vermutlich der hostapd nicht richtig gestartet worden, ihr könnt diesen manuell starten um nach dem Fehler zu suchen.

Raspberry Pi – Tor einrichten

Da wir nun einen voll funktionsfähigen Hotspot bzw. Access Point haben können wir mit der Einrichtung unserer Tor Software zum anonymen Surfen über den Raspberry Pi fortfahren.

Wir installieren als erstes die Software Tor.

Alle notwendigen Einstellungen erledigen wir in der Konfigurationsdatei der Tor Software, wir editieren diese mit dem Editor Nano

Wir fügen folgende Konfiguration ganz oben in die Datei ein. Diese Parameter bestimmen die Log Datei, das virutelle Netzwerk für den Datenverkehr und die IP-Adresse auf welcher gelauscht wird (unser WLAN Interface).

Gespeichert wird mit STRG-X, Y und Enter.

Da die Tor Software auf unserem Raspberry Pi mit einem virtuellen Netz arbeitet müssen wir die iptables Parameter noch anpassen sodass der Datenverkehr vom wlan nicht mehr direkt ins Internet gelangt sondern über die Tor Software läuft und dann ins Internet gesendet wird. Hierzu setzen wir die Konfiguration von IPTables zurück.

Dann definieren wir als erstes eine Ausnahme die besagt das SSH und DNS Datenverkehr nicht über Tor geleitet wird sondern direkt am Raspberry Pi landet und unter Umständen direkt ins Internet weitergeleitet wird.

Mit dieser Regel definieren wir das aller weiterer Datenverkehr aus dem WLAN über Tor geroutet wird (Port 9040 auf welchem der Tor Dienst lauscht).

Dann speichern wir die Tor Regeln wieder in der Datei ab welche der Persistance Dienst benutzt um diese nach jedem boot zu laden

Jetzt fügen wir den Tor Dienst noch zum automatischen starten hinzu

Nach einem Reboot ist die Arbeit auch schon erledigt.

Wichtig! Um zu überprüfen das ihr auch wirklich via Tor im Internet unterwegs seit könnt ihr die Check-Seite von Tor verwenden.

https://check.torproject.org

Bei mir sieht das Ergebnis so aus.

Viel Spaß beim anonymen surfen!

wp_ss_20150125_0003