OPNsense x Fritzbox 7590 / FritzOS 7.50 Wireguard

Started by maxidalli, March 18, 2023, 07:25:39 PM

Previous topic - Next topic
Hallo zusammen,

ich wollte mal fragen, ob jemand schon seine OPNsense mit einer Fritz!Box z. B. 7590 aber mit Fritz OS 7.50 verbunden hat? Mein Ziel ist es, von einem Windows-PC hinter der OPNsense auf den Drucker hinter der Fritz!Box drucken zu können.

Hat hier eventuell jemand eine Anleitung zum Einrichten davon?


Danke und Gruß
Max

Es funktioniert, ich habe aber keine Schritt-für-Schritt-Anleitung. Du musst halt auf beiden Seiten jeweils die Gegenstelle (z.B. per Dyndns), Ports, Credentials und Subnetze eintragen.

Man sieht dann am Status in der OpnSense, ob ein Heartbeat anliegt.
Intel N100, 4 x I226-V, 16 GByte, 256 GByte NVME, ZTE F6005

1100 down / 770 up, Bufferbloat A

Danke für deine Antwort.

Eine Verbindung habe ich auch hergestellt bekommen und kann auch von der Fritz!Box die OPNsense sowie Geräte im LAN der OPNsense erreichen. Das Problem liegt eher daran, mit einem Windows Server im LAN der OPNsense den Drucker mit IP 192.168.178.XX im Fritz!Box LAN zu erreichen.

Eine Idee, wie ich das konfiguriert bekomme?

Wenn der Tunnel funktioniert, kann es ja nur die Route oder die Firewall sein:

Route: Hast Du bei den "Allowed IPs" im Endpunkt der OpnSense das entfernte Netz der Fritzbox angegeben?

Firewall: Und eine Regel aus dem OpnSense-LAN, die den Zugriff auf das entfernte Netz erlaubt?
Intel N100, 4 x I226-V, 16 GByte, 256 GByte NVME, ZTE F6005

1100 down / 770 up, Bufferbloat A

Hallo,

die FRITZ!Box setzt Wireguard ein wenig anders um, als man es gewöhnt ist. Ich hatte neulich das gleiche Problem. Ich kam nicht an das Gerät hinter der FRITZ!Box. Nach etwas Recherche habe ich rausbekommen, dass die FRITZ!Box das eigene Netz NATet. Das ist natürlich unbrauchbar.

Ich bin dann wie folgt vorgegangen:

FRITZ!BOX: Erstellen einer neuen Wireguard Verbindung

Benutzerdefinierte Einrichtung
"Wurde diese WireGuard®-Verbindung bereits auf der Gegenstelle erstellt?" Nein
"Soll die neue WireGuard®-Verbindung gleichzeitig zu einer bestehenden Verbindung der Gegenstelle genutzt werden?" Nein
"Handelt es sich um ein Einzelgerät (Laptop, Smartphone, Tablet) oder um einen WireGuard®-fähigen Router ( z.B. eine FRITZ!Box)?" WireGuard®-fähiger Router

Dann das "entfernte" Netzwerk angeben, z.B. 192.168.99.0 und anschließend die Konfigurationsdatei von der FRITZ!Box herunterladen. Die Datei im Editor öffnen und dann die Konfiguration in der OPNsense nachbauen.

OPNSENSE:

Im Abschnitt VPN: Wireguard: Local fügt man über den +-Button einen neuen Eintrag hinzu:

Name    ClientFRITZ    Beliebiger Name
Public Key    PUBKEY    Hier den Public Key einfügen bzw. leer lassen.
Private Key    PRIVATEKEY    Hier den Private Key einfügen.
Listen port    51820   Beliebiger Port, 51820 wir i.d.R. für Wireguard verwendet
Tunnel Address    192.168.99.1/24    FRITZ!Boxen können kein Transport-LAN. Deswegen trägt man hier das lokale Subnetz ein, welches auf das VPN zugreifen soll.
Peers    Nothing selected    Zunächst leer lassen.

Im Abschnitt VPN: Wireguard: Endpoints fügt man über den +-Button einen neuen Eintrag hinzu:

Name    Seeburg    Name des Clients
Public Key    PUBKEY    Hier den Public Key des Clients einfügen.
Shared Secret    SECRET    Hier das Shared Secret (PSK) des Clients einfügen.
Allowed IPs    192.168.171.0/24    Das Subnetz der FRITZ!Box wird hier eingetragen.
Endpoint Address    xxxx.myfritz.net    IP Adresse oder Hostname von FRITZ!Box!
Endpoint Port    51820    Hier den Port eingeben, der in der Configdatei steht.
Keepalive    25    Dieser Wert hat sich als sinnvoll erwiesen.

Anschließend geht man nochmals zurück zu VPN: Wireguard: Local und aktiviert den gerade erstellten Endpoint.

Ich hoffe, diese (grobe) Anleitung hilft weiter...

Gruß
Robert

Hallo Robert,

