VPN-Gateway für ein einzelnes Gerät im Heimnetz mit rPi
Hallo zusammen,
ist es möglich ein OVPN-Gateway auf rPI einzurichten das nur von einem Gerät im Heimnetz bzw. selektiv von Geräten benutzt werden kann?
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 - aber 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.
Auf Seite des C2 war meine Überlegung dass ich diesem sage dass sein Gateway der rPi 192.168.1.100 sein soll. Auf Seite rPi 192.168.1.100 war mein Gedanke dass ich einen "Selektor" brauche der Verbindungen prüft von wem sie kommen, ob von C2 oder von etwas anderem. Wie könnte ich einen solchen Selektor realisieren?
Der Pi hat nur NIC (und das soll auch so bleiben). Eine physische Trennung mittels Ports funktioniert schonmal nicht.
Vielen Dank schonmal für eure Hilfe.
ist es möglich ein OVPN-Gateway auf rPI einzurichten das nur von einem Gerät im Heimnetz bzw. selektiv von Geräten benutzt werden kann?
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 - aber 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.
Auf Seite des C2 war meine Überlegung dass ich diesem sage dass sein Gateway der rPi 192.168.1.100 sein soll. Auf Seite rPi 192.168.1.100 war mein Gedanke dass ich einen "Selektor" brauche der Verbindungen prüft von wem sie kommen, ob von C2 oder von etwas anderem. Wie könnte ich einen solchen Selektor realisieren?
Der Pi hat nur NIC (und das soll auch so bleiben). Eine physische Trennung mittels Ports funktioniert schonmal nicht.
Vielen Dank schonmal für eure Hilfe.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 2638876046
Url: https://administrator.de/contentid/2638876046
Ausgedruckt am: 22.11.2024 um 10:11 Uhr
13 Kommentare
Neuester Kommentar
Der TO ist vermutlich wieder so ein Opfer dieser gruseligen öffentlicher VPN Provider wie NordVPN usw. und will mit C2 sehr wahrscheinlich Geofencing überwinden?!
Die Lösung ist kinderleicht. Es gibt zwei Optionen Varianten
Wenn du zusätzlich noch sicherstellen willst das nur C2 den RasPi benutzt stellst du das mit einer IP Accessliste über iptables oder die moderneren nftables ein. Fertisch...
Die Lösung ist kinderleicht. Es gibt zwei Optionen Varianten
- Das Default Gateway von C2 wird auch den Raspberry Pi VPN Server gesetzt
- Im Internet Router machst du ein Policy Routing was das Default Gateway von C2 auf den RasPi umsetzt.
Wenn du zusätzlich noch sicherstellen willst das nur C2 den RasPi benutzt stellst du das mit einer IP Accessliste über iptables oder die moderneren nftables ein. Fertisch...
Moin,
Du hängst den Raspberry ganz normal in dein 192.168.1.0/24-Netz. Der Raspberry bekommt dort auch (erstmal) als Gateway den DSL-Router 192.168.1.200 eingetragen. Dann legst du auf dem Raspberry deine VPN-Konfiguration an. Dort kannst du entweder redirect-gateway nutzen, dann wird jeder ausgehende Traffic vom RPi durch den Tunnel geschickt oder aber du kannst entsprechend die Routen setzen lassen, was über den Tunnel gehen soll. Das passiert direkt über die OpenVPN-Konfiguration.
Dann aktivierst du auf dem Pi noch das IP-Forwarding (sysctl -w net.ipv4.ip_forward=1) und dann bist du eigentlich schon fertig (wenn du mit dem Server auf der Gegenseite eine korrekte Site2Site-Konfiguration hast)
Wenn nicht, musst du den Traffic ggf. durch den VPN-Tunnel NATten.
Für das lokale Netz wird niemals das Gateway genutzt.
VG
Zitat von @blacksun:
Könntest du mir das an einem Beispiel aufzeigen?
Ich steh auf dem Schlauch, ob ich auf dem Pi ein eth0.1 brauche, und weil ich beim route-Befehl nur Zielnetz und Gateway setze, nicht aber die Quelle
Nein, du brauchst kein eth0.1 - Also:Könntest du mir das an einem Beispiel aufzeigen?
Ich steh auf dem Schlauch, ob ich auf dem Pi ein eth0.1 brauche, und weil ich beim route-Befehl nur Zielnetz und Gateway setze, nicht aber die Quelle
Du hängst den Raspberry ganz normal in dein 192.168.1.0/24-Netz. Der Raspberry bekommt dort auch (erstmal) als Gateway den DSL-Router 192.168.1.200 eingetragen. Dann legst du auf dem Raspberry deine VPN-Konfiguration an. Dort kannst du entweder redirect-gateway nutzen, dann wird jeder ausgehende Traffic vom RPi durch den Tunnel geschickt oder aber du kannst entsprechend die Routen setzen lassen, was über den Tunnel gehen soll. Das passiert direkt über die OpenVPN-Konfiguration.
Dann aktivierst du auf dem Pi noch das IP-Forwarding (sysctl -w net.ipv4.ip_forward=1) und dann bist du eigentlich schon fertig (wenn du mit dem Server auf der Gegenseite eine korrekte Site2Site-Konfiguration hast)
Wenn nicht, musst du den Traffic ggf. durch den VPN-Tunnel NATten.
Nicht dass wir unterschiedliches meinen:
Die Selektion, was in den OVPN-Tunnel geschickt werden soll und was nicht, muss zwingend auf dem Pi erfolgen da eine Anpassung der Routen auf dem Client "C2" nicht möglich ist (weil Android, kein Root, SmartTV).
Sprich der Client C2 hat als Gateway eine IP des Pi eingetragen und schickt alles, wofür ein Gateway benötigt wird, also alles ausser 192.168.1.x, zu dieser IP des Pi
Das ist schon richtig. Alles was den RPi als Gateway hat, geht dann über das VPN raus und alles was deinen DSL-Router als Gateway hat geht direkt raus.Die Selektion, was in den OVPN-Tunnel geschickt werden soll und was nicht, muss zwingend auf dem Pi erfolgen da eine Anpassung der Routen auf dem Client "C2" nicht möglich ist (weil Android, kein Root, SmartTV).
Sprich der Client C2 hat als Gateway eine IP des Pi eingetragen und schickt alles, wofür ein Gateway benötigt wird, also alles ausser 192.168.1.x, zu dieser IP des Pi
Für das lokale Netz wird niemals das Gateway genutzt.
VG
Warum willst du denn allen Clients den Pi als Gateway geben? Das ist doch schon aus Performance-Sicht sinnlos…
Aber wenn du unbedingt möchtest, ist Policy-Based-Routing dein Freund.
Siehe z.B. hier: https://osric.com/chris/accidental-developer/2019/03/linux-policy-based- ...
VG
Aber wenn du unbedingt möchtest, ist Policy-Based-Routing dein Freund.
Siehe z.B. hier: https://osric.com/chris/accidental-developer/2019/03/linux-policy-based- ...
VG
Damit scheidet Vorschlag 2 schonmal aus, oder?
Ja, falsche Hardware. Kann die Kiste nicht.Die Pi ist doch nur ein OVPN-client. Warum VPN-Server?
Sorry, da hast du natürlich Recht. Server war falsch...Der OVPN Client ist quasi das Gateway ins VPN für C2. Siehe auch hier.
Dir bleibt mit der FritzBox dann nur C2 eine statische IP außerhalb des FB DHCP Pools zu vergeben und als Default Gateway dann den Pi einzutragen. DNS z.B. Quad 9 auf C2.
Warum willst du denn allen Clients den Pi als Gateway geben?
Will er doch gar nicht.Nur C2 damit er das Geofencing überwindet. Vermutlich irgendweien Setop Box etc. Der TO hat leider nicht gelesen was diese VPN Provider mit seinem Account so alles machen sonst würde er das lassen.
Zitat von @aqui:
Nur C2 damit er das Geofencing überwindet. Vermutlich irgendweien Setop Box etc. Der TO hat leider nicht gelesen was diese VPN Provider mit seinem Account so alles machen sonst würde er das lassen.
Dann wird auf dem C1 eine Anfrage zu google.de gestellt. Die Namenauflösung läuft wie gerade.
Dann schickt C1 seinen Request für 8.8.9.9 an den Pi. Nun sollte der PI erkennen dass die Anfrage von C1 kam und es somit nicht durch den Tunnel schicken.
Ich weiß, man könnte diese Variante vermeiden indem man auf dem C1 nicht den Pi als Gateway einträgt.
Warum willst du denn allen Clients den Pi als Gateway geben?
Will er doch gar nicht.Nur C2 damit er das Geofencing überwindet. Vermutlich irgendweien Setop Box etc. Der TO hat leider nicht gelesen was diese VPN Provider mit seinem Account so alles machen sonst würde er das lassen.
Dann schickt C1 seinen Request für 8.8.9.9 an den Pi. Nun sollte der PI erkennen dass die Anfrage von C1 kam und es somit nicht durch den Tunnel schicken.
Ich weiß, man könnte diese Variante vermeiden indem man auf dem C1 nicht den Pi als Gateway einträgt.
@aqui: Hat er doch so geschrieben... Sonst würde die Anfrage von C1 ja garnicht zum Pi gehen...
C1 bekommt ja DHCP mit Gateway und DNS von der FritzBox, geht also komplett über die FritzBox wie es der TO will.
C2 darf kein DHCP von der FritzBox bekommen denn der soll ja übers VPN. Also statische IP und statisches Default Gateway auf den RasPi und DNS von Quad 9 oder wem auch immer wenn es denn unbedingt US DNS Server sein müssen.
Färdsch... Problem des TO gelöst.
C2 darf kein DHCP von der FritzBox bekommen denn der soll ja übers VPN. Also statische IP und statisches Default Gateway auf den RasPi und DNS von Quad 9 oder wem auch immer wenn es denn unbedingt US DNS Server sein müssen.
Färdsch... Problem des TO gelöst.
es mangelt wie beschrieben an den Kenntnissen zu iptables/nftables
Dem kann man ja mit etwas lesen abhelfen.. https://wiki.nftables.org/wiki-nftables/index.php/Main_Page
Wenn es das denn nun war bitte dann auch deinen Thread hier als erledigt schliessen!