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

Kaffee rein, Content raus. Kein Paywall, kein Newsletter-Zwang – die Inhalte hier sind und bleiben kostenlos. Wenn dir ein Artikel weitergeholfen hat, freue ich mich über einen Kaffee.