rPI als VPN-Gateway für ein einzelnes Gerät im Heimnetz

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,

    ich benötige eure Hilfe bei der Umsetzung eines VPN-Gateway für ein einzelnes Gerät im Heimnetz.

    zunächst die Rahmenbedingungen

    rPi4 mit bullseye ist vorhanden.

    Wir befinden uns in einem privaten Netzwerk 192.168.1.0 hinter einem DSL-Router

    der rPi ist mit eth0 ein IP-Client in diesem privaten Netz und hat auf eth0 die feste IP 192.168.1.100

    Der DSL-Router ist die 192.168.1.200

    In diesem Netz gibt es 3 Clients mit festen IP-Adressen:

    C1: 192.168.1.11

    C2: 192.168.1.12

    C3: 192.168.1.13

    Das Gateway ist für alle Clients der DSL-Router 192.168.1.200

    Vorhaben:

    Die Verbindungen des Clients C2 nach aussen sollen über ein OpenVPN-Netz geschickt werden. Der rPi soll dabei als Router fungieren.

    Auf dem rPi wird mittels OpenVPN ein Tunnel aufgebaut. OpenVPN fungiert auf dem rPi als OVPN-Client. Beim Verbindungsaufbau wird ein virtuelles Device tun1 angelegt. Die IP für tun1 kommt per DHCP vom OVPN-Server.

    An dieser Stelle hänge ich nun.

    Was muss ich nun tun damit die Verbindungen des C2 in diesen Tunnel geroutet werden - und auch nur die Verbindungen des C2?

    Es sollen nur die Verbindungen nach extern in diesen Tunnel geroutet werden.

    C2 soll weiterhin im privaten Netz unter 192.168.1.12 für andere erreichbar sein

    C2 soll weiterhin andere Clients im privaten Netz 192.168.1.0 direkt erreichen können.

    Die Verbindungen der anderen Clients und des rPI selbst sollen weiterhin über den DSL-Router in's Internet laufen.

    Vielen Dank schonmal für eure Hilfe.

  • rPI als VPN-Gateway für ein einzelnes Gerät im Heimnetz? Schau mal ob du hier fündig wirst!

  • Auf dem PI muss das Forwarding aktiviert sein.

    Konfiguriere auf dem C2 eine default route (mit bester metric, wenn noch andere vorhanden) und den OpenVPN-Server als gateway (für diese default route). Zusätzlich auf dem C2 eine definierte Route für die IP-Adresse des OpenVPN-Server, mit dem PI als gateway.

    source-NAT (MASQUERADE) muss an den entsprechenden Interfaces, auch konfiguriert sein.

    BTW: Erlaubt der OpenVPN-Server, über ihn den Internetzugang? Wer betreibt diesen OpenVPN-Server?

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • Auf dem PI muss das Forwarding aktiviert sein.

    Konfiguriere auf dem C2 eine default route (mit bester metric, wenn noch andere vorhanden) und den OpenVPN-Server als gateway (für diese default route). Zusätzlich auf dem C2 eine definierte Route für die IP-Adresse des OpenVPN-Server, mit dem PI als gateway.

    source-NAT (MASQUERADE) muss an den entsprechenden Interfaces, auch konfiguriert sein.

    BTW: Erlaubt der OpenVPN-Server, über ihn den Internetzugang? Wer betreibt diesen OpenVPN-Server?

    das hatte ich tatsächlich vergessen zu erwähnen. Anpassungen an der Routingtabelle sind auf dem Client C2 leider nicht möglich (da Android, kein Root, FireOS). C2 kann selbst auch keine VPN-Verbindungen aufbauen

    Die Erkennung, wer einen Request gestellt hat, und die Aufteilung, was in den VPN-Tunnel geschickt wird und was nicht, die muss der Pi durchführen. Der Pi ist somit auch die Client-Seite des VPN-Tunnels.

    Der Pi müsste ein selektives Routing durchführen. Ich meine der richtige Fachbegriff ist adaptives Routing.

    Kann man sowas mit dem Pi bzw. Raspian durchführen?

    Meine Überlegungen gingen bisher in die Richtung eine virtuelle Netzwerkschnittstelle eth0.1 anzulegen mit einem anderen IP-Segment, z.B. 192.168.2.0, (der C2 bekommt dann auch eine IP aus diesem Bereich), und auf dem Pi zu sagen dass alle Requests über eth0.1 in den Tunnel geroutet werden sollen.

    Schöner wäre es wenn alle Clients im gleichen Subnetz bleiben und eine routing-Software (habe von einer namens quagga gelesen) sich den gesamten eingehenden Verkehr anschaut und dann transparent routet.
    Allerdings weiß ich nicht ob der Pi a) die nötige Performance bietet, b) ob die Software eine Aufteilung nach der Quelle vornehmen kann und c) ob man dann Teile des IP-Verkehrs an das virtuelle tun-Device schicken kann.

    Mir fehlt die Idee in welche Richtung ich suchen müsste.



    Einmal editiert, zuletzt von blacksun (30. April 2022 um 05:25)

Jetzt mitmachen!

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