IPsec mit NAT auf pfSense
Hallo zusammen,
ich stehe vor einem Problem und komme leider nicht mehr weiter. Wir haben eine IPsec Verbindung zu einem externen Dienstleister. Diese mussten wir auf deren Anforderung neu gestalten, da sich bei denen irgendwas geändert hatte (ich glaube die haben Firewall/Produkt gewechselt). Der IPsec Tunnel musste deshalb auf beiden Seiten neu konfiguriert werden, die Parameter haben wir vorgeschrieben bekommen vom externen Dienstleister. Neu hinzu kommt nun, dass die NAT betreiben wollen/müssen und demnach mussten wir das auf unserer Seite auch so einrichten. Der externe Dienstleister kann zwar zu uns problemlos gelangen, wir jedoch nicht auf deren Hosts wie es gewünscht wird.
Wir verwenden pfSense, hier eine kurze Erklärung der Netze:
Subnet2: 195.195.195.0/29
Subnet3: 196.196.196.0/26
Als NAT Subnet wurde von denen das Netz 172.16.0.0/29 (Hosts .1 bis .6) festgelegt.
Ziele:
(1) Die Gegenseite soll drei Hosts aus unserem Subnet 172.18.100.96/28 erreichen können, und zwar nach folgender Übersetzungstabelle:
-> sie sprechen die NAT IP-Adresse 172.16.0.1 an und sollen auf unseren Host 172.18.100.97 landen
-> sie sprechen die NAT IP-Adresse 172.16.0.2 an und sollen auf unseren Host 172.18.100.98 landen
-> sie sprechen die NAT IP-Adresse 172.16.0.3 an und sollen auf unseren Host 172.18.100.99 landen
(2) Außerdem müssen von unserem Subnet aus die Hosts aus dem entfernten Subnet1 (194.38.218.1-62) erreicht werden können.
Die Phase1 ist vermutlich uninteressant für das Problem, deshalb habe ich in dieser Beschreibung auch die öffentlichen Endpunkte IP-Adressen nicht angegeben. Phase1 steht soweit und ist i.O. Die Konfiguration auf unsrer pfSense habe ich entsprechend pfSense Anleitung wie folgt eingerichtet..
Von subnet2 und subnet3 habe ich nicht extra screenshots beigefügt, da erstmal nicht von Belangen. Es wurde jedoch äquivalent genauso eingerichtet wie in diesem screenshot von subnet1 gezeigt.
In der pfSense Konfiguration unter [Firewall] --> [NAT] --> [1:1] habe ich konfiguriert:
Interface = IPsec
External subnet IP = 172.16.0.1
Internal IP
Type=Single host
Address=172.18.100.97
Destination und alles weitere ist leer gelassen. Genau nach diesem Prinzip habe ich noch zwei weitere Einträge erstellt, eben für die genannten Zuordnungen. Dadurch kann der externe Dienstleister die IP-Adressen 172.16.0.1-3 aufrufen und landet auf unseren drei Servern. Funktioniert!
--> sobald ich in der IPsec Konfiguration, unter Phase2 --> subnet3 deaktiviere und den Tunnel neu aufbaue, funktioniert der Ping von unseren Hosts 172.18.100.97-99 auf deren entfernten Host 194.38.218.5 aber auch wirklich nur dann! wenn alle drei subnets aus Phase2 aktiv sind, klappt das nicht mehr. Auch komisch ist, dass wir lediglich den entfernten Host 194.38.218.5 anpingen können, nicht aber 194.38.218.3 oder beispielsweise 194.38.218.7 und das obwohl laut Aussage des Admins auf entfernter Seite, freigeschaltet ist.
Ich bin kein IPsec Experte aber irgendwie habe ich das Gefühl, dass durch diese Config lediglich eine Einbahnstrasse existieren kann und zwar vom externen Dienstleister in unsere Richtung. Warum aber der Ping in andrer Richtung (also von uns zum entfernten Host) klappt und zwar nur dann wenn ich einen einzigen Tunnel deaktiviere, bleibt mir schleierhaft. Ebenso schleierhaft warum ich nur einen einzigen entfernten Host von denen anpingen kann.
Ich bin auf diesen ähnlichen Beitrag gestoßen.
Idee?
Die default Einstellung bei pfSense unter [FIREWALL] --> [NAT] --> [OUTBOUND] lautet "Automatic". Kann es sein, dass ich auf "HYBRID" Modus umstellen muss und dann extra noch manuelle mappings hinzufügen? Würde das den laufenden Betrieb der pfSense irgendwie merklich beeinflussen? Nicht, dass es mir dadurch sämtliche Schnittstellen verbiegt oder states/routes verändert und aktive Verbindungen kickt? ich bin mir nicht sicher, ob das Problem hier zu suchen wäre oder wo ich weiter ansetzen müsste. Wie gesagt, mit IPsec habe ich bisher nie gearbeitet und bin nicht so erfahren.
Bin für jeden Tip sehr dankbar.
ich stehe vor einem Problem und komme leider nicht mehr weiter. Wir haben eine IPsec Verbindung zu einem externen Dienstleister. Diese mussten wir auf deren Anforderung neu gestalten, da sich bei denen irgendwas geändert hatte (ich glaube die haben Firewall/Produkt gewechselt). Der IPsec Tunnel musste deshalb auf beiden Seiten neu konfiguriert werden, die Parameter haben wir vorgeschrieben bekommen vom externen Dienstleister. Neu hinzu kommt nun, dass die NAT betreiben wollen/müssen und demnach mussten wir das auf unserer Seite auch so einrichten. Der externe Dienstleister kann zwar zu uns problemlos gelangen, wir jedoch nicht auf deren Hosts wie es gewünscht wird.
Wir verwenden pfSense, hier eine kurze Erklärung der Netze:
Unsere Seite:
Subnet: 172.18.100.96/28 (also Hosts .97 bis .110)Gegenseite:
Subnet1: 194.38.218.0/26 (also Hosts .1 bis .62)Subnet2: 195.195.195.0/29
Subnet3: 196.196.196.0/26
Als NAT Subnet wurde von denen das Netz 172.16.0.0/29 (Hosts .1 bis .6) festgelegt.
Ziele:
(1) Die Gegenseite soll drei Hosts aus unserem Subnet 172.18.100.96/28 erreichen können, und zwar nach folgender Übersetzungstabelle:
-> sie sprechen die NAT IP-Adresse 172.16.0.1 an und sollen auf unseren Host 172.18.100.97 landen
-> sie sprechen die NAT IP-Adresse 172.16.0.2 an und sollen auf unseren Host 172.18.100.98 landen
-> sie sprechen die NAT IP-Adresse 172.16.0.3 an und sollen auf unseren Host 172.18.100.99 landen
(2) Außerdem müssen von unserem Subnet aus die Hosts aus dem entfernten Subnet1 (194.38.218.1-62) erreicht werden können.
Die Phase1 ist vermutlich uninteressant für das Problem, deshalb habe ich in dieser Beschreibung auch die öffentlichen Endpunkte IP-Adressen nicht angegeben. Phase1 steht soweit und ist i.O. Die Konfiguration auf unsrer pfSense habe ich entsprechend pfSense Anleitung wie folgt eingerichtet..
Von subnet2 und subnet3 habe ich nicht extra screenshots beigefügt, da erstmal nicht von Belangen. Es wurde jedoch äquivalent genauso eingerichtet wie in diesem screenshot von subnet1 gezeigt.
In der pfSense Konfiguration unter [Firewall] --> [NAT] --> [1:1] habe ich konfiguriert:
Interface = IPsec
External subnet IP = 172.16.0.1
Internal IP
Type=Single host
Address=172.18.100.97
Destination und alles weitere ist leer gelassen. Genau nach diesem Prinzip habe ich noch zwei weitere Einträge erstellt, eben für die genannten Zuordnungen. Dadurch kann der externe Dienstleister die IP-Adressen 172.16.0.1-3 aufrufen und landet auf unseren drei Servern. Funktioniert!
Problem:
Wir können von unseren Hosts (172.18.100.97-99) aus nicht auf das entfernte Subnet1 194.38.218.0/26 zugreifen. Aus unserer lokalen Firewallseite wird nichts geblockt, das habe ich ausgeschlossen, es sind keine Pakete geblockt. Der Admin der entfernten Seite hat ein paar Regeln auf deren Seite angepasst, wir wollten erstmal ICMP/Pings testen. Das schlug jedoch fehl. Durch trial-and-error habe ich folgende Entdeckung auf unsrer Seite gemacht--> sobald ich in der IPsec Konfiguration, unter Phase2 --> subnet3 deaktiviere und den Tunnel neu aufbaue, funktioniert der Ping von unseren Hosts 172.18.100.97-99 auf deren entfernten Host 194.38.218.5 aber auch wirklich nur dann! wenn alle drei subnets aus Phase2 aktiv sind, klappt das nicht mehr. Auch komisch ist, dass wir lediglich den entfernten Host 194.38.218.5 anpingen können, nicht aber 194.38.218.3 oder beispielsweise 194.38.218.7 und das obwohl laut Aussage des Admins auf entfernter Seite, freigeschaltet ist.
Ich bin kein IPsec Experte aber irgendwie habe ich das Gefühl, dass durch diese Config lediglich eine Einbahnstrasse existieren kann und zwar vom externen Dienstleister in unsere Richtung. Warum aber der Ping in andrer Richtung (also von uns zum entfernten Host) klappt und zwar nur dann wenn ich einen einzigen Tunnel deaktiviere, bleibt mir schleierhaft. Ebenso schleierhaft warum ich nur einen einzigen entfernten Host von denen anpingen kann.
Ich bin auf diesen ähnlichen Beitrag gestoßen.
Idee?
Die default Einstellung bei pfSense unter [FIREWALL] --> [NAT] --> [OUTBOUND] lautet "Automatic". Kann es sein, dass ich auf "HYBRID" Modus umstellen muss und dann extra noch manuelle mappings hinzufügen? Würde das den laufenden Betrieb der pfSense irgendwie merklich beeinflussen? Nicht, dass es mir dadurch sämtliche Schnittstellen verbiegt oder states/routes verändert und aktive Verbindungen kickt? ich bin mir nicht sicher, ob das Problem hier zu suchen wäre oder wo ich weiter ansetzen müsste. Wie gesagt, mit IPsec habe ich bisher nie gearbeitet und bin nicht so erfahren.
Bin für jeden Tip sehr dankbar.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 533159
Url: https://administrator.de/contentid/533159
Ausgedruckt am: 24.11.2024 um 04:11 Uhr
13 Kommentare
Neuester Kommentar
Moin,
gehören dem Dienstleister die öffentlichen Adressen/Subnetze?
Ansonsten hat das wer eingerichtet, der absolut keine Ahnung hat was er dort macht. 194... Usw
Wenn die kein know how haben, würde ich die Finger von denen lassen.
Das ist gerade das erste was mir einfällt. Weiteres kann ich später beisteuern.
Edit: bezüglich NAT muss nur die PfSense Konfig auf manuel gestellt weder. Anschließend für jedes Destination Netz eine Regel mit NAT IP des IPsec Tunnels angelegt werden. Source ist euer internes Netz, von dem aus die entfernten Netze erreicht werden sollen.
Wenn nötig liefere ich ein Beispiel nach.
Das ist allerdings erstmal rudimentär. Was schreibt der Dienstleister vor? Auch wenn ich gerade eine starke Abneigung dem gegenüber denen vertrete.
Gruß
Spirit
gehören dem Dienstleister die öffentlichen Adressen/Subnetze?
Ansonsten hat das wer eingerichtet, der absolut keine Ahnung hat was er dort macht. 194... Usw
Wenn die kein know how haben, würde ich die Finger von denen lassen.
Das ist gerade das erste was mir einfällt. Weiteres kann ich später beisteuern.
Edit: bezüglich NAT muss nur die PfSense Konfig auf manuel gestellt weder. Anschließend für jedes Destination Netz eine Regel mit NAT IP des IPsec Tunnels angelegt werden. Source ist euer internes Netz, von dem aus die entfernten Netze erreicht werden sollen.
Wenn nötig liefere ich ein Beispiel nach.
Das ist allerdings erstmal rudimentär. Was schreibt der Dienstleister vor? Auch wenn ich gerade eine starke Abneigung dem gegenüber denen vertrete.
Gruß
Spirit
Okay, wenn dem so ist, lassen wir das so stehen.
Bezüglich der NAT Konfig kannst du Outbound auf Hybrid stellen. Dann gelten die automatisch angelegten Regeln (durch die Sense selbst), sowie deine händisch erstellten.
Eine Regel würde dann wie folgt aussehen:
Wobei ich gerade für dein Netz eine 24er Maske eingetragen habe. Richtig wäre hier dann ein 28er Netz.
Bis hier dann zum NAT.
Wenn du bei dem Dienstleister drei Subnetze erreichen musst, dann solltest du hier drei Phase2 Konfigurationen anlegen. Für jedes Destination Netz eine. Normal nimmt man lieber ein Träger Netz und routet die anderen Geschichten darüber. Ist hier nur leider nicht vorgegeben.
Für die NAT Konfig auf deiner Seite sind ja ebenfalls drei Einträge erforderlich (jeweils pro entferntem Subnetz).
Bezüglich der NAT Konfig kannst du Outbound auf Hybrid stellen. Dann gelten die automatisch angelegten Regeln (durch die Sense selbst), sowie deine händisch erstellten.
Eine Regel würde dann wie folgt aussehen:
Wobei ich gerade für dein Netz eine 24er Maske eingetragen habe. Richtig wäre hier dann ein 28er Netz.
Bis hier dann zum NAT.
Wenn du bei dem Dienstleister drei Subnetze erreichen musst, dann solltest du hier drei Phase2 Konfigurationen anlegen. Für jedes Destination Netz eine. Normal nimmt man lieber ein Träger Netz und routet die anderen Geschichten darüber. Ist hier nur leider nicht vorgegeben.
Für die NAT Konfig auf deiner Seite sind ja ebenfalls drei Einträge erforderlich (jeweils pro entferntem Subnetz).
Ich war auch gerade etwas zu schnell beim schreibe.
Also locales Netz muss natürlich jeweils dein Client Netz eingetragen werden.
Unter "Translation" muss definitiv das IPsec Interface auf deiner Seite stehen! (Interface Adress ist hier korrekt, da automatisch die korrekte Adresse genutzt wird)
Wenn es noch nicht klar sein sollte, kann ich später korrekte Screenshots liefern.
Dafür wäre dann aber dein locales Netz von nöten.
Also locales Netz muss natürlich jeweils dein Client Netz eingetragen werden.
Unter "Translation" muss definitiv das IPsec Interface auf deiner Seite stehen! (Interface Adress ist hier korrekt, da automatisch die korrekte Adresse genutzt wird)
Wenn es noch nicht klar sein sollte, kann ich später korrekte Screenshots liefern.
Dafür wäre dann aber dein locales Netz von nöten.
Hi,
sieht nach einem VPN mit T-*** aus.
Ist meines Wissens nach nicht mit einer (1) pfSense lösbar.
Du benötigst zwei (2) pfSensen, oder 1pfSense und 1 whatever Router.
Der richtigere Ausdruck für <NAT Subnet> ist <Transfer Net>.
VPN Endpunkt des Dienstleisters <----->eure pfSense 1(VPN Endpunkt<->Transfernetz<->pfSense 2 (3 oder4xNAT Regeln)<-> euer Subnet.
Eine fertige Konfig habe ich leider nicht mehr zur Hand.
BTW: welche pfSense Version verwendet Ihr ?
CH
sieht nach einem VPN mit T-*** aus.
Ist meines Wissens nach nicht mit einer (1) pfSense lösbar.
Du benötigst zwei (2) pfSensen, oder 1pfSense und 1 whatever Router.
Der richtigere Ausdruck für <NAT Subnet> ist <Transfer Net>.
VPN Endpunkt des Dienstleisters <----->eure pfSense 1(VPN Endpunkt<->Transfernetz<->pfSense 2 (3 oder4xNAT Regeln)<-> euer Subnet.
Eine fertige Konfig habe ich leider nicht mehr zur Hand.
BTW: welche pfSense Version verwendet Ihr ?
CH
Dann solltest du schleunigst updaten. Aktuell ist Release 2.4.4p3
Ich weiß das am IPsec Konstrukt in den nachfolgenden Releases etwas gedreht wurde. Gut möglich das es danach geht.
Außerdem macht es aus Sicherheitsgründen keinen Sinn auf einem veralten release zu fahren.
Ich muss dazu allerdings auch sagen, dass ich mit dem 2.2er Release noch kein IPsec Tunnel über mehrere Phase2 Einträge gefahren habe.
Außerdem macht es aus Sicherheitsgründen keinen Sinn auf einem veralten release zu fahren.
Ich muss dazu allerdings auch sagen, dass ich mit dem 2.2er Release noch kein IPsec Tunnel über mehrere Phase2 Einträge gefahren habe.