Hallo!
Als Dankeschön für die Hilfe, die ich hier erhalten habe, biete ich ein step-by-step Tutorial meines Tor Setups mit dem Pi an.
Link zum ursprünglichen Thread:
TOR auf dem Pi
Dem einen oder anderen mögen manche Schritte etwas zu ausführlich oder offensichtlich erscheinen, jedoch habe ich das Tutorial so geschrieben, wie es selbst gerne gehabt hätte.
Die PC-Welt ist nur mein Hobby. Daher ist das Tutorial bezüglich der nötigen Kenntnis so pragmatisch wie möglich gehalten.
#STAND vom 27.02.2014#
________________
A.
Mein Hardware-Setup:
1x Router mit LAN und WLAN
1x Hauptrechner (Windows 7 64bit) mit 2 LAN-Schnittstellen (LAN 1 und LAN 2)
1x Raspberry-PI (Raspbian) mit LAN und WLAN (eth0 und wlan0)
I.
Der Hauptrechner ist per LAN-Kabel über LAN 1 direkt mit dem Router verbunden.
II.
Der Hauptrechner ist per Crossover-LAN-Kabel über LAN 2 mit dem Raspberry Pi verbunden.
(Ein Crossover-LAN-Kabel ist etwas anders verdrahtet als ein normales LAN-Kabel und wird für eine direkte Verbindung zweier PCs genutzt; möglicherweise funktioniert es auch mit einem normalen LAN-Kabel)
III.
Der Raspberry Pi ist per WLAN mit dem Router verbunden.
B.
Was möchte ich mit diesem Setup erreichen?
Mein Hauptrechner soll zwei parallele Internetverbindungen zur Verfügung haben. Eine „normale“ Verbindung und eine Verbindung, die über das Tor-Netzwerk läuft.
I.
Die „normale“ Verbindung erhält er über den Router an LAN 1.
II.
Die Tor-Verbindung erhält er über den Pi an LAN 2.
C.
Wie kann ich diese Tor-Verbindung über den Pi herstellen?
Der Pi muss die Anfragen des Hauptrechners also erstens überhaupt einmal in das Internet weiterleiten und zweitens über das Tornetzwerk schicken.
schematisch:
(Hauptpc: Anfrage) => LAN => (Pi; schleust Traffic über Tor) => WLAN => (Router) => Internet
Dazu müssen wir am Hauptrechner und am Pi folgende Einstellungen vornehmen.
I.
Einstellungen am Hauptrechner:
Diese sind schnell gemacht.
Wir navigieren wie folgt:
1. Start>Systemsteuerung>Netzwerk- und Freigabecenter>Adaptereinstellungen ändern>
2. Rechtsklick auf LAN 2 - also auf den LAN-Port, der direkt mit eurem Pi kommuniziert -
> Eigenschaften
Doppelklick auf
> Internetprotokoll Version 4 (TCP/IPv4)
3. Folgendes eintragen:
IP-Adresse: 192.168.2.3
Subnetzmaske: 255.255.255.0
Standardgateway: 192.168.2.1
Bevorzugter DNS-Server: 192.168.2.1
ACHTUNG: Ihr könnt und solltet die Einträge 1zu1 übernehmen, da diese nichts mit eurem Router zu tun haben. Es geht hierbei nur um die direkte Kommunikation zwischen dem Hauptrechner und dem Pi.
4. Bestätigen und fertig sind die Einstellungen am Hauptrechner.
II.
Einstellungen am Raspberry Pi:
Ich gehe von einer frischen Installation von Raspbian auf dem Pi aus - geupdated auf den neusten Stand.
Der WLAN-Stick ist bereits installiert.
((
Ich habe mich für den bei Pi-Usern beliebten EDIMAX mini-WLAN-Stick entschieden. Der funktioniert bezüglich der Treiber direkt nach dem einstecken.
Wir sind eingeloggt als User „pi“.
1.
Zunächst wollen wir die Network-Interfaces einrichten; ich habe mich sowohl für das eth0 (LAN) und das wlan0 (WLAN) für eine static IP (eine fest-eingestellte IP) entschieden. Erklärung folgt.
Befehl:
sudo nano /etc/network/interfaces
- es öffnet sich die Netzwerkkonfigurationsdatei über das Editierprogramm „nano“; diese ändern wir mit folgendem Inhalt ab:
(Die Bemerkungen mit den Rauten könntet ihr zur eigenen Information auch übernehmen, da die Raute das dahinter Folgende auskommentiert)
_________
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.2.1
netmask 255.255.255.0
network 192.168.2.0
broadcast 192.168.2.255
# Diese Einstellungen müssen 1zu1 übernommen werden, damit eine Verbindung zwischen Pi und Hauptrechner besteht.
# ein gateway (192.168.2.1) darf hier nicht benutzt werden; ansonsten kollidiert dieses mit dem Gateway der WLAN-Verbindung und nur auf letzteres kommt es bezüglich der externen Internetverbindung an
auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
# Ihr könntet hier auch einfach: - iface wlan0 inet dhcp - einstellen;
# Dann würde der Pi eine IP-Adresse von dem WLAN-Router zugewiesen bekommen
# die folgenden drei (!) Einträge würden in diesem Falle nicht übernommen werden
address 192.168.178.222
netmask 255.255.255.0
gateway 192.168.178.1
# mein Router hat die Adresse 192.168.178.1; typisch wäre jedoch auch 192.168.1.1
# Das müsst ihr auf jeden Fall anpassen!
wpa-ap-scan 1
wpa-scan-ssid 1
wpa-ssid „EUERWLANNETZWERK“
wpa-psk „EUERWLANPASSWORT“
# die Anführungszeichen sind auch zu übernehmen!
__________
- Änderungen mit der Tastenkombination STRG-O speichern und mit ENTER bestätigen
- Datei mit STRG-X verlassen
2. Als nächstes installieren wir TOR
a) Tor Hauptsoftware
Befehl:
sudo apt-get install tor
- Wenn es fertig installiert ist:
Befehl:
sudo nano /etc/tor/torrc
- Dies öffnet die Tor-Konfigurationsdatei; in der Datei selbst steht sehr viel, was jedoch alles auskommentiert ist; ihr müsst Folgendes irgendwo in die Datei einfügen; ich selbst habe es einfach direkt nach der FAQ-Zeile eingefügt.
____________
Log notice file /var/log/tor/notices.log
# Log ist optional
VirtualAddrNetwork 10.192.0.0/10
AutomapHostsOnResolve 1
TransPort 9040
TransListenAddress 192.168.2.1
# an dieser Stelle sagt ihr der TOR-Software, dass sie alles, was auf der genannten
# Addresse ankommt über den TOR-Port 9040 weiterleitet
# BEACHTE: die Adresse entspricht der IP des LAN-Ports des Pi!
DNSPort 53
DNSListenAddress 192.168.2.1
# s.o.
_________
- Änderungen mit der Tastenkombination STRG-O speichern und mit ENTER bestätigen
- Datei mit STRG-X verlassen
b) Arm-Monitoring (optional)
- wer will, kann sich noch ein Tor-Monitoring Programm namens "arm" installieren
Befehl:
sudo apt-get install tor-arm
- starten lässt es sich im Anschluss wie folgt
Befehl:
sudo -u debian-tor arm
(das Programm schlägt selbst vor, es nicht mit root-Rechten laufen zu lassen; es lässt sich aber auch mit einem einfachen "arm" starten)
3. iptables einrichten:
// An dieser Stelle nochmal einen besonderen Dank an den User „haimi“ für die richtigen Befehle.
ACHTUNG: iptables ist bereits in Raspian vorinstalliert!
a) wir geben uns als erstes permanente Rootrechte, ansonsten bekommen wir unter C. II. 3. e) 1) eine Fehlermeldung; ein einfaches "sudo" mag er scheinbar an dieser Stelle nicht
Befehl:
su
=> das root-Passwort eintragen
((
EXKURS: Root-Passwort ändern
Befehl: sudo passwd root
=> neues Passwort zweimal eintragen
))
b) wir löschen zur Sicherheit alle Voreinstellungen bei iptables:
Befehle:
iptables -F
Befehl:
iptables -t nat -F
c) wir weisen iptables an, den Traffic des Hauptrechners über den Pi weiterzuleiten:
Befehl:
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
Befehl:
iptables -A FORWARD -i wlan0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
Befehl:
iptables -A FORWARD -i eth0 -o wlan0 -j ACCEPT
d) wir weisen iptables an, die Anfragen des Hauptrechners, die über die LAN-Schnittstelle des Pi (eth0) ankommen, an die TOR-Ports weiterzuleiten und damit durch das Tornetzwerk zu schicken:
Befehl:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 22 -j REDIRECT --to-ports 22
((dieser Eintrag muss nicht unbedingt sein, er sorgt nur dafür, dass man sich über SSH zum Pi verbinden kann))
Befehl:
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 53 -j REDIRECT --to-ports 53
Befehl:
iptables -t nat -A PREROUTING -i eth0 -p tcp --syn -j REDIRECT --to-ports 9040
e) Damit wäre iptables fertig eingerichtet. Die Software speichert die Einträge jedoch nur bis zum nächsten Neustart. Das wollen wir vermeiden.
1) iptables-Befehle in einer Datei speichern:
Befehl:
sudo iptables-save > /etc/iptables.save
2) den Pi anweisen, die iptables-Einstellungen bei jedem Start zu laden:
Befehl:
sudo nano /etc/rc.local
- das öffnet die Autostart-Datei von Raspian im nano-Editor
- ihr müsst eine Zeile vor „exit 0“ folgendes eintragen
_____
..
..
..
iptables-restore < /etc/iptables.save
exit 0
_____
- Änderungen mit der Tastenkombination STRG-O speichern und mit ENTER bestätigen
- Datei mit STRG-X verlassen
f) Neustart und Kontrolle
- nach einem "sudo reboot" könnt ihr mit dem Befehl "iptables -t nat -L" noch einmal einsehen, ob alles geklappt hat
4. resolv.conf überprüfen
Befehl:
sudo nano /etc/resolv.conf
- öffnet die DNS-Konfigurationsdatei im nano-Editor
=> IP in die des Routers ändern:
_____
nameserver 192.168.178.1
# in meinem Fall - wie gehabt - 192.168.178.1
______
- Änderungen ggf. mit der Tastenkombination STRG-O speichern und mit ENTER bestätigen
- Datei mit STRG-X verlassen
5. Testen, ob alles läuft:
Befehl:
sudo reboot
- Pi neustarten, um Änderungen sauber zu übernehmen.
Befehl:
ifconfig
- zeigt euch an, ob ihr eure Interfaces richtig konfiguriert habt; dort müssten die von euch vergebenen IPs stehen
Befehl:
sudo service tor status
- zeigt euch an, ob der TOR-Service läuft; es dürften keine Fehlermeldungen angezeigt werden
FINALER TEST:
=> ab in einen Browser (nicht mit dem Pi, sondern mit dem verbundenen Hauptrechner!!!!!!!):
- besucht z.B. folgende Seite:
Ihr solltet nun 1. in der Lage sein, diese aufzurufen und 2. nicht eure „echte“ IP sehen.
Wenn das klappt, habt ihr das Tutorial erfolgreich durchlaufen!
ACHTUNG:
In dieser Konfiguration wird nur der Traffic der vom Hauptrechner über den Pi weitergeleitet wird, durch das Tornetzwerk geschickt!
Nicht wundern, wenn der Traffic des Pi selbst nicht über das Tor-Netzwerk geht. Wenn ihr über den Pi ipchicken.com aufruft, werdet ihr also eure „echte“ IP sehen.
Ich bitte um Feedback, Tipps, Erweiterungen, andere Ideen und ggf. Korrekturen. Falls jemandem ein Einstellung auffällt, die die Anonymität gefährdet, raus damit!
__________________
Weiteres:
A.
Eine gute Anleitung, wie ihr aus dem Pi einen TOR-WLAN-Accesspoint macht, findet ihr hier:
http://learn.adafruit.com/onion-pi?view=all
B.
Ich habe gemerkt, dass die hier vorgestellte Idee in seinen Grundzügen dem "Whonix"-Projekt ähnelt. Dies ist noch sehr viel ausgeklügelter und vielleicht für den einen oder anderen einen Blick wert.
https://www.whonix.org/wiki/Main_Page
________