erstmal vielen Dank für deine Anleitung!

Die Verbindung steht und er zeigt grünes Licht in der Fritzbox.
Leider erreiche ich trotzdem weder von der Fritzbox etwas hinter der OPNsense geschweige denn die OPNsense selbst. Ebenso nicht von der OPNsense die Fritzbox oder etwas hinter dieser.

Hier einmal die Screenshots von allem:
https://abload.de/img/fritzboxlhe6g.png
https://abload.de/img/opnsense-localyrdn9.png
https://abload.de/img/opnsense-endpointmadol.png
https://abload.de/img/opnsense-firewall-wirbgeft.png
https://abload.de/img/opnsense-firewall-wanune8a.png

Erkennst du eventuell, wo der Fehler liegt?


Danke und Gruß
Max

https://abload.de/img/opnsense-localyrdn9.png
Hier fehlt der Public Key oder hast den nur rausgelöscht für den Screenshot? Denn alle anderen sind ja nur unkenntlich gemacht.

https://abload.de/img/fritzboxlhe6g.png
Hier fehlt noch das IP Netzwerk wohin du rein möchtest.
10.0.7.0/24 ist ja das Wireguard Netzwerk. Dazu muss noch das LAN Netzwerk der OpnSense hinter dem Tunnel.

Dann solltest du eigentlich zumindest das FB Netzwerk aus dem OpnSense Netzwerk erreichen können.

Ich habe die Verbindung auf der Sense "gestartet" und in die FB eine config hochgeladen. Das fand ich irgendwie einfacher, weil die Fritzbox meint irgendwelche Extrawürschte braten zu müssen.

Guten Morgen,

bitte entschuldigt, dass ich erst jetzt antworte. Inzwischen musste ich mich auch ein wenig mit der Thematik beschäftigen, da mein erster Versuch nicht optimal lief. Deswegen habe ich mir jetzt zwei Templates gebaut, die ich benutze.

Zunächst generiere ich mir selbst die Keys. Ich benutze dafür ein Linux System, die Befehle sollten aber grundsätzlich mit der Windows-Version von Wireguard möglich sein.


wg genkey | tee opnsense.private.key | wg pubkey > opnsense.public.key
wg genkey | tee fritzbox.private.key | wg pubkey > fritzbox.public.key
wg genpsk > fritzbox.psk


Datei zum Import in die FRITZ!Box:

[Interface]
PrivateKey = FRITZBOX_PRIVATEKEY
ListenPort = 51821
Address = DYNDNS.myfritz.net

[Peer]
PublicKey = OPNSENSE_PUBLICKEY
PresharedKey = FRITZBOX_PSK
AllowedIPs = 192.168.58.0/24 # Netzwerk auf Seite der OPNsense
Endpoint = opnsense.example.com:51821
PersistentKeepalive = 25


Die folgende Datei ist für die OPNsense. Ich füge die Werte in der GUI ein, d.h. ich baue die Datei nach:


[Interface]
PrivateKey = OPNSENSE_PRIVATEKEY
Address = 192.168.58.0/24 # Netzwerk auf Seite der OPNsense
ListenPort = 51821

[Peer]
PublicKey = FRITZBOX_PUBLICKEY
PresharedKey = FRITZBOX_PSK
AllowedIPs = 192.168.51.0/24 # Netzwerk auf Seite der FRITZ!Box
Endpoint = DYNDNS.myfritz.net:51821
PersistentKeepalive = 25


Wie gesagt: Datei in FRITZ!Box importieren, Config in OPNsense nachbauen und dann noch die Firewallregeln konfigurieren. Also auf WAN den Port "öffnen" und dann das Interface "Wireguard (Group)" nach Bedarf regeln.

Genau so habe ich das jetzt seit 7 Tagen mit einer FRITZ!Box LTE (Labor) und einer OPNsense 22.7.11 stabil verbunden. Keine Probleme soweit.

Gruß
Robert

Es ist ja schon ein paar Tage her das hier geschrieben wurde, aber ich nehme das Thema noch mal wieder auf.

Seit ein paar Tagen gibt es ja für die Fritte 7490 die Wireguard Funktion. Heute habe ich das ganze dann an einem Standort getestet. Die VPN Verbindung habe ich nach der Anleitung von robgnu im Post 4 nachgebaut. Der Tunnel war auch direkt online.
Problem: Wenn die FritzBox neu startet / neue IP bekommt, baut sich der Tunnel nicht wieder auf.
Ich habe ca. 30 Minuten gewartet und nichts passiert.
Sobald ich in meiner OPNsense in der Wireguard Einstellungen noch mal auf Applay gehe, steht der Tunnel wieder.

Für mich sieht es danach aus, als ob die OPNsense den IP Wechsel nicht mitbekommt und den Tunnel nicht wieder aufbaut.

Danke für eure Hilfe

