Raspberry Pi (Open)VPN Policy Based Routing
Hallo zusammen,
versuche mich gerade daran meinem Pi zu "erklären", dass er das Routing über VPN und normal DSL macht.
Damit man versteht was ich meine, hier mein Versuchsaufbau:
Switch1 Port 3 --------PI (Rasbain)
internet -------Switch1 Port 2 --------Router (Lancom 1631E) ----- Switch ------ Clients (Windows)
Hoffe das ist so verständlich. Ich versuche nun, mit dem PI eine OpenVPN Verbindung zu machen (die steht), und den Verkehr
nach bestimmten Regeln zu routen/lenken. Die OpenVPN Verbindung brauche ich, da die Infrastruktur im Haus mit 10 Büros und nur einen Internetanschluß hat, der nicht über meinen Router läuft. Dadurch hat nicht jeder eine externe IPv4, die ich aber für meinen Exchange usw. brauche. Mit der VPN, baue ich eine Verbindung zu einem Server auf, der mir eine IPV4 und IPv6 vergibt.
Jetzt möchte ich das mein Router über die VPN von extern zu erreichen ist.
Jedoch sollen anfragen von den Clients bzw. dem Router nur durch den Tunnel geschickt werden, wenn Sie auch von dort kommen.
Sonst kann der sie normal an den Default Gateway schicken.
Hier noch die IP Adressen:
Router hat die interne 172.23.100.100 der Pi hat die 172.23.100.101, der Tunnel hat extern die 46.12.12.46 auf tun0.
Nun die eigentliche Frage: Geht das? und mache ich das mit PBR bzw. PBF? und wenn ja, wie?
Vielen dank im voraus
Grüße Swen
versuche mich gerade daran meinem Pi zu "erklären", dass er das Routing über VPN und normal DSL macht.
Damit man versteht was ich meine, hier mein Versuchsaufbau:
Switch1 Port 3 --------PI (Rasbain)
internet -------Switch1 Port 2 --------Router (Lancom 1631E) ----- Switch ------ Clients (Windows)
Hoffe das ist so verständlich. Ich versuche nun, mit dem PI eine OpenVPN Verbindung zu machen (die steht), und den Verkehr
nach bestimmten Regeln zu routen/lenken. Die OpenVPN Verbindung brauche ich, da die Infrastruktur im Haus mit 10 Büros und nur einen Internetanschluß hat, der nicht über meinen Router läuft. Dadurch hat nicht jeder eine externe IPv4, die ich aber für meinen Exchange usw. brauche. Mit der VPN, baue ich eine Verbindung zu einem Server auf, der mir eine IPV4 und IPv6 vergibt.
Jetzt möchte ich das mein Router über die VPN von extern zu erreichen ist.
Jedoch sollen anfragen von den Clients bzw. dem Router nur durch den Tunnel geschickt werden, wenn Sie auch von dort kommen.
Sonst kann der sie normal an den Default Gateway schicken.
Hier noch die IP Adressen:
Router hat die interne 172.23.100.100 der Pi hat die 172.23.100.101, der Tunnel hat extern die 46.12.12.46 auf tun0.
Nun die eigentliche Frage: Geht das? und mache ich das mit PBR bzw. PBF? und wenn ja, wie?
Vielen dank im voraus
Grüße Swen
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 263167
Url: https://administrator.de/contentid/263167
Ausgedruckt am: 25.11.2024 um 04:11 Uhr
13 Kommentare
Neuester Kommentar
Nee, nicht ganz verstandlich...
Du erzählst uns hier das dein nacktes Internet zuerst über einen Layer 2 Switch geht ??? Ist das richtig ??
Wenn ja ziemlich ungewöhnlich, es sei denn du bist bei einem Provider oder hast ein öffentliches Subnetz auf dem Switch, deshalb die Nachfrage !
Oder hast du vergessen die "code" Tags zu setzen das man die ASCII Zeichnung oben nicht erkennen kann ?!
Es hört sich nach der Beschreibung so ein bischen nach Policy Based Routing an was du machen willst, kann das sein ?
Das Problem ist sicher nicht der Pi sondern sind die Endgeräte !
Wenn di noch ein Default Gateway gesetzt haben was nicht auf deinen Pi zeigt nützt dir PBR ja gar nix.
Wenn an diesem Endgerät ein Paket mit einer z.B. 46.12.12.46 Absender Adresse geschickt wird, dann schickt er das an sein Default Gateway und wenn das nicht dein Pi ist hast du ein Problem.
Die Endgeräte sind hier also der Casus knacktus.
Du erzählst uns hier das dein nacktes Internet zuerst über einen Layer 2 Switch geht ??? Ist das richtig ??
Wenn ja ziemlich ungewöhnlich, es sei denn du bist bei einem Provider oder hast ein öffentliches Subnetz auf dem Switch, deshalb die Nachfrage !
Oder hast du vergessen die "code" Tags zu setzen das man die ASCII Zeichnung oben nicht erkennen kann ?!
Es hört sich nach der Beschreibung so ein bischen nach Policy Based Routing an was du machen willst, kann das sein ?
Das Problem ist sicher nicht der Pi sondern sind die Endgeräte !
Wenn di noch ein Default Gateway gesetzt haben was nicht auf deinen Pi zeigt nützt dir PBR ja gar nix.
Wenn an diesem Endgerät ein Paket mit einer z.B. 46.12.12.46 Absender Adresse geschickt wird, dann schickt er das an sein Default Gateway und wenn das nicht dein Pi ist hast du ein Problem.
Die Endgeräte sind hier also der Casus knacktus.
aber wie schaffe ich es, das alles was dort von aussen reinkommt, direkt zu meinem Router geleitet wird?
Das ist ganz einfach:Mindestens einer dieser 2 kaskadierten Router (FB und der Unbekannte) machen NAT (IP Adress Translation) ins Internet, übersetzen also die private RFC 1918 IP in eine öffentliche Provider IP.
Normal kann man diese NAT Firewall nicht überwinden, da NAT immer nur von innen nach außßen Sessions eröffnet aber nicht umgekehrt, da ist dicht.
Um dennoch von außen nach innen zu kommen musst du ein Loch auf BEIDEN Routern in deren NAT Firewall bohren. Das macht man immer mit einem Port Forwarding Eintrag im Setup des Routers.
Dort definierst du was mit eingehenden Paketetn mit den Ports TCP xyz oder UDP xyz passieren soll und an welche IP das geforwardet werden soll.
Willst du also z.B. OpenVPN auf den RasPi forwarden musst du UDP 1194 (OpenVPN Dienst) auf dem ersten Router an den zweiten Router forwarden und sofern dieser auch NAT macht vom 2ten Router auf den RasPi.
Das wäre der Fall mit einer doppelten NAT Kaskade.
Macht der 2te Router kein NAT entfällt das PFW dort natürlich. Leider teilst du uns dazu keinen deatils mit so das wir zum Raten gezwungen sind, denn eine zielführende Hilfe ist wegen dieser fehlenden Infos nicht möglich
Will man nun alle Forwarden trägt man entweder eine Port Range im Port Forwarding ein oder nutzt die auf diesen Routern sehr häufige Funktion "Exposed Host" die alle am Internet Port eingehenden Sessions komplett forwardet.
Das wäre dann die Lösung für dich, denn das müsste man auf den Routern dann entsprechend konfigurieren. 2mal sollten beide NAT machen.
Ohne dieses Port Forwarding ist ein Forwarding generell nicht möglich in einem NAT Umfeld !
Ganz ohne NAT sieht es wieder anderes aus aber dazu fehlen wieder von dir die grundlegenden Setup Infos dieser Systeme so das eine Aussage dazu nicht möglich ist ohne raten zu müssen
Generell sollte man sich sehr sehr gut überlegen Port Forwarding oder schlimmer noch den Exposed Host zu nutzen, denn man bohrt dann Löcher in seine Firewall und ist zumindest für diese Ports vollkommen ungeschützt.
Bei Exposed Host schaltet man die NAT Firewall fast vollständig aus. Kein verantwortungsvoller Netzwerker macht sowas heutzutage. Deshalb denke nach ob das unbedingt sein muss und ob du nicht ganz einfach mit deinen VPN Ports auskommst ?!
Welche Routen müßte ich eintragen? Auf dem Pi und im Lancom?
Das ist auch kinderleicht, da du ja eigentlich mit Lancom dann eine 3er Kaskade hast, denn der RasPi ist ja einbeinig angeschlossen oder hast du einen 2ten LAN Port am RasPi wie z.B. HIER beschrieben und der rasPi routet über 2 Interfaces ??Ist der RasPi also nur einbeinig dran ists kinderleicht:
- RasPi hat ein Default Gateway auf den 2ten Router, ebenso DNS.
- Lancom hat am WAN Port ein Default Gateway auf den 2ten Router, ebenso DNS.
- Clients am Lancom haben die LAN Port IP des Lancom als Gateway und DNS
- Fertisch !
mit "2ten" Router meinst Du den ersten aus meiner Sicht gesehen. Richtig?
1ter Router = der der ans Internet geht2ter Router = der der das lokale LAN bedient
Also richtig
Müsste aber der Lancom nicht den Raspi als GW und DNS bekommen?
Das kann man leider nicht sagen, da du weiterhin NICHT beantwortet hast ob der RasPi mit 2 Interfaces arbeitet oder ob er nur einbeinig angebunden ist (Router on a Stick) !In so fern kann man da nur raten. Deine ASCII Zeichnung oben ist da leider nicht eindeutig, da du die Code Tags vergessen hast. Besser vielleicht du postets hier nochmal ne kurze Skizze ?!
Sollte er mit 2 Ports arbeiten, dann hast du natürlich absolut Recht, dann ist es so:
- Clients, Windows Gateway auf Lancom
- Lancom default Route auf RasPi
- Beim RasPi zwingend das Routing aktivieren mit: net.ipv4.ip_forward=1 in der Datei /etc/sysctl.conf (Entkommentieren !) Siehe auch HIER_!
- RasPi Default Route auf Router 2
- Router 2 MUSS zwingend eine statische Route des lokalen LAN (Windows Clients) mit next Hop auf den RasPi haben !
Der Raspi hat nur eine Schnittstelle und ist am gleichen Switch wie der 2te Router, ich kann ihn aber auch direkt an den Lancom (3. Router) anschließen.
Siehste...genau wie vermutet !Damit ist dann ja der Lancom und der Router 2 über den Switch direkt verbunden. Der Lancom "sieht" den one armed angeschlossenen RasPi ja gar nicht und muss das auch gar nicht !
Deshalb hat der Lancomm dann eine direkte Default Route auf den Router 2 !
Wenn der Lancom kein NAT (Adress Translation) macht dann MUSS der Router 2 einen statische Route in das Client Netzwerk via next Hop Lancom haben !!
Mit NAT entfällt solch einen Route dann ist aber transparentes Routing nicht möglich !
Der RasPi ist dann für sein Routing selber verantwortlich.
Er bekommt auch eine Default Route auf den Router 2.
Der Router 2 muss dann wiederum ALLE internen Netze und VPN Netze des RasPis statisch als Route eingetragen haben mit next Hop dann auf die RasPi IP.
Wie das alles zusammenspielt erklärt dir dieses Routing Tutorial:
Routing von 2 und mehr IP Netzen mit Windows, Linux und Router
Visio oder Dia bei Linux oder Omni Graffle (Mac) wären die Tools der Wahl:
http://www.maketecheasier.com/5-best-free-alternatives-to-microsoft-vis ...
Ansonsten Skizze mit Kuli auf Papier abscannen oder forografieren und hier mit der Bilder hochladen Funktion (meine Fragen klicken und Thread auswählen, Bearbeiten klicken. Bilder hochladen, Bilder Link mit Rechtsklick u. Copy und Paste hier in Antwort bringen. Statt Link kommt dann die Grafik)
in der Antwort posten.
http://www.maketecheasier.com/5-best-free-alternatives-to-microsoft-vis ...
Ansonsten Skizze mit Kuli auf Papier abscannen oder forografieren und hier mit der Bilder hochladen Funktion (meine Fragen klicken und Thread auswählen, Bearbeiten klicken. Bilder hochladen, Bilder Link mit Rechtsklick u. Copy und Paste hier in Antwort bringen. Statt Link kommt dann die Grafik)
in der Antwort posten.