Hallo zusammen,
Ich habe vor meinen Raspberry so einzurichten dass ich über ihn aus einem Subnet heraus über zwei VPNs und TOR ins Internet kann.
So soll die Verbindung laufen:
Client -> Raspberry -> VPN1 -> TOR -> VPN2
Wenn das funktioniert sollen noch zwei Proxys dahinter geschaltet werden aber so weit bin ich noch lange nicht.
Die beiden Netzwerke (lokales Netzwerk und das Subnet hinter dem Raspberry) sollen völlig getrennt voneinander sein.
Ich habe viele Anleitungen durchgelesen, aber leider nirgendwo etwa gefunden was mir weiterhilft. Es gibt zwar viele Anleitungen zum erstellen einer VPN Verbindung und auch welche um TOR einzurichten aber es gibt keins für beides zusammen und dann auch noch mit zwei VPNs. Falls genau diese Konstellation schonmal eingerichtet wurde habe ich den Thread nicht gefunden und biotte um Entschuldigung und einen Link zum betreffenden Thread.
Folgendes funktioniert schon:
Verbindung per WLAN (wlan0) mit dem vorhandenen Netzwerk (IP von DHCP).
DHCP-Server des Raspberry verteilt über LAN (eth0) IPs ans Clients.
Verbindung zu VPN1 und Verbindung zu VPN2 (und auch darüber vom Subnet aus surfen).
TOR ist Installiert.
Nun die Probleme wo ich momentan nicht weiter komme:
1.
Nachdem der Raspberry gestartet ist kann ich die VPNs manuell eins nach dem anderen starten. Es werden dann zwei Adapter erstellt (tun1 und tun2) auf dem jeweils ein VPN läuft.
Die beiden Befehle:
sudo openvpn /etc/openvpn/vpn1/Singapore.ovpn
sudo openvpn /etc/openvpn/vpn2/Hong\ Kong.ovpn
Wenn ich die selben Befehle aber ins Autostart (sudo nano /etc/rc.local) schreibe startet nur ein VPN und zwar immer das welches als erstes mit einem Befehl gestartet wird. Das zweite wird aus irgendeinem Grund ignoriert.
2.
Das Routing. Ich habe es geschafft testweise mit einem Client hinter dem Raspberry über eines der beiden VPNs ins Internet zu kommen und die direkte Verbindung von eth0 zu wlan0 zu unterbinden (denke ich zumindest, wie kann ich es überprüfen/sicherstellen?). Vom Raspberry aus soll also ein Tunnel zum VPN1 (tun1) laufen. Durch VPN1 (tun1) soll dann TOR eine Verbindung herstellen. Durch TOR soll dann das zweite VPN (tun2) laufen. Alles was an eth0 ankommt soll also an VPN2 (tun2) durchgereicht werden (und somit automatich auch durch TOR und VPN1 laufen) inkl. DNS und allem drum und dran. Alles was aus irgendeinem Grund nicht dadurch getunnelt werden kann soll blockiert werden.
Ich hoffe ich habe es einigermaßen verständlich erklärt und dass mir jemand weiterhelfen kann, ich habe momentan keine Idee wie es weiter geht da ich mich leider garnicht mit Routing auskenne und so nur die Befehle nutzen kann die ich im Internet finde.
Falls irgendwelche Informationen fehlen, bitte Bescheid sagen!
Vielen Dank im Vorraus.
Gruß
Chris
//edit:
Ich habe gestern noch etwas versucht. Da man in TOR nur feste IP's als Ein- bzw. Ausgang definieren kann und sich die IP Adressen von tun1 und tun2 bei jedem Reconnect ändern kann ich diese IP's ja leider nicht angeben. Deshalb habe ich überlegt ob ich vor und nach TOR nicht virtuelle Netzwerkadaper erstellen kann die dann eine feste IP haben.
IP's:
eth0 192.168.7.1
tun2 variabel
eth0:2 192.168.4.1
eth0:1 192.168.3.1
tun1 variabel
Die Verbindung sollte dann so laufen:
eth0 -> tun2 -> eth0:2 -> TOR -> eth0:1 -> tun1
Diese Routingbefehle habe ich versucht:
# Blockieren der direkten Verbindung von eth0 an wlan0
sudo iptables -A FORWARD -s 192.168.7.0/24 -i eth0 -o wlan0 -m conntrack --ctstate NEW -j REJECT
# Routing von eth0 an tun2
sudo iptables -t nat -A POSTROUTING -o tun2 -j MASQUERADE
sudo iptables -A FORWARD -i tun2 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o tun2 -j ACCEPT
# Routing von tun2 an eth0:2
sudo iptables -t nat -A POSTROUTING -o eth0:2 -j MASQUERADE
sudo iptables -A FORWARD -i eth0:2 -o tun2 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i tun2 -o eth0:2 -j ACCEPT
# Routing von eth0:2 an TOR
sudo iptables -t nat -A PREROUTING -i eth0:2 -p tcp --syn -j REDIRECT --to-ports 9040
# TOR Einstellungen
Log notice file /var/log/tor/notices.log
VirtualAddrNetwork 10.192.0.0/10
AutomapHostsSuffixes .onion,.exit
AutomapHostsOnResolve 1
TransPort 9040
TransListenAddress 192.168.4.1
DNSPort 53
DNSListenAddress 192.168.4.1
OutboundBindAddress 192.168.3.1
# Routing von eth0:1 an tun1
sudo iptables -t nat -A POSTROUTING -o tun1 -j MASQUERADE
sudo iptables -A FORWARD -i tun1 -o eth0:1 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth0:1 -o tun1 -j ACCEPT
Leider hat es so nicht funktioniert, es muss also entweder ein Fehler drin sein oder das funktioniert prinzipiell überhaupt nicht.