July 30, 2023, 09:15:28 AM #9 Last Edit: July 30, 2023, 09:22:56 AM by meyergru
Das ist ein bekanntes Problem. Wireguard löst DNS-Adressen nur einmalig beim Start des Prozesses auf, dann nie wieder. Mit dynamischen Gegenstellen hilft nur, zu checken, ob Verbindung hängt und dann ggf. den Tunnel neu zu starten.

Ich hatte dazu vor einiger Zeit einen Patch eingereicht, deswegen kann man jetzt einen Cron-Job aufsetzen, der die Prüfung und ggf. den Neustart alle paar Minuten macht. Er heißt "Renew DNS on stale Wireguard connections", ich starte ihn alle 5 Minuten ("0,5,10,15,20,25,30,35,40,45,50,55 * * * *").
Intel N100, 4 x I226-V, 16 GByte, 256 GByte NVME, ZTE F6005

1100 down / 770 up, Bufferbloat A

Danke Meyergru für den Hint.

Das klingt ja zu einfach um wahr zu sein :D
Die Frage ist, ob das auch mit meiner config geht:

Ich habe zwei "Local" Wireguard Interfaces:
wg1 ist für meine Clients für Unterwegs
und das wg2 soll die Site2Site Verbindung zur FritzBox sein.

Ohne mir dein Cron jetzt angeschaut zu haben (Vermutlich ist mir der eh zu hoch :D )
Kommt der Cron damit klar oder sieht er die Client Verbindungen als getrennt und startet den Dienst dann durchgehend neu?
Bedeutet Dienstneustart dann auch, das eine etwaige Client2Site Verbindung auch getrennt wird?

Ein allgemeine Frage noch zu der Wireguard config. Ich habe auf der Fritten Seite 1 Subnetz. Auf der Opnsense Seite 3 Subnetze, die ich jeweils gerne durchreichen möchte. Ist das möglich? sind alles /24er Netze. Bei der Client2Site Verbindung kann ich die ja in der Config einfach mit einem "," voneinander Trennen. Aber bei der Fritte, geht das sicher nicht über das GUI sondern muss wohl dann auch über ein config file sein? Dann auch einfach mit "," getrennt?

August 13, 2023, 05:28:03 PM #11 Last Edit: August 13, 2023, 05:35:19 PM by sined
Heute noch mal am 2. Standort gewesen und den Tunnel nun auf WireGuard umgestellt.
Zwei Sachen sind mir dabei aufgefallen:

1. Die Verbindung wird relativ schnell wiederaufgebaut, dabei habe ich den cronJob gar nicht am Laufen. Gab es im letzten OPNsense Update ein Bugfix?
2. die Fritzbox hat die 10.2.2.250 als IP. Die muss ich ja auch als Tunnel Adresse eingeben. Rufe ich jetzt vom OPNsense Standort die IP auf, erscheint einer meiner öffentlichen Webserver. Rufe ich die IP vom FritzBox Netz auf erscheint die Fritzbox. Das liegt vermutlich an der Tunnel Adresse, die die IP auf "lo0 / Loopback" setzt und ich muss das so hin nehmen, das ich die Fritte nicht über mein OPNsense Netzt erreichen kann?!?!?

Das Thema mit den 3 Subnetzen habe ich auch gelöst bekommen, war so einfach wie gedacht. Subnetze durch Komma voneinander trennen in der Fritten Config

Heute das neue OPNsense Update eingespielt.
Unter anderem war auch Wireguard dabei...

leider ging es jetzt einen Schritt zurück. Nach IP Wechsel auf der OPNsense Seite baut er den Tunnel nicht mehr auf. Erst nach dem Neustart des Dienstes.

Auch der Cron von @maxidalli hilft da nicht.
Jemand andere oder gleiche Erfahrung?

Problem hat sich irgendwie von selbst gelöst.

Am Wochenende hatte ich noch mal ein paar Tests gemacht.
- Fritzbox neu starten lassen
- Firewall neu starten lassen
- an der OPNsense nur das Internet neu gestartet (für neue IP)

egal was ich gemacht habe, der Tunnel war meist direkt mit dem Internet wieder aufgebaut. Ich beobachte das jetzt noch mal ein paar Tage.

Bin aber sehr angetan von dem Wireguard Tunnel. Die Übertragungsgeschwindigkeit hat sich gegenüber dem IPsec Tunnel deutlich verbessert.

Hallo zusammen,
was mach ich nur falsch?  Ich kann noch nicht mal die cfg einlesen i.d. Fritte

FritzBox 6850LTE

[Interface]
PrivateKey = BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
ListenPort = 51821
Address = 192.168.200.1

[Peer]
PublicKey = AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
PresharedKey = CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = 199.99.999.99:51821
PersistentKeepalive = 10

OPNsense Local
PublicKey = AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
PrivateKey = DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
ListenPort = 51821
TunnelAdress = 192.168.178.1/24

OPNsense Endpoint
Name = Test
PublicKey = AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AllowedIPs = 192.168.200.0/24, 192.168.178.0/24

Danke.