IPSec Tunnel OPNSense - Fritzbox. FB antwortet nicht
Moin Leute!
Ich versuche nun schon seit einiger Zeit einen Tunnel zwischen meiner OPNSense in einer Remote Location und meinem zu Hause aufzubauen. Folgendes Setup:
REMOTE LOCATION
- 1&1 DS Lite DSL Anschluss
- Fritzbox 7530AX als DSL Router
- Fritz OS 7.56
- LAN 192.x.x.x/24
- OPNSense
- Firmware 23.1.11
- WAN im LAN der 7530, 192.x.x.x
- LAN 10.20.x.x/24
HOME
- Telekom DSL Anschluss
- public IP 2x.x.x.x
- Fritzbox 7590AX
- Fritz OS 7.56
- LAN 10.100.x.x/24
Nun ist es so, dass sich überhaupt keine Verbindung herstellen lässt. Ich initiiere das von der OPNSense aus und sehe in deren FW logs, dass die Pakete an die richtige IP (und port) rausgehen und auch, dass nicht etwa eine Rückantwort geblockt wird. Überhaupt habe ich die OPNSense auch testweise komplett auf gemacht. D.h. anscheinend kommt nicht mal ein erster Handshake zustande, weil die FB keinen Mucks macht. Pingen lässt sie sich aus dem LAN der OPNSense allerdings schon!
Als "Gegenprobe" hatte ich ein Testsetup erfolgreich zum Laufen bekommen. Dies bestand aus der OPNSense wie oben beschrieben und der Home Fritzbox 7590AX, die ich dann aber ebenfalls in's LAN der Remote Location gehängt habe. Lief einwandfrei, d.h. es kann hier nicht an irgendwelchen Settings liegen, die mit Handshake/Encryption, etc. zusammenhängen.
Die Settings in der OPNSense und die vpn config für die Fritzbox findet Ihr unten. Ich hatte in der FB bereits always_renew = no; und yes getestet.
So weit habe ich leider keine Ideen mehr. Das einzige, was mich noch stutzig macht, ist, dass ich in der OPNSense, wenn ich die Verbindung aufbaue, als Local ID und Local IP natürlich die IP des WANs der OPNSense steht, also 192.x.x.x aus dem LAN der DSL 7530er Box in der Remote Location. Hier weiß ich nicht genug - ist dieser Eintrag als Antwortadresse für die Fritzbox in der Home Location relevant, wenn die Verbindung von der OPNSense aus angestoßen wird oder nimmt sie dafür nicht eher die tatsächliche Absenderadresse der UDP Pakete, die reinflattern!? Da ich in der Remote Location diesen DS Lite Anschluss habe, macht es natürlich keinen Sinn, hier eine IP anzugeben. Deswegen habe ich in der Fritzbox Config auch tatsächlich einfach "bla.myfritz.de" angegeben. Habe auch schon getestet, als ID in der OPNSense ebenfalls "bla.myfritz.de" als distinguished name zu verwenden, das hat aber auch nichts gebracht.
So - hoffe, ich hab das einigermaßen tauglich beschrieben und freue mich auf Tipps zum Troubleshooten!
Ich versuche nun schon seit einiger Zeit einen Tunnel zwischen meiner OPNSense in einer Remote Location und meinem zu Hause aufzubauen. Folgendes Setup:
REMOTE LOCATION
- 1&1 DS Lite DSL Anschluss
- Fritzbox 7530AX als DSL Router
- Fritz OS 7.56
- LAN 192.x.x.x/24
- OPNSense
- Firmware 23.1.11
- WAN im LAN der 7530, 192.x.x.x
- LAN 10.20.x.x/24
HOME
- Telekom DSL Anschluss
- public IP 2x.x.x.x
- Fritzbox 7590AX
- Fritz OS 7.56
- LAN 10.100.x.x/24
Nun ist es so, dass sich überhaupt keine Verbindung herstellen lässt. Ich initiiere das von der OPNSense aus und sehe in deren FW logs, dass die Pakete an die richtige IP (und port) rausgehen und auch, dass nicht etwa eine Rückantwort geblockt wird. Überhaupt habe ich die OPNSense auch testweise komplett auf gemacht. D.h. anscheinend kommt nicht mal ein erster Handshake zustande, weil die FB keinen Mucks macht. Pingen lässt sie sich aus dem LAN der OPNSense allerdings schon!
Als "Gegenprobe" hatte ich ein Testsetup erfolgreich zum Laufen bekommen. Dies bestand aus der OPNSense wie oben beschrieben und der Home Fritzbox 7590AX, die ich dann aber ebenfalls in's LAN der Remote Location gehängt habe. Lief einwandfrei, d.h. es kann hier nicht an irgendwelchen Settings liegen, die mit Handshake/Encryption, etc. zusammenhängen.
Die Settings in der OPNSense und die vpn config für die Fritzbox findet Ihr unten. Ich hatte in der FB bereits always_renew = no; und yes getestet.
So weit habe ich leider keine Ideen mehr. Das einzige, was mich noch stutzig macht, ist, dass ich in der OPNSense, wenn ich die Verbindung aufbaue, als Local ID und Local IP natürlich die IP des WANs der OPNSense steht, also 192.x.x.x aus dem LAN der DSL 7530er Box in der Remote Location. Hier weiß ich nicht genug - ist dieser Eintrag als Antwortadresse für die Fritzbox in der Home Location relevant, wenn die Verbindung von der OPNSense aus angestoßen wird oder nimmt sie dafür nicht eher die tatsächliche Absenderadresse der UDP Pakete, die reinflattern!? Da ich in der Remote Location diesen DS Lite Anschluss habe, macht es natürlich keinen Sinn, hier eine IP anzugeben. Deswegen habe ich in der Fritzbox Config auch tatsächlich einfach "bla.myfritz.de" angegeben. Habe auch schon getestet, als ID in der OPNSense ebenfalls "bla.myfritz.de" als distinguished name zu verwenden, das hat aber auch nichts gebracht.
So - hoffe, ich hab das einigermaßen tauglich beschrieben und freue mich auf Tipps zum Troubleshooten!
vpncfg {
connections {
enabled = yes;
conn_type = conntype_lan;
name = "remote Box";
always_renew = yes;
reject_not_encrypted = no;
dont_filter_netbios = yes;
localip = 0.0.0.0;
local_virtualip = 0.0.0.0;
remoteip = 0.0.0.0;
remote_virtualip = 0.0.0.0;
remotehostname = "bla.myfritz.net";
localid {
ipaddr = 2x.xxx.xxx.xxx;
}
remoteid {
fqdn = "bla.myfritz.net";
}
mode = phase1_mode_aggressive;
phase1ss = "all/all/all";
keytype = connkeytype_pre_shared;
key = "x";
cert_do_server_auth = no;
use_nat_t = yes;
use_xauth = no;
use_cfgmode = no;
phase2localid {
ipnet {
ipaddr = 10.100.x.x;
mask = 255.255.255.0;
}
}
phase2remoteid {
ipnet {
ipaddr = 10.20.x.x.x;
mask = 255.255.255.0;
}
}
phase2ss = "esp-all-all/ah-none/comp-all/pfs";
accesslist = "permit ip any 10.20.x.x 255.255.255.0";
}
ike_forward_rules = "udp 0.0.0.0:500 0.0.0.0:500",
"udp 0.0.0.0:4500 0.0.0.0:4500";
}
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 7929208901
Url: https://administrator.de/forum/ipsec-tunnel-opnsense-fritzbox-fb-antwortet-nicht-7929208901.html
Ausgedruckt am: 24.03.2025 um 14:03 Uhr
15 Kommentare
Neuester Kommentar
Hi,
Kannst du es denn umgedreht versuchen? Also den Tunnel von deiner Fritte zur OPNS als VPNServer aufbauen? Evtl. gar über IPv6, denn AVM priorisiert seit den neuen FWs beim IPSec IPv6 wenn die Box eine v6-Adresse hat (so eine Aussage eines Supporters von AVM zuletzt bei einem Problem bei uns von einer 7590 zu einer Digibox Smart).
Edit: im Zweifel könntest du ja den Tunnel aber auch zwischen den Fritzboxen aufbauen und den Rest über Routen in den Boxen und entsprechende Regeln in der OPNSense machen.
Gruss
Kannst du es denn umgedreht versuchen? Also den Tunnel von deiner Fritte zur OPNS als VPNServer aufbauen? Evtl. gar über IPv6, denn AVM priorisiert seit den neuen FWs beim IPSec IPv6 wenn die Box eine v6-Adresse hat (so eine Aussage eines Supporters von AVM zuletzt bei einem Problem bei uns von einer 7590 zu einer Digibox Smart).
Edit: im Zweifel könntest du ja den Tunnel aber auch zwischen den Fritzboxen aufbauen und den Rest über Routen in den Boxen und entsprechende Regeln in der OPNSense machen.
Gruss
Ich initiiere das von der OPNSense aus
Mit diesem Vorgehen ist bei DS-Lite immer ein sofortiges Scheitern prinzipbedingt vorgegeben und es ist dann auch vollkommen klar und erwartbar das in dem Falle keinerlei VPN Daten ankommen.Aus den zahlreichen Threads hier im Forum zum Thema DS-Lite / CGN sollte auch dir klar sein das zumindestens in Bezug auf IPv4 ein genereller Zugriff von extern (Internet) auf einen DS-Lite Anschluss technisch unmöglich ist.
Der Grund des Scheiterns mit IPv4 ist das du niemals das zentrale CGNAT Gateway des DS-Lite Providers von außen überwinden kannst und externe Verbindungsversuche hier wegen der prinzipbedingt fehlenden Session Table am Provider sofort scheitern. DS-Lite ist immer eine IPv4 Einbahnstrasse!
Dein o.a. Setup kannst du nur betreiben wenn deine DS-Lite FritzBox der VPN Initiator (Client) ist und die OPNsense der VPN Responder (Server). Anders ist das zumindesens für IPv4 CGN bedingt bekanntlich nicht möglich!
Sinn macht es den FritzBox Tunnel auf der OPNsense als reinen Responder (Peer IP: 0.0.0.0) und "Haken bei Responder only" zu konfigurieren.
Zudem kommt hinzu das deine OPNsense Konfig auch noch falsch ist!
In der Fritzbox definierst du als remote ID den FQDN Namen "bla.myfritz.net" für die OPNsense. Auf der OPNsense selber aber stellst du deren lokale ID dann fehlerhaft auf IP address obwohl die Fritzbox ja "bla.myfritz.net" von der OPNsense erwartet. Auch da würde ein Tunnelaufbau wegen der falschen ID zwischen beiden Komponenten sofort scheitern.
Anders sieht es bei IPv6 aus. Damit ist auch eine VPN Verbindung direkt möglich, allerdings erzwingt das eine AVM Firmware >= 7.5 weil erst damit IPv6 VPNs supportet sind (IPsec und WG)!
Bedenke auch das du beim Betrieb deiner OPNsense in einer Kaskade mit der heimischen Fritzbox die entsprechenden VPN Protokolle und Protoko0llports auf die dahinter kaskadierte OPNsense per Port Weiterleitung freigben musst. Alterniv geht auch ein "Exposed Host" Setting.
Siehe dazu auch HIER.
Weitere Infos zur VPN Kopplung FritzBox/OPNses o. pfSense findest du in diesen Threads:
OPNsense/pfSense VPN auf Fritzbox
Fritzbox als Initiator
OPNsense Fritzbox VPN
Fritzbox im IPsec Main Mode auf pfSense/OPNsense
Fritzboxen im DS-Lite Umfeld
es gäbe keine session table beim DS-Lite...
Vergiss das, das war nur relevant wenn man von deinem vermeintlich falschen Initiator Setup ausging...So wie es jetzt korrigiert beschriben ist klappt das problemlos.
evtl. ist das Setup doch nicht ganz klar geworden
OK, sorry. Das hattest du aber oben dann sehr verwirrend beschrieben. Dann sieht die Welt natürlich etwas anders aus...
exposed host hatte ich gemacht, das hatte ich vergessen zu schreiben, sorry
Ist aber sinnfrei und auch nicht relevant wenn die OPNsense Initiator ist.Gibt es denn keine weiteren Möglichkeiten, zu untersuchen, was hier vor sich geht?
Doch, du könntest du die Paket Sniffer Funktion der Zielfritzbox (feste IP) checken ob dort IPsec ISAKMP Frames der OPNsense eingehen.https://www.itnator.net/fritzbox-paket-sniffer-mitschnitt-aktivieren/
Du solltest das aber auch im Fritzbox Log (Ereignisse) sehen wenn sie versucht einen IPsec Tunnel aufzubauen.
Ansonsten bleibt dir als Alternative ja auch noch Wireguard was ja mit der 7.5er auch auf der 7590AX verfügbar ist und die OPNsense ebenso supportet.
Weil heute Sonntag ist... 😉
Works as designed! 👍 😉
Konfig OPNsense
IPsec Phase 1
IPsec Phase 2
Check IPsec Status
Fritzbox VPN Konfig Datei
vpncfg {
connections {
enabled = yes;
editable = no;
use_ikev2 = no;
conn_type = conntype_lan;
name = "OPNsense";
always_renew = no;
reject_not_encrypted = no;
dont_filter_netbios = no;
localip = ::;
remoteip = 0.0.0.0;
local_virtualip = 0.0.0.0;
remote_virtualip = 0.0.0.0;
keepalive_ip = 0.0.0.0;
localid {
ipaddr = <wan_ip_fritzbox>;
}
remoteid {
ipaddr = 10.11.1.99;
}
mode = phase1_mode_aggressive;
phase1ss = "all/all/all";
keytype = connkeytype_pre_shared;
key = "test1234";
cert_do_server_auth = no;
use_nat_t = yes;
use_xauth = no;
use_cfgmode = no;
phase2localid {
ipnet {
ipaddr = 192.168.188.0;
mask = 255.255.255.0;
}
}
phase2remoteid {
ipnet {
ipaddr = 192.168.111.0;
mask = 255.255.255.0;
}
}
phase2ss = "esp-all-all/ah-none/comp-all/pfs";
accesslist = "permit ip any 192.168.111.0 255.255.255.0";
}
}
Fritzbox VPN Check
Fazit
Works as designed! 👍 😉Leider läuft's bei mir trotzdem nicht.
Sind beide Anschlüsse beim gleichen Provider? Du schreibst aber (Zitat) "und die kommen eindeutig auf der Home Fritzbox, port 500, mit der korrekten Absender-IP an (ISAKMP, aggressive)" was dann bedeutet das dies dann ganz sicher nicht der Fall ist!! Den Einwand kann man also vergessen...
Korrekte Absender IP ist allerdings etwas wirr, denn das ist die IPv4 Absender IP des CGNAT Gateways des DS-Lite Providers aber niemals die der OPNsense selber oder der WAN IP der davor kaskadierten 1&1 Fritzbox 7530ax. Fragt sich also was du hier als "korrekt" ansiehst?! 🤔
Vier Fragen zu Deiner FB Config:
- sind die IKE forward rules absichtlich nicht mitgekommen?
Ja, denn die braucht es in modernen FB Firmware Images nicht mehr für die Konfig Datei. Schadet aber auch nicht wenn sie noch dran sind.- sind die IKE forward rules absichtlich nicht mitgekommen?
Das kannst du auch alles selber sehen wenn du dir einmal deine FB Konfig als Datei sicherst.
Wenn du die .export Textdatei in einem Texteditor öffnest und im unteren Drittel nach der VPN Konfig suchst (fängt mit vpncfg {... an) wirst du sehen das die in der Sicherung bei aktuellen Releases gar nicht mehr auftaucht.
So kann man sich übrigens immer sehr einfach eine eigene Fritzbox VPN Konfig Datei "basteln" indem man nur den Abschnitt vpncfg {....} sichert und den dann nach seinen Bedürfnissen in den Parametern anpasst.
den remotehostname hast Du auch rausgenommen, aber der dient ja nur zur Anzeige im Webinterface, korrekt?
Der muss auch raus, denn du hast ja wenn die andere Seite ein DS-Lite Anschluss ist weder einen IPv4 Hostnamen noch eine v4 remote Adresse. Beides wäre unsinnig, denn das würde sinnlos immer auf die v4 IP des CGNAT Gateway dieses Providers zeigen. Den kann die FB aber nicht erreichen bzw. wird niemals auf VPN Tunnelrequests antworten. Folglich sind diese Namen und Adressen völlig sinnfrei.Wenn man da 0.0.0.0 einträgt und always_renew = no; arbeitet die FB nur als Responder für diesen Peer. Antwortet also nur wenn ein IPsec Tunnelrequest bei ihr eingeht.
- localip habe ich weiterhin auf 0.0.0.0 belassen!?
Ist egal. "::" ist ja nur die identische Notation für IPv6. Beides ist korrekt.Aber wie bereits gesagt...wenn du dir die von deiner FB ausgegebende Konfig in einem Texteditor ansiehst, wie oben beschrieben, dann siehst du genau diese Notation. Ich gebe der FB dann auch immer das als Konfig zurück was sie selber ausgibt.
- als remoteid habe ich weiterhin mein fqdn = "bla.myfritz.net" belassen
Das kann man so machen und wäre per se nicht falsch und IPsec technisch auch richtig, weil die OPNsense Seite sich ja niemals mit einer richtigen v4 IP Adresse melden kann, weil alles hinter den CGNAT Gateway steckt. Siehe oben...Richtig wäre hier in der Tat die remoteid immer mit "fqdn" oder mit einer "keyid" (OPNsense= User distinguished name) anzugeben um von IPs als IDs unabhängig zu sein. "keyid" geht aber m.W. nur wenn man die Fritzbox mit "mode = phase1_mode_idp;" in den sichereren Main Mode bei der Phase 1 umstellt (OPNsense Seite dann natürlich auch).
Allerdings habe ich in beiden Optionen keinen Tunnel hinbekommen mit der OPNsense. Mit einer pfSense als Gegenpart klappte das sofort.
Stabil lief es nur wenn im Agressive Mode beidseitig mit den "ipaddr =" als local und remote IP gearbeitet wurde. Die remote ipaddr ist aber quasi nur ein Dummy. Hier solltest du aber dennoch die RFC1918 WAN IP angeben die die OPNsense dort in der Kaskade mit der FritzBox bekommen hat bzw. die du statisch zugewiesen hast.
Was der genaue Grund dafür ist müsste ich nochmal genauer untersuchen.
Da die ISAKMP Pakete der OPNsense ja an deiner 7590AX Zielfritzbox mit der festen IP ankommen, wie du selber schreibst, kann es nur noch an dieser Fritzbox selber liegen.
Hier solltest du noch einmal dringenst checken ob nicht fälschlicherweise ein Port Forwarding für die IPsec Ports UDP 500 und UDP 4500 sowie das ESP Protokoll eingetragen sind oder ggf. ein Exposed Host dort definiert wurde.
Beides kann bewirken das die FB eingehende IPsec Frames nicht beantwortet sondern schlicht und einfach nur forwardet. Normalerweise MUSS die Fritzbox in jedem Falle auf IPsec Frames antworten wenn sie eine aktive VPN Konfig hat!!
Ich hab inzwischen dann auch die (temporäre) public IP von meinem DS-Lite
Welche genau meinst du??Eine public IPv4 gibt es ja prinzipbedingt NICHT bei DS-Lite! Es kann also nur die IPv6 Adresse sein die du meinst, oder ?
Ich habe das o.a. Setup in einem NAT Aufbau getestet und das funktioniert fehlerlos wenn man bei den IP Adressen als remote und local ID bleibt. Sowie man das auf eine Key ID oder FQDN ändert antwortet in der Tat die empfangene Fritzbox (Responder mit Ver. 7.51) nicht mehr.
Das muss man also so belassen. Warum das so ist, ist noch nicht ganz klar, denn dreht man die Rollen um OPNsense als Responder passiert das nicht.
Die Option ist aber keine wegen des DS-Lite Anschlusses auf der Seite die dann aus dem Grunde nur Initiator sein kann.
- IPSec von der Remote Fritzbox 7530AX zur Homebox. Lief, allerdings konnte ich vom remote LAN die Geräte im Home LAN bis auf die Homebox selbst nicht erreichen. Umgekehrt schon.
Das ist auch logisch! Denke bitte mal etwas nach! Die OPNsense macht ja NAT. Ohne ein entsprechendes Port Forwarding und FW Regelwerk ist das klar das das in der Variante eine routingtechnische Einbahnstrasse ist, denn du kannst das NAT und auch den WAN Port der OPNsense nicht ohne entsprechendes Regelwerk überwinden.Dieses Setup liesse sich aber einfach lösen:
- NAT am WAN Port der OPNsense deaktivieren, denn das ist in einer Kaskade nicht zwingend nötig da die davorliegende FB ja schon NAT macht.
- Statische Route an der FB eintragen mit next Hop Gateway WAN IP um das lokale LAN an der Firewall erreichen zu können. (Siehe dazu hier!)
- FW Regelwerk am WAN Port einrichten das das VPN Netz ins lokale LAN passieren darf.
Technisch besser ist aber immer der direkte Peer von der OPNsense.
Eine einfache Variante hast du oben noch vergessen! Statt IPsec einfach Wireguard VPN von der OPNsense auf deine Zielfritzbox zu nutzen. Auch das funktioniert fehlerlos!
Du hast also zumindestens 3 Lösungen jetzt...
naja, ich dachte, das läuft so, dass ich zwar eine public IP habe, aber diese mit anderen Anschlüssen teile ..
OK, so gesehen hast du (fast) Recht nur das DU eben diese public IP nicht hast sondern was du z.B. bei http://myexternalip.com siehst ist die public IP des NAT Gateways was beim Provider im Rechenzentrum werkelt und nicht die deiner Fritzbox. Aber wie ich Dich verstehe, würde es, trotz allem, so nicht funktionieren!?
Das hast du dann leider falsch verstanden.... Es funktioniert schon aber die DS-Lite Seite MUSS immer der VPN Initiator sein, sprich von ihr muss der VPN Verbindungsprozess ausgegehen. Logisch, denn wenn diese Seite die Verbindung aufbaut existiert eine NAT Session im Provider Gateway so das Rücktraffic auch wieder bei dir landet. Antwortet der Zielserver auf die 83.135.x.x kann das Gateway diesen Traffic dir wieder zuordnen.
Das geht nicht wenn keine NAT Session besteht. Dann schmeisst das Gateway all diese Pakete weg. Das ist der Grund warum man von außen niemals per IPv4 auf DS-Lite Anschlüsse zugreifen kann. Einfache Logik!
Die habe ich nur dazu geholt, weil es mit den Fritten nicht lief
Sollte es aber wenn man es richtig macht und die Rollen Initiator/Responder beachtet! Du musst mit Konfig Dateien arbeiten über das KlickiBunti Interface wird es nichts.Hier findest du eine Bilderbuchlösung dazu mit der es auch mit den FBs sofort klappt:
Fritzbox S2S mit DS-Lite
Da hing ich einfach mit meinem Rechner im LAN der Fritzbox und fertig.
Das ist natürlich unsinnig. Das funktioniert dann nur in einem Kaskaden Setup mit der Firewall!Ich geb dann nochmal Rückmeldung..
Wir sind gespannt!! Wollte einfach nicht.
Ist dann aber ein klassisches PEBKAC Problem, denn erwiesenermaßen rennt das völlig problmelos wenn man die richtigen VPN Settings in der VPN Setup Import Datei für die FB verwendent. Siehe HIER bzw. Den dortigen weiteren Threadverlauf der viele Beispiele zeigt.Aber egal, führen ja viele Wege nach Rom! 😉
Wenn es das denn nun war bitte deinen Thread hier dann auch als erledigt schliessen!