[Projekt] Raspberry Pi 3 als VPN + TOR Gateway mit Subnet

  • 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:

    Code
    # 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
    Code
    # 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
    Code
    # 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
    Code
    # Routing von eth0:2 an TOR 
    
    
    sudo iptables -t nat -A PREROUTING -i eth0:2 -p tcp --syn -j REDIRECT --to-ports 9040
    Code
    # 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
    Code
    # 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.

    Einmal editiert, zuletzt von chris1211 (29. Januar 2017 um 08:53)

  • [Projekt] Raspberry Pi 3 als VPN + TOR Gateway mit Subnet? Schau mal ob du hier fündig wirst!

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!