Folgendes Problem:
Ich habe 2 VPN Site-2-Site Tunnel zwischen meiner OPNsense und 2 Fritzboxen am laufen. Diese Tunnel laufen an sich auch ohne Probleme. Sowohl die IPv4 WAN-Adressen der Fritzboxen als auch die der OPNsense sind dynamisch und nicht fest. Nun passiert es, dass bei einem Wechsel der WAN-IP-Adressen der Fritzboxen sich die VPN-Tunnel nicht von alleine wieder neu aufbauen. Ich hatte erst eine Fehlkonfiguration der VPN-Parameter vermutet, konnte es aber jetzt auf die Firewall-Regeln eingrenzen. Natürlich habe ich in den VPN-Parametern dynDNS Adressen als Endpunkte konfiguriert. Ändert sich nun eine WAN-IP-Adresse, so kann man sehen, dass sich diese Adresse auch innerhalb weniger Sekunden im "Automatically generated rules" Ruleset ändert. Also der Inhalt der automatisch generierten Rule für den VPN-Tunnel ändert sich dynamisch. Trotz alledem scheint die Firewall die neue WAN-IP-Adresse zu blockieren. Wenn ich jetzt eine minimale Änderung am Firewall-Regelwerk durchführe, sei es einfach bei einer völlig anderen Regel das Logging einmal ein- und wieder auszuschalten, kommt der VPN-Tunnel sofort hoch.
Meine Vermutung also:
Der Inhalt der automatisch generierten Firewall-Regel für den VPN-Tunnel ändert sich wie gewünscht innherlab weniger Sekunden dynamisch zur neuen WAN-IP-Adresse des VPN-Endpunktes, das Regelwerk der Firewall scheint aber dabei nicht neu geladen zu werden. Wahrscheinlich arbeitet die Firewall dann noch mit einem im Cache gespeichertem Regelwerk, wo noch die alte WAN-IP-Adresse eingetragen ist. Sobald man minimale Änderungen am Firewall-Regelwerk vornimmt und diese "Applied", wird das Regelwerk neu geladen und dann wird auch die neuen WAN-IP-Adresse verwendet.
Ist das nun ein Bug? Ich vermute ja, da sonst dynamische Einträge im Firewall-Regelwerk keinen Sinn haben, wenn sie eh nicht sofort übernommen werden. Gibt es hier evtl. eien Workaround, um das Regelwerk dynamisch neu zu laden?
Es ist so, dass Wireguard nicht mitbekommt, dass durch die Änderung der IP-Adresse die Verbindung abreisst und deshalb nicht neu aufbaut. Du kannst das aber testen und neu aufbauen lassen. Dafür gibt es den Cron-Job "Renew DNS for Wireguard on stale connections", den man alle X Minuten aufrufen kann.
Tatsächlich handelt es sich um einen bzw. 2 IPsec-Tunnel. Das hatte ich in meinem Beitrag nicht erwähnt. Nach Wechsel der Fritzbox WAN-IP-Adresse sehe ich auch im Log vom IPsec der OPNsense keine Pakete mehr von der Fritzbox ankommen. Auch im Log der Fritzbox steht "Timeout" bzw. Gegenstelle nicht erreichbar. Es handelt sich also definitiv um eine Firewall Problem.
Wie sollte die OPNsense denn mitbekommen, dass sich die IP-Adresse der Fritzbox geändert hat?
Mach Port 500 und 4500 doch für "any" auf - das Missbrauchspotential ist ziemlich gering.
Wie genau er das dynamisch ändert weiß ich auch nicht, aber ich kann sagen, dass er die IP-Adressen im roten Rahmen vom Screenshot innerhalb weniger Sekunden von alleine ändert :) Wie gesagt, das sind von der Firewall selbst erstellte Regeln. Da ich in der VPN-Konfiguration als Endpunkt eine DynDNS Adresse angegeben habe, scheint er die Regel ständig zu aktualisieren.
(https://forum.opnsense.org/index.php?action=dlattach;attach=41338)
Aber ja, wenn ich ANY ANY mache, dann wird es natürlich gehen. Ich wollte es einfach nur mal hier dokumentieren, da ich denke, dass das so eigentlich nicht sein soll.