FritzBox mit pfSense über WireGuard verbinden – die versteckte Konfigurationsfalle

Inhalt

WireGuard ist schnell, modern und eigentlich einfach zu konfigurieren. Wer jedoch eine FritzBox 7590 über WireGuard Site-to-Site mit einer pfSense-Firewall verbinden möchte, stößt früher oder später auf ein gut verstecktes NAT-Problem – das stundenlange Debugging verursachen kann. In diesem Artikel zeige ich die vollständige Konfiguration und die entscheidende Stelle in der FritzBox-Konfigurationsdatei, die den Unterschied zwischen einem funktionierenden Tunnel und einem einseitig gerouteten Albtraum macht.

Netzwerktopologie & Voraussetzungen

In diesem Szenario verbinden wir zwei Standorte:

Standort A (pfSense): LAN 100.10.25.0/24, WireGuard-Tunnel-IP 192.168.200.234, erreichbar via DynDNS
Standort B (FritzBox 7590): LAN 192.168.178.0/24 (u. a. Client auf 192.168.178.2), WireGuard-Tunnel-IP 192.168.200.238

Voraussetzungen: pfSense mit WireGuard-Paket, FritzBox mit FRITZ!OS ≥ 7.50, öffentliche IP oder DynDNS wie zum Beispiel IPv64 auf mindestens einer Seite, keine überlappenden Subnetze.

WireGuard auf der pfSense konfigurieren

  1. Tunnel anlegen
    1. Unter VPN → WireGuard → Tunnels → Add Tunnel einen neuen Tunnel anlegen.
    2. Das Interface erhält eine Tunnel-IP, z. B. 192.168.200.234/24. Den generierten
    3. Public Key notieren – er wird auf der FritzBox benötigt.
  2. Peer (FritzBox) hinzufügen
    1. Unter VPN → WireGuard → Peers → Add Peer den FritzBox-Peer anlegen.
    2. Folgende Werte sind entscheidend:
      1. Allowed IPs: 192.168.200.238/32 und 192.168.178.0/24
      2. Optional: Endpoint: MyFRITZ-Adresse und Port der FritzBox
      3. Keepalive: 25
      4. Wichtig: Der Eintrag 192.168.178.0/24 in den Allowed IPs ist zwingend erforderlich. Ohne ihn weiß die pfSense nicht, dass Traffic für das FritzBox-LAN durch den Tunnel gehen soll – einer der häufigsten
  3. Konfigurationsfehler.
    1. Firewall-Regeln & Routing
      Unter Firewall → Rules → WireGuard den Traffic erlauben. Unter System →
    2. Routing → Static Routes eine Route für 192.168.178.0/24 via WireGuard-Gateway anlegen.

WireGuard auf der FritzBox konfigurieren

Die FritzBox unterstützt WireGuard als Netzwerkverbindung (Site-to-Site) unter Internet → Freigaben → VPN (WireGuard) → WireGuard-Verbindung hinzufügen.

Die typisch generierte Konfigurationsdatei enthält im Interface-Block eine virtuelle Tunnel-IP:
Address = 192.168.200.238/32

Mit dieser Standardkonfiguration funktioniert der Tunnel – aber nur in eine Richtung. Clients hinter der pfSense können Clients hinter der FritzBox nicht erreichen. Warum, erkläre ich im nächsten Abschnitt.

Das NAT-Problem: Warum es einseitig funktioniert

Wenn in der [Interface]-Sektion eine virtuelle Tunnel-IP (z. B. 192.168.200.238/32) als Address eingetragen ist, führt die FritzBox intern ein Source NAT (Masquerading) durch, was man so von der Konfiguration her nicht erwarten würde. 

Das bedeutet:
Pakete aus dem FritzBox-LAN (192.168.178.x) werden durch den Tunnel geschickt – aber die Source-IP wird auf 192.168.200.238 umgeschrieben. Für die pfSense und deren Clients sind alle FritzBox-Geräte nur als 192.168.200.238 sichtbar, nicht mit ihrer echten IP.

Antwortpakete kommen auf der pfSense mit Source 192.168.200.238 an – obwohl der Client eine Verbindung zu 192.168.178.2 aufgebaut hat. Der State-Table der pfSense findet keinen passenden Eintrag → Paket wird verworfen.

Das sieht man sehr deutlich im Packet Capture auf der pfSense:
13:29:10.145016 IP 100.10.25.2.35850 > 192.168.178.2.8899: tcp 0 ← Anfrage geht raus ✓
13:29:10.157025 IP 192.168.200.238.8899 > 100.10.25.2.35850: tcp 0 ← Antwort mit falscher Source-IP ✗

