Hallo Zusammen,
ich habe bei meiner OPN (OPN1) den Wireguard Server installiert und kann z.B. mit einem Wireguard Client bei mir auf dem Handy eine Verbindung zu dem Server aufbauen. Das funktioniert auch soweit.
Nun möchte ich gerne von einem anderen Standort mittels einer weiteren OPN (OPN2) eine Wireguard VPN Verbindung zu der ersten OPN aufbauen. Dabei hapert es aktuell etwas. Ich habe dabei folgendes Tutorial gefunden:
Tutorial (https://docs.opnsense.org/manual/how-tos/wireguard-selective-routing.html)
Dabei würde ich ja nur die OPN2 konfigurieren. Nur was mach ich bei der OPN1 einstellen? Und was ich mich dann noch frage, wie starte ich die Verbindung? Wird die automatisch dann aufgebaut?
Für Hilfe danke im voraus.
Du brauchst auf beiden Seiten eine Instanz und einen Peer - die jeweils andere Seite. Aufgebaut wird die Verbindung automatisch.
Was ist konkret unverständlich/schwierig?
Hallo Patrick,
war mir nicht sicher das die Verbindung automatisch aufgebaut wird. Dachte, dass muss man manuell machen.
Ich habe auf beiden Seiten eine Instanz und einen Peer eingerichtet.
Wenn ich bei beiden OPN den Wireguard Dienst neu starte bekomme ich bei der OPN2 in den Wireguard Log Files folgenden Eintrag:
Quote/usr/local/opnsense/scripts/Wireguard/wg-service-control.php: The command '/sbin/route add -host -'inet' '8.8.8.8' '10.100.100.100'' returned exit code '1', the output was 'add host 8.8.8.8: gateway 10.100.100.100 fib 0: Invalid argument'
Bei der steht auch unter Status, dass Daten gesendet wurde.
Bei der OPN1 steht in den Logfiles nichts und unter Status steht, dass der Peer Offline ist.
Zeig doch mal die Konfiguration auf beiden Seiten minus der private Keys.
Hi, hier die Konfiguration der beiden Seiten:
OPN1
Instance und Peer
OPN1 - Instance.png
OPN1 - Peer.png
Firewall Regel
OPN1 - Firewall Regel 1.png
OPN1 - Firewall Regel 2.png
OPN2
Instance und Peer
OPN2 - Instances.png
OPN2 - Peer.png
Firewall Regel
OPN2 - Firewall Regel 1.png
OPN2
Firewall Regel 2
OPN2 - Firewall Regel 2.png
Gateway und Interface
OPN2 - Gateway.png
OPN2 - Interface.png
Und du hast die Public Keys auf der jeweils anderen Seite im Peer drin?
Frage: was soll das mit den Gateways und weshalb sind bei einer GW-GW-Verbindung die Netzmasken im Tunnelnetz unterschiedlich?
Du kannst einfach beiden eine /24 auf dem Transfernetz geben und ebenso 10.100.100.0/24 in die AllowedIPs eintragen. Und dann fügst du anstelle einen Gateway anzulegen, einfach das jeweilige entfernte LAN auf jeder Seite auch noch den AllowedIPs hinzu. Dann funktioniert alles automatisch.
Firewall-Regeln, die den Verkehr erlauben, entweder auf einem zugewiesenen Interface oder auf der "WireGuard" Gruppe, braucht es natürlich auch noch.
Das mit dem Gateway hatte ich aus dem von mir verlinktem Tutorial.
D.h. ich konfiguriere es bei den beiden OPNs eigentlich gleich, bis auf die Keys und bei der OPN2 die WAN IP von der OPN1?
Korrekt, einfach völlig symmetrisch - IP-Adressen und Keys jeweils vom anderen Ende. Das ist ja gerade kein "Roadwarrior" Setup.
Das habe ich jetzt soweit auch konfiguriert. Bei beiden steht bei Wireguard -> Status sowohl instance als auch peer auf Online.
Jetzt habe ich allerdings das Problem, dass ich z.b. nicht von der OPN2 auf eine IP der OPN1 zugreifen kann. Z.b funktioniert kein Ping.
Ich denke mal das liegt dann jetzt an den Firewall Regeln oder? Wenn unter Status steht, dass beides auf beiden OPN Online sind, sollte die Verbindung doch stehen oder?
Bei der OPN2 in den Firewall Logs ist es grün, bei der OPN1 ist der Eintrag allerdings rot markiert.
Wenn ich die. Verbindung über den Handy Client aufbaue kann ich auf Sachen der opn1 zugreifen. Diese Firewall regeln habe ich für die opn2 genauso angelegt
Das WireGuard-Interface bedient ja nur stark authentifizierte Verbindungen. Daher leg doch auf beiden Seiten mal die Firewall-Regel dafür mit "IPv4 allow any any" an.
Dann, wenn du in den AllowedIPs die jeweiligen LANs von "gegenüber" drin hast, dann solltest du von einem LAN-Client aus einen LAN-Client auf der anderen Seite anpingen können.
Wenn das funktioniert, aber für OPNsense nicht, dann fehlt noch die Tunnel-Adresse des Gegenübers in den AllowedIPs.
HTH,
Patrick
Die allow any regeln dann aber bei den wireguard Interfaces oder bei wan?
Wireguard. Auf WAN nur any --> WAN address, UDP, 51820 oder entsprechend.
Mit der Any Regel funktioniert es. Dann komme ich z.B. von der OPN2 auf die Config der OPN1. Die kann ich auch anpingen. Ich komme aber z.b. nicht per Remote auf einen PC im gleichen IP Bereich wie die OPN1.
Auf der OPN1 habe ich auch noch zwei VLAN. Auf die würde ich auch gerne über einen PC zugreifen, der sich an der OPN2 befindet. Hierfür habe ich jetzt die beiden IP Bereiche auch in den Peers unter Allowed IPs eingetragen. Leider komme ich dann auch nicht per Remote auf die VLAN PCs.
Muss ich dafür noch was anderes konfigurieren? Ich habe auch bei den beiden VLAN erstmal jeweils eine Any Regel angelegt.
Edit:
Wenn ich die beiden Wireguard neu starte bekomme ich aktuell leider keine Verbindung mehr zwischen ihnen aufgebaut. Ich hatte eigentlich nur das oben geschriebene geändert.
Auf dem OPN1 bekomme ich im Wireguard Log folgende Meldungen:
2025-07-15T14:56:46 Notice wireguard wireguard instance WGFD (wg1) started
2025-07-15T14:56:46 Notice wireguard /usr/local/opnsense/scripts/Wireguard/wg-service-control.php: plugins_configure monitor (execute task : dpinger_configure_do(,[]))
2025-07-15T14:56:46 Notice wireguard /usr/local/opnsense/scripts/Wireguard/wg-service-control.php: plugins_configure monitor (,[])
2025-07-15T14:56:45 Notice wireguard /usr/local/opnsense/scripts/Wireguard/wg-service-control.php: ROUTING: entering configure using opt5
2025-07-15T14:56:45 Notice wireguard wireguard instance WGFD (wg1) stopped
Kann es damit zusammen hängen?
Müsste nicht im Firewall Log ein Eintrag kommen wenn ich Wireguard neu starte? Da taucht nämlich nichts auf.
Ich habe jetzt bei beiden OPN die Instanzen und Peers gelöscht und neu konfiguriert. Leider ohne Erfolg. Es wird keine Verbindung aufgebaut. Leider verstehe ich nicht, woran es jetzt liegt. Vor allem da es ja schon geklappt hat. Hat vielleicht noch jemand einen Tipp für mich?
OPN1 - Instance, Peer und Firewall
OPN1 - Instance.png
OPN1 - Peer.png
OPN1 - Firewall 1.png
OPN1 - Firewall 2.png
OPN2 - Instance, Peer und Firewall
OPN2 - Instance.png
OPN2 - Peer.png
OPN2 - Firewall.png
Du hast auf einer Seite die Endpoint address des Peers weggelassen. Hat die andere Seite eine dynamische IP-Adresse? Ist sie am Ende hinter einem anderen Router?
Allowed IPs für den Peer sollten für das Tunnelnetz immer /32 sein oder genauer gesagt, eben nur der jeweilige Peer selbst.
@Bob.Dig muss nicht. Bei einer P2P-Verbindung ist es tatsächlich wurst. Wenn ich einen Stern habe, kann ich z.B. in der Zentrale überall /32 eintragen und in den Niederlassungen /24 - dann können die auch miteinander sprechen.
Also es kann zumindest nicht der Grund sein, weshalb es gar nicht funktioniert.
@BeTZe313 tcpdump auspacken und gucken, ob da überhaupt Pakete kommen ...
Ich habe jetzt die fehlende Endpoint Adresse hinzugefügt. Es ist eine feste IP. Und die Tunnelnetze sowohl mit /32 wie auch /24 probiert. Leider kein Erfolg.
Edit:
Ich kann aber z.b. noch immer eine Verbindung mit dem Wireguard Client auf meinen Handy zur OPN1 aufbauen. Das klappt.
@Patrick M. Hausen
Was für ein Eintrag müsste beim tcpdump kommen damit ich weiß, ob da was passiert?
tcpdump -n -i <wan-if> port 51821
Und dann gucken, ob Pakete in beide Richtungen fließen, was sie wahrscheinlich aus irgendeinem Grund nicht tun.
wg
ohne weitere Parameter gibt dir den aktuellen lokalen Status aus.
Stand Blödsinn
Wenn ich das laufen lasse kommt folgendes
Quote from: BeTZe313 on July 16, 2025, 02:45:37 PMtcpdump -n -i re1 port 51821
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
Wenn ich die Verbindung über meinen Handycleint aufbaue kommt unter anderem folgendes:
Quote from: BeTZe313 on July 16, 2025, 02:45:37 PMtcpdump -n -i re1 port 51820
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on re1, link-type EN10MB (Ethernet), snapshot length 262144 bytes
14:59:51.530368 IP 00.234.51.228.51820 > 00.203.185.137.42517: UDP, length 148
14:59:54.441819 IP 00.203.185.137.56162 > 00.234.51.228.51820: UDP, length 148
14:59:54.442221 IP 00.234.51.228.51820 > 00.203.185.137.56162: UDP, length 92
14:59:54.485865 IP 00.203.185.137.56162 > 00.234.51.228.51820: UDP, length 96
14:59:54.485891 IP 00.234.51.228.51820 > 00.203.185.137.56162: UDP, length 32
14:59:54.491922 IP 00.203.185.137.56162 > 00.234.51.228.51820: UDP, length 96
usw.
Findest du mit
ifconfig
Ich habe folgende jetzt mit tcpdump laufen lassen
re1 - wan
wg0 - Handy Client
wg1 - OPN1 zu OPN2
Port 51820 - Handyclient
Port 51821 - OPN1 zu OPN2
re1
Da wird mir beim Verbindungsaufbau über den Handyclient auch mit dem Filter Port 51821 etwas angezeigt. Aber nichts bei Port 51820
wg0
Sobald ich den Client auf dem Handy aktiviere bekomme ich Einträge angezeigt
wg1
Da passiert nichts. Auch nicht, wenn ich Wireguard neu starte.
Ich würde mal folgendes tun:
1. Auf einem System in einem der beiden 192.168er Netze ein Dauer-Ping zu einem anderen System in dem Remote-Netz laufen lassen.
2. Auf einer Firewall WG durchstarten und gleichzeitig auf derselben Firewall mit tcpdump auf WAN gucken, ob da Pakete an die andere FW, Port 51821 geschickt werden.
Wenn nicht, ist dort lokal schon was kaputt. Was "sagt" denn "wg" ohne weitere Parameter?
3. Wenn da Pakete raus gehen, dann dasselbe nochmal aber auf der anderen Firewall gucken, ob Pakete eingehend zu sehen sind.
Wenn nicht, dann stimmt da mit dem Routing unterwegs oder mit der Ziel-IP was nicht.
Und Wireguard ist aktiv, ja? Und du hast nicht den Haken bei "Disable routes" gesetzt? Wie schon geschrieben, probier mal "wg" aus.
Quote from: Patrick M. Hausen on July 16, 2025, 01:36:44 PM@Bob.Dig muss nicht. Bei einer P2P-Verbindung ist es tatsächlich wurst. Wenn ich einen Stern habe, kann ich z.B. in der Zentrale überall /32 eintragen und in den Niederlassungen /24 - dann können die auch miteinander sprechen.
Danke, wieder was "gelernt".