#Anleitung: Site2Site WireGuard Verbindung zwischen pfSense und FritzBox

Einfache Methode
Aufbau:

  1. WireGuard Tunnel und Interface auf der pfSense erstellen:
    1.1. In der pfSense unter „VPN“ → „WireGuard“ → „Tunnel“ auf „Add Tunnel“ [1] klicken

    1.2. Auf „Generate“ [1] klicken. Den erstellten Public Key der pfSense „pfsense.wg.public.key“ [2] kopieren. Abschließend auf “Save Tunnel” klicken.

    1.3. Unter „Schnittstellen“ → „Zuweisungen“ bei „Verfügbare Netzwerkports“ den erstellten Tunnel „tun_wg0“ auswählen und auf „Hinzufügen“ [1] klicken und die erstellte Schnittstelle durch klicken auf „OPTx“ öffnen.

    1.4. Haken bei „Schnittelle aktivieren“ [1] setzen und unter „Beschreibung“ [2] zum Beispiel „WG0“ eintragen. Abschließend auf „Speichern“ [3] klicken.
  2. Wireguard Tunnel auf der FritzBox einrichten.
    2.1. Unter „Internet“ [1], „Freigaben“ [2], „VPN (WireGuard)“ [3] auf „Verbindung hinzufügen“ [4] klicken.

    2.2. „Netzwerke koppeln oder spezielle Verbindungen herstellen“ [1] auswählen und auf „Weiter“ [2] klicken

    2.3. Einen Namen bei „Name der WireGuard®-Verbindung“ [1] eingeben. Den kopierten Public Key „pfsense.wg.public.key“ aus 1.2.[2] bei „Öffentlicher Schlüssel“ [2] eintragen den DNS-Namen oder die WAN IP Adresse und den WireGuard Port der pfSense (pfsense.lab.com:51820) bei „Internet-Adresse“ [3] eintragen. Das LAN-Netz der pfSense bei „Entferntes Netzwerk“ und „Subnetzmaske“ [4] eintragen. Gegebenenfalls „NetBIOS über diese Verbindung zulassen“ [5] anhaken. Abschließend „Fertigstellen“ [6] klicken.

    2.4. Auf der folgenden Seite kann eine Datei mit den Einstellungen durch klicken auf „Einstellungen herunterladen“ [1] heruntergeladen werden. Die Seite mit klicken auf „Schließen“ [2] schließen.

    2.5. Es kommt noch der Hinweis, dass aus Sicherheitsgründen die Einstellungen dieser Verbindung nicht erneut abgerufen werden können. Auch ohne die Einstellungsdatei gespeichert zu haben, lassen sich die Einstellungen später einfach über das Webinterface der FritzBox einsehen.
  3. Einrichten des Peers auf der pfSense
    3.1. Öffnen die aus 2.4.[1] heruntergeladene Einstellungsdatei. Die Datei hat folgenden Inhalt:

    [Interface]
    Address = 192.168.0.1/24
    DNS = 192.168.1.1
    DNS = fritz.box
    [Peer]
    PublicKey = „fritzbox1.wg.public.key“
    PresharedKey = „presharedkey.fritzbox1.wg.pfsense“
    AllowedIPs = 192.168.1.0/24
    Endpoint = fritzbox1.myfritz.net:56641
    PersistentKeepalive = 25
    3.2. In der pfSense unter „VPN“ → „WireGuard“ → „Peers“ auf „Add Peer“ [1] klicken.

    3.3. Den erstellten „Tunnel“ „tun_wg0“ [1] aus 1.2. auswählen. Unter „Beschreibung“ [2] zum Beispiel fritzbox1 eintragen. Ist die FritzBox im Internet direkt erreichbar den haken unter „Dynamic“ [3] entfernen. Unter „Endpoint“ [4] den „Hostname“ und „Port“ aus der Einstellungsdatei (Endpoint = fritzbox1.myfritz.net:56641) übernehmen Bei „Keep Alive“ [5] wie in der Einstellungsdatei „25“ eintragen. Bei „Public Key“ [6] den „PublicKey“ („fritzbox1.wg.public.key“) aus der Einstellungsdatei eintragen. Bei „Pre-shared Key“ [7] den „PresharedKey“ („presharedkey.fritzbox1.wg.pfsense“) aus der Einstellungsdatei eintragen. Bei „Allowed IPs“ [8] das Netz unter „AllowedIPs“ (192.168.1.0/24) aus der Einstellungsdatei eintragen. Abschließen auf „Save Peer“ [9] klicken.

Sollte alles geklappt haben, ist die Wireguard verbindung zwischen FritzBox und pfSense hergestellt und im jeweiligen System als „grün“ zu erkennen. Die LAN IP Adressen sollten aber noch nicht erreichbar sein. Hierfür muss der pfSense das Routing sowie die Firewall Regeln noch gegeben werden.

  1. Routing und Firewall Regeln der pfSense anpassen
    4.1. Unter „System“ → „Routing“ → „Gateways“ auf „Hinzufügen“ [1] klicken.

    4.2. Unter „Schnittstelle“ [1] „WG0“ auswählen und unter „Name“ [2] zum Beispiel „WG0_GW“ eintragen und auf „Speichern“ [3] klicken.

    4.3. Unter „System“ → „Routing“ → „Statische Routen“ auf „Hinzufügen“ [1] klicken.

    4.4. Unter „Zielnetzwerk“ [1] das LAN Netz der FritzBox eintragen und bei „Gateway“ [2] „WG0_GW – dynamic“ auswählen und auf „Speichern“ [3] klicken.

    4.5. Unter „Firewall“ → „Regeln“ → „WG0“ entsprechende Regeln erstellen. Zum Testen kann eine „Allow all“ Regel wie auf dem Bild zu sehen ist erstellt werden. Gegebenenfalls auch unter „LAN“.
    Wie hier und an anderen Stellen müssen bei der pfSense die Änderungen auch angewendet werden. Bitte selbstständig auf die Schaltflächen achten und anklicken.

Wenn ich nichts Vergessen oder übersehen habe, sollten sich beide LAN-Netze nun gegenseitig erreichen können.

Anmerkungen:

  • Gewisse IPs/Netze können bei der FritzBox über VPN nicht geroutet werden. Zum Beispiel die 192.168.180.1 und 192.168.180.2. Diese Adressen verwendet die FritzBox Systemintern für DNS. Beim Versuch eine Verbindung mit diesen Adressen über WireGuard zu erstellen kommt eine entsprechende Konfliktmeldung.
  • Verwendete pfSense: VM mit CE 2.7.0-RELEASE
  • Verwendete FritzBox: 7590 mit FRITZ!OS 7.57
  • Sollte noch keine WireGuard Verbindung auf der FritzBox vorhanden sein, generiert die FritzBox einen Private- sowie Public-Key. Der WireGuard Port wird dabei auch zufällig von der FritzBox gewählt und ist für alle weiteren Verbindungen Gültig solange nicht alle WireGuard Verbindungen in der FritzBox gelöscht werden.
3 Likes

Ich hab ein Screenshot vergessen. Ich konnte meinen Beitrag aber nicht mehr bearbeiten. Ist das normal dass das nach einer gewissen Zeit nicht mehr geht?
Der Screenshot gehöre zwischen Punkt 2.2. und 2.3.

„Du machst die FritzBox zum Server und die pfSense zum Wireguard Client.“

Verstehe ich nicht ganz. Aus meiner Sicht können die FritzBox und die pfSense in der Anleitung jeweils die Rolle des Servers oder Clients annehmen.

Ich hab zwar kein DS-lite Anschluss aber um es mal bestmöglich nachzustellen, hab ich am Smartphone die Hotspot Funktion gestartet und bei der FritzBox den Internetzugang auf „vorhandener Zugang über WLAN“ umgestellt. Im Smartphone direkt wurde mir nur eine öffentliche v6 Adresse Adresse angezeigt. In der FritzBox wurde beim Internetzugang eine private v4 und eine öffentliche v6 Adresse angezeigt. Auf der Startseite von ipv64.net über den PC an der FritzBox wurde mir wiederum nur eine öffentliche v4 Adresse angezeigt.

Wenn wie bereits in Punkt 3.3.[3] beschrieben der Haken bei Dynamic drin bleibt und die pfSense sozusagen nur als Server agiert und die FritzBox nur als Client, funktioniert alles weitere auch ohne Probleme. Die LAN Netze erreichen sich gegenseitig.

Kann gern mal getestet werden. Vielleicht übersehe ich auch etwas bei dem Szenario.

Servus,

tolle Anleitung, hab es aber nur überflogen - incl. der Kommentare. Ich würde das gern im Sonntag-Stream testen und (falls es geht) auch ein Video dazu machen. Ist das Ok für dich wenn ich den Beitrag hier dann als Vorlage verwende und u.U. auch zeige?

VG
Gerd

Kannst du gern tun. Falls es bei dir doch ein Abend-Stream werden sollte, kann ich mit drüber schauen.
Wenn ich es noch schaffe, schreibe ich noch was zusammen, um 2 verschiedene Netze hinter der pfSense mit dem LAN Netz der FritzBox über einen WireGuard Tunnel zu verbinden.

Erweiterte Methode
zum hinzufügen, bearbeiten oder ergänzen von Peers in der FritzBox.

  1. Allgemein kann man sich unter „WireGuard-Einstellungen anzeigen“ [1] alle gespeicherten Daten zu WireGuard Verbinden, wie die Keys, anzeigen lassen.

  2. Es empfiehlt sich mindestens eine WireGuard Verbindung gespeichert zu haben, da ansonsten neue Keys vergeben werden sowie der WireGuard Port neu gewählt wird. Hierzu reicht eine Einzelgerät Verbindung welche nach der Erstellung auch auf inaktiv gesetzt werden kann.
    2.1. Dazu in der WireGuard Übersicht auf „Verbindung hinzufügen“ klicken und anschließend „Einzelgerät verbinden“ [1] auswählen und auf „Weiter“ [2] klicken.


    2.2. Der Verbindung nur noch einen Namen geben [1] und auf „Abschließen“ [2] klicken

  3. Das hinzufügen, bearbeiten oder ergänzen von Peers erfolgt nun durch die Erstellung einer Datei (zum Beispiel „wg-peer.conf“) mit folgenden Inhalt:

[Interface]
DNS = 192.168.0.1 # optinal
[Peer]
PublicKey = „pfsense.wg.public.key“
PresharedKey = „presharedkey.fritzbox1.wg.pfsense“
AllowedIPs = 192.168.0.0/24
Endpoint = pfsense.lab.com:51820
PersistentKeepalive = 25
  • Der Bereich [Interface] ist hier komplett Optional.
  • Durch die Datei lassen sich so Verbindungen schnell hinzufügen in die FritzBox.
  • Möchte man eine Vorhanden Verbindung in der FritzBox bearbeiten oder ergänzen muss dieses zuerst aus der FritzBox gelöscht werden.
  • Um mehrere Netze hinter der pfSense über eine WireGuard Verbindung für das FritzBox LAN erreichbar zu machen genügt die Anpassung der „AllowedIPs“ in der Datei (in der pfSense sollte bis auf eine eventuelle Anpassung der Firewall nichts weiter nötig, falls sich an die Schritte der Einfachen Methode gehalten wurde) . Zum Beispiel:
[Peer]
PublicKey = „pfsense.wg.public.key“
PresharedKey = „presharedkey.fritzbox1.wg.pfsense“
AllowedIPs = 192.168.0.0/24,192.168.10.0/24
Endpoint = pfsense.lab.com:51820
PersistentKeepalive = 25

Mehrere Netze werden anschließend in Übersicht der FritzBox entsprechend auch angezeigt [1]

  1. Das Hochladen der Datei erfolgt einfach über Verbindung hinzufügen.
    4.1. Anschließend wieder "Netzwerke koppeln oder spezielle Verbindungen herstellen“ [1] auswählen und auf „Weiter“ [2] klicken

    4.2. diesmal bei „Wurde diese WireGuard®-Verbindung bereits auf der Gegenstelle erstellt?“ [1] ja wählen und auf „Weiter“ [2] klicken

    4.3. Der Verbindung wieder einen Namen geben [1], die erstellte Datei auswählen [2], gegebenenfalls „NetBIOS über diese Verbindung zulassen“ [3] wieder anhaken und Abschließend auf „Fertigstellen“ [4] klicken.

In der „Kernel IP routing table“ der FritzBox sind folgende IPs/Netze bereits eingetragen und könnten Konflikte verursachen:
169.254.0.0 / 255.255.0.0
192.168.178.0 / 255.255.255.0 (Standard LAN Netz, lässt sich ändern)
192.168.180.1 / 255.255.255.255
192.168.180.2 / 255.255.255.255
192.168.189.0 / 255.255.255.0 (Gäste Netz, der Bereich könnte variieren)

https://v64.tech/t/fritzbox-ds-lite-wireguard-s2s-usw-laeuft/457/2

Vielen Dank für die Anleitung, fuktioniert super!

Ist es netzwerktechnisch grundsätzlich machbar, dass ich mehrer Fritzboxen aus unterschiedlichen Netzwerken über ein Interface / Gateway mit der pfSence verbinde und über das eine Gateway verschiedene Routen in der pfSence anlege, oder braucht jede Fritte ihr eigenes Gateway samt Route?

Guten Tag,
ich hoffe, es passt zu diesem Thema, ich habe es nach Dennis Anleitungsvideos hier ähnlich aufgebaut. Siehe gerne: https://www.youtube.com/watch?v=El7NK3Ox72I

Aufbau:

Folgende Problematik:
Ich kann aus meinem privaten Netz alle Server bei Hetzner über die private ip (Netz: 10.100.0.0/16) erreichen. Lediglich von meinen Hetzner Servern nicht in das Netz zu Hause (192.168.178.0/24).

Wenn ich die Pakete in pfSense via Packet Capture mitschneide, sehe ich auch, dass die Pakete (ICMP) hier ankommen. Aber die pfSense hier das nicht weiterleitet.

Ich hoffe, Ihr könnt mir helfen :smiley:. Ich wollte gern weitere Bilder anhängen, leider bin ich aufgrund der begrenzung hier limitiert, reiche die aber gerne auf Wunsch nach.
Grüße