Die Antwort kommt zwar zurück – aber mit der Tunnel-IP der FritzBox als Absender, nicht mit der echten IP des Clients. Die pfSense verwirft das Paket, da kein passender Connection State existiert.

Wichtig: Die FritzBox führt Source NAT durch, sobald Address eine reine Tunnel-IP (/32) ist. Dieses Verhalten lässt sich über die FritzBox-Oberfläche nicht deaktivieren – nur über die direkte Anpassung der Konfigurationsdatei.

Die Lösung: LAN-IP in der Address-Zeile

Die Lösung ist simpel, aber kaum dokumentiert: In der [Interface]-Sektion muss statt der virtuellen Tunnel-IP die echte LAN-IP der FritzBox mit korrekter Subnetzmaske eingetragen werden.

Falsche Konfiguration (verursacht NAT):
Address = 192.168.200.238/32

Korrekte Konfiguration (kein NAT, echtes LAN-Routing):
Address = 192.168.178.1/24

So gehst du vor:

  1. Konfigurationsdatei exportieren: FritzBox → Internet → Freigaben → VPN (WireGuard) → Verbindung anklicken → Konfigurationsdatei herunterladen.
  2. Address-Zeile anpassen: Datei mit einem Texteditor öffnen. „Address = 192.168.200.238/32″ ersetzen durch „Address = 192.168.178.1/24″.
  3. Verbindung löschen und reimportieren: Alte WireGuard-Verbindung auf der FritzBox löschen. Neue Verbindung über „WireGuard-Verbindung hinzufügen“ → Konfigurationsdatei importieren anlegen.
  4. Verbindung testen: Ping von einem Client hinter der pfSense auf ein Gerät im FritzBox-LAN, z. B. ping 192.168.178.2. Bei Erfolg wird jetzt die echte Ziel-IP als Antwort-Source angezeigt.

Was diese Änderung bewirkt: Die FritzBox nutzt intern weiterhin die WireGuard-Mechanismen korrekt, routet aber Traffic aus dem LAN ohne Source NAT durch den Tunnel. Clients bleiben mit ihrer echten IP (192.168.178.x) sichtbar – vollständiges bidirektionales Routing ist möglich.

Diagnose-Schritte bei Problemen

Falls der Tunnel nach der Konfiguration nicht funktioniert, hilft folgendes systematisches Vorgehen:

Packet Capture auf der pfSense: Unter Diagnostics → Packet Capture das WireGuard-Interface auswählen und auf Traffic von/zu den relevanten IPs filtern. Kommen Pakete raus? Kommen Antworten zurück – und mit welcher Source-IP?

States prüfen: Unter Diagnostics → States nach 192.168.178 filtern. Wenn States nur auf einem LAN-Interface statt WireGuard erscheinen, stimmt das Routing oder NAT nicht.

Outbound NAT prüfen: Unter Firewall → NAT → Outbound sicherstellen, dass kein automatisches NAT auf dem WireGuard-Interface für Traffic in Richtung FritzBox-LAN stattfindet.

Eine ausführliche Community-Diskussion zu diesem Thema findet sich im FritzBox-Forum,

Fazit

Die Verbindung einer FritzBox mit pfSense über WireGuard funktioniert grundsätzlich gut – solange man die eine entscheidende Konfigurationsfalle kennt: In der Address-Zeile der FritzBox-WireGuard-Konfiguration muss die echte LAN-IP der FritzBox stehen, nicht die virtuelle Tunnel-IP.

Dieses Verhalten ist in der AVM-Dokumentation nicht explizit erwähnt und führt regelmäßig zu stundenlangem Debugging – weil der Tunnel zwar aufgebaut wird und in eine Richtung funktioniert, die Gegenrichtung aber am NAT-Verhalten der FritzBox scheitert.

Mit der korrekten Konfiguration steht einem vollständigen, bidirektionalen Site-to-Site-VPN auf Basis von WireGuard nichts mehr im Weg.

Korrekte Konfigurationsdatei

				
					[Interface]
PrivateKey = ***
Address = 192.168.178.1/24

[Peer]
PublicKey = ***
PresharedKey = ***
AllowedIPs = 192.168.200.0/24, 100.10.25.0/24
Endpoint = IP oder DYNDNS:PORT
PersistentKeepalive = 25
				
			
Topologie
Puschmann IT- und Websolutions

Sie suchen einen zuverlässigen IT-Partner für die Konzeption, Einrichtung oder die laufende Betreuung Ihrer Systeme?
Vereinbaren Sie jetzt ein kostenloses Erstgespräch.

Das könnte auch interessieren...
LinkedIn
Reddit
Email
WhatsApp
Telegram
Print