PfSense mit VPN-IPsec Routing Problem
Hallo,
mir macht VPN/IPsec auf der pfSense Probleme. Einmal beziehen sich die Probleme nur auf VPN/IPsec und pfSense und einmal in Kombination mit pfBlocker
Grundlage
Die Problembeschreibung
Grundsätzlich funktioniert VPN bei mir. Ich kann mich problemlos von außerhalb einwählen.
Was mir Probleme macht sind die erreichbaren Netze. Dazu möchte ich etwas ausholen, da das Verhalten recht merkwürdig ist.
Frage wäre
Wenn andere Einstellungen wichtig sind die z.B. dazu führen könnten das das bei mir nicht so funktioniert wie ich mir das vorstelle zeige ich die gerne. Über Hilfe würde ich mich sehr freuen.
Grüße
Jens
mir macht VPN/IPsec auf der pfSense Probleme. Einmal beziehen sich die Probleme nur auf VPN/IPsec und pfSense und einmal in Kombination mit pfBlocker
Grundlage
- pfSense als Router an einem Glasfasermodem der Telekom. Einwahl macht die pfSense und das Routing im LAN auch.
- Diverse VLans (192.168.10.0/24, 192.168.20.0/24, ... 192.168.90.0/24)
- aktiviertem pfBlocker welcher bei Zugriffen aus dem LAN auch tadellos funktioniert.
- iPhone 6s zur Einwahl ins VPN
Die Problembeschreibung
Grundsätzlich funktioniert VPN bei mir. Ich kann mich problemlos von außerhalb einwählen.
Was mir Probleme macht sind die erreichbaren Netze. Dazu möchte ich etwas ausholen, da das Verhalten recht merkwürdig ist.
- Gestern hatte ich die "Phase 2" mit einem einzigen "Localen Subnet" konfiguriert. Ich konnte nur dieses erreichen. Webseiten öffnen sich zwar, aber die werden dann ja nicht über das VPN geroutet, sondern über die mobile Verbindung des iPhones. Somit funktionierte alles wie es sein sollte.
- Ich hatte dann das ganze auf das "Local Subnet" 0.0.0.0/0 umgestellt, da ich vor habe auch sämtlichen Internetverkehr über das VPN zu schicken.
- pfSense neu gestartet.
- Schalte ich das "Locale Subnet" in der Phase 2 von der 0.0.0.0/0 wieder zurück auf das 50er VLAN, ist auch nur noch dieses vom iPhone aus erreichbar und kein anderes VLAN, Internetseiten gehen jedoch trotzdem am iPhone nicht mehr auf.
Frage wäre
- warum gehen keine Internetseiten auf dem iPhone wenn doch "Local Subnet" auf 0.0.0.0/0 gestellt ist und es eine "Allow Any Rule" für IPsec auf der pfSense gibt bzw. sogar jetzt auch nicht mehr wenn ich lediglich das 50er VLAN in der Phase 2 einstelle?
- Wie kann ich erreichen, dass die mittels pfBlocker geblockten Webseiten, genau wie im Lokalen Netz, die Sperrseite anzeigen lassen?
Wenn andere Einstellungen wichtig sind die z.B. dazu führen könnten das das bei mir nicht so funktioniert wie ich mir das vorstelle zeige ich die gerne. Über Hilfe würde ich mich sehr freuen.
Grüße
Jens
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 646423
Url: https://administrator.de/forum/pfsense-mit-vpn-ipsec-routing-problem-646423.html
Ausgedruckt am: 22.12.2024 um 13:12 Uhr
19 Kommentare
Neuester Kommentar
Du machst vermutlich einen IP Adressierungs Denkfehler. Die Phase 2 definiert ja die IP Netze die in den Tunnel geroutet werden. Wenn du also nun lokale Netze von 192.168.0.0 bis .90.0 hast dann sollte logischerweise Local Subnetz mit einem 17 Bit Prefix versehen werden also 192.168.0.0 /17 (255.255.128.0)
Damit routet das VPN dann alles was 192.168.0.1 bis .127.254 Ziel IP Adressen hat in den VPN Tunnel und deckt damit alle deine remoten Netze mit einer Phase 2 Definition ab. Du kannst natürlich auch alle /24 Netze in je einer einzelnen, gesonderten P2 angeben was aber mehr Konfig Aufwand bedeutet.
Local Subnet auf 0.0.0.0/0 zu setzen ist also fehlerhaft, denn zum Gateway Redirect also allen Traffic in den Tunnel zu routen ist ebenso auch ein Routing erforderlich. Die hiesigen Tutorials und ihre Threadverläufe beschreiben das entsprechend.
IPsec IKEv2 VPN für mobile Benutzer auf der pfSense oder OPNsense Firewall einrichten
PfSense VPN mit L2TP (IPsec) Protokoll für mobile Nutzer
Wie immer gehört ein Blick in die Routing Tabelle des Client bei aktivem VPN der Schlüssel zum erfolgreichen Troubleshooting. route print (Winblows),netstat -r -noderip route show(unixoide OS) bzw. Tools wiehe.net// die es für Androiden und iPhones gibt.
Damit routet das VPN dann alles was 192.168.0.1 bis .127.254 Ziel IP Adressen hat in den VPN Tunnel und deckt damit alle deine remoten Netze mit einer Phase 2 Definition ab. Du kannst natürlich auch alle /24 Netze in je einer einzelnen, gesonderten P2 angeben was aber mehr Konfig Aufwand bedeutet.
Local Subnet auf 0.0.0.0/0 zu setzen ist also fehlerhaft, denn zum Gateway Redirect also allen Traffic in den Tunnel zu routen ist ebenso auch ein Routing erforderlich. Die hiesigen Tutorials und ihre Threadverläufe beschreiben das entsprechend.
IPsec IKEv2 VPN für mobile Benutzer auf der pfSense oder OPNsense Firewall einrichten
PfSense VPN mit L2TP (IPsec) Protokoll für mobile Nutzer
Wie immer gehört ein Blick in die Routing Tabelle des Client bei aktivem VPN der Schlüssel zum erfolgreichen Troubleshooting. route print (Winblows),netstat -r -noderip route show(unixoide OS) bzw. Tools wiehe.net// die es für Androiden und iPhones gibt.
Ich wollte im ersten Step eigentlich nur mein 50er VLAN in den Tunnel routen.
Ahhhsooo, OK, dann reicht nur das .50.0 /24 in der Netzwerk AngabeDie 0.0.0.0/0 ist richtig wenn du einen Gateway Redirect für die Clients machen willst in den Tunnel. Bedenke dann aber das ALLES dann in den Tunnel geht vom Client auch lokaler Traffic. Kann ein Performanceproblem sein es sei denn man will das z.B. als Sicherheit. Du musst dann aber auch sicherstellen das dein DNS usw. über den Tunnel auflösen kann sonst scheitert DNS usw. Genau das ist vermutlich das aktuelle Problem weil du keinen Internet Hostnamen über den DNS mehr auflösen kannst. Laien sagen dann immer "Internet geht nicht" obwohl es oft zu 90% nur das DNS ist.
Hast du vom iPhone einmal mit dem he.net_Tool bei aktivem Client einen Ping auf einen nackte IP wie 8.8.8.8 gemacht ?? Damit würdest du erstmal DNS Problematiken umgehen und sehen ob du über den Redirect generell Internet bekommst und eben nur DNS scheitert.
Hilfreich ist ebenfalls ein Traceroute mit dem Tool was dir alle Routing Hops anzeigt und damit verifiziert das der Traffic wirklich durch den Tunnel geht !
Simple Troubleshooting Tips auf die man eigentlich immer gleich als Erstes kommt wenn man einmal etwas nachdenkt.
jedoch haut das Internet auf dem iPhone nicht mehr hin.
Und an das Outbound-NAT für das VPN-Subnetz kontrollieren ... > (Firewall >NAT > Outbound NAT) falls das Eierfön über den Anschluss ins INet soll. Ebenso die Firewall-Regeln für das VPN Subnetz prüfen ob diese Forwarding ins Internet freigeben.Gruß j.
Aus welchem Subnetz erhält das Telefon eine Adresse beim DialIn?
In der Firewall für das VPN musst du sicherstellen das die virtuellen Adressen im Forwarding auch überall dorthin durchgelassen werden , zusätzlich die Firewalls der Clients in den VLANs beachten diese blocken zumindest unter Windows per Default ICMP und SMB aus fremden Subnetzen dieses musst du dort auch erst freischalten!
Poste zusätzlich mal die Eierfön Settings.
Poste zusätzlich mal die Eierfön Settings.
Wenn ich unter Phase 2 die Netze konfiguriere die in den Tunnel geroutet werden sollen, also vom iPhone aus dann auch erreichbar sein sollten, dann verhält sich eine "Network von 0.0.0.0/0" gar nicht so, wie es in zig Anleitungen, nicht nur der von aqui, geschrieben steht. Mit 0.0.0.0/0 alleine, müsste ich doch per Definition mindestens alle meine Subnetze in den VPN Tunnel routen.
Funktioniert hier aber einwandfrei schon x mal so durchgeführt, ist ja durch die Policy ein simpler GW Redirect . Du musst hier also noch einen Fehler eingebaut haben, oder das Eierfon macht es bei dir nicht so wie vorgesehen.Deine Eierfon Config fehlt hier noch.
Sorry für die späte Rückmeldung, war aber leider unabkömmlich ... Jetzt habe ich aber Zeit das nachzuholen.
Das was mir bei dir auffällt ist zunächst deine Phase-2 Angaben für das local subnet. Diese sind nicht korrekt, 0.0.0.0 ist keine einzelne Adresse sondern muss als Subnet deklariert sein denn sonst wird die Adresse von der pfSense automatisch mit einer 32Bit Maske versehen also 0.0.0.0/32 und das kann so nie klappen!
Hier sieht man den Fehler in deiner Grafik von oben...
Hier die funktionierenden Settings von meiner Seite mit IKEv2 + RSA Auth (Zertifikate) mit voll funktionsfähigem Gateway Redirect bei dem sämtlicher Traffic durch den Tunnel geht.
Klappt fehlerlos sowohl mit einem aktuellen Android mit StrongSWAN Client als auch mit einem iPhone 6s mit Onboard IKEv2 Client.
Das was mir bei dir auffällt ist zunächst deine Phase-2 Angaben für das local subnet. Diese sind nicht korrekt, 0.0.0.0 ist keine einzelne Adresse sondern muss als Subnet deklariert sein denn sonst wird die Adresse von der pfSense automatisch mit einer 32Bit Maske versehen also 0.0.0.0/32 und das kann so nie klappen!
Hier sieht man den Fehler in deiner Grafik von oben...
Hier die funktionierenden Settings von meiner Seite mit IKEv2 + RSA Auth (Zertifikate) mit voll funktionsfähigem Gateway Redirect bei dem sämtlicher Traffic durch den Tunnel geht.
Überblick Phase1/Phase2
Phase 1
Phase 2
Mobile Client Settings
Klappt fehlerlos sowohl mit einem aktuellen Android mit StrongSWAN Client als auch mit einem iPhone 6s mit Onboard IKEv2 Client.
Testverbindung
SAs
Fazit: Works as designed!
Kann es sein das mit 0.0.0.0/0 irgendwie der Tunnel geflutet wird und dann die Schotten dicht macht?
Entweder hat HE Networktools ne Macke oder mein Netz.
Nöp definitiv Fehlkonfiguration auf deiner Seite. Btw. ein einfacher Wireshark oder TCPDUMP Trace würde es dir auch flüstern .Entweder hat HE Networktools ne Macke oder mein Netz.
Hast du diese auch erstellen müssen oder geht es bei dir so?
Nö works out of the box. Deine Firewall muss aber natürlich Zugriff für die Clients erlauben!Dort müsste doch die lokale IP 192.168.50.1 richtig sein als DNS Server. Wird ja an lokale Clients auch zugewiesen und ist ja eine Interface IP Adresse an der der DNS Resolver lauscht.
Wenn du das für die Clients willst kannst du das natürlich machen auch wenn du eigens angelegte interne DNS-Namen nutzen willst.Was müsste bei "DNS Default Domain" eingetragen werden? Wäre das "pfSense.mylocal" wie unter "System / General Setup"?
Das ist nur relevant wenn du DNS-Namen non FQDN Namen von den VPN Clients ansprechen willst. Also bspw. der FQDN deiner intern genutzte Domäne.Das es damit jedoch noch nicht so ganz funktioniert, pingen immerhin ja, denke ich liegt an der Access List beim DNS Resolver?
Den Resolver kann ich hier ohne Access-Liste von den VPN Clients ansprechen, kein Thema also.Du musst nur sicherstellen das der Resolver auf den entsprechenden Interfaces auch lauscht:
Wenn du auf dem Eierfön einen lokalen DNS Server nutzt, z.B. in einem anderen LAN und dann diesem über das VPN keinen DNS-Server zuweist erreicht der Client den lokalen DNS-Server des fremden LANs nicht mehr da er sämtlichen Traffic zu anderen Subnetzen über den Tunnel geleitet wird.
Und wenn du dir nicht sicher bist einfach mal Wireshark anwerfen und du siehst was Sache ist , dann ist "rumraten" überflüssig.
So denn ich bin raus.
Zitat von @Jensano:
Alles gemacht. Resolver ist für alle Interfaces offen.
Bei deinen aktuell sichtbaren Einstellungen, wette ich es geht bei dir nur weil du hier mindestens eine öffentliche IP eingetragen hast. Das zeigt bereits das du da zwei unscharfe Server gelistet hast.
Nein, sind zwei interne! Selbst wenn ich dort nur die pFSense als DNS Proxy eintrage, kein Problem.Alles gemacht. Resolver ist für alle Interfaces offen.
Bei deinen aktuell sichtbaren Einstellungen, wette ich es geht bei dir nur weil du hier mindestens eine öffentliche IP eingetragen hast. Das zeigt bereits das du da zwei unscharfe Server gelistet hast.
Wen du natürlich mit der Firewall den Zugriff auf den DNS einschränkst musst du das auch berücksichtigen.
Sonst kann jeder Mobile User ja auch so was wie den pfBlocker umgehen wenn ich hier die Möglichkeit biete direkt bei 8.8.8.8 nachzufragen.
Das können sie sowieso auch selbst tun wenn du das nicht durch deine Firewall sperrst oder die DNS-Ports via NAT redirectest.Zitat von @Jensano:
Die Firewall vom IPsec hat ein "Allow Any". Der darf somit an jedes Interface wo er will. Und an jedem Interface lauscht der DNS Server.
OK.Die Firewall vom IPsec hat ein "Allow Any". Der darf somit an jedes Interface wo er will. Und an jedem Interface lauscht der DNS Server.
Ich habe ein Redirect für sämtliche DNS Anfrage die nicht an die pfSense selber gehen im Port Forwarding erstellt.
Erst mal alles was nicht Standard ist raus ... Du stellst dir sonst selbst potentielle Fallen!!So kann keiner DNS umgehen. ABer wenn man dem VPN Client z.B. den DNS Server 8.8.8.8 mitteilt, dann kann er den eventuell auch direkt anfragen.
Kann er in der Regel nicht den du leitest ja sämtlichen Traffic über das VPN und an der pfSense redirectest du den DNS-Traffic.Was das Device aber intern so macht muss man natürlich individuell betrachten wenn du es nicht unter deiner Kontrolle hast.
SO genau sieht man ja nicht was zwischen iPhone VPN Client und der pfSense gemacht werden darf.
Wireshark zeigt es dir haarklein.