DNAT über 2 OPNsense mit Wireguard

Started by Ronnor, February 08, 2025, 06:39:10 PM

Previous topic - Next topic
Hallo liebe Community,

ich habe eine Frage zum Setup mit Wireguard. Folgendes Szenario:
Ich habe zu Hause eine OPNsense hinter einem Glasfaser Anschluss mit Carrier-grade NAT.
Nun habe ich auf einem VPS eine weitere OPNsense installiert. Dort habe ich eine feste IP. Im Anschluss habe ich beide OPNsense mit Wireguard gekoppelt und entsprechend Firewall Regeln und Wireguard Konfiguration angelegt. So kann ich problemlos auf das LAN der "OPNsense VPS" zugreifen und diese auch verwalten.
Bis hierhin ist alles nahe am Guide und funktioniert einwandfrei.

Nun soll der Minecraft Server der Kinder, welcher im Netz der OPNsense home läuft aus dem Netz verfügbar sein, also habe ich eine NAT Regel samt Firewall Regel auf der "OPNsense VPS" angelegt:
                        Source                Destination
Interface     Proto     Address     Ports     Address        Ports         IP            Ports          Description
WAN           TCP       *           *         152.53.84.xxx  25560 - 25570 192.168.0.10  25560 - 25570 DNAT Minecraft


Der interessante Teil ist hier ist die Peer Konfiguration auf der OPNsense home:

Was trage ich sinnvollerweise in die "allowed IPs" ein ?
Aktuell steht dort: 10.2.2.1/32 172.16.0.0/24

Die Quell IP der eingehenden Verbindungen kenn ich ja noch nicht. Hinzu kommt, wenn ich es recht gelesen habe, dass ausgehende Verbindung in den angegebenen Adressbereichen immer über die Wireguard Verbindung geht anstatt direkt ins WAN. Ich muss nun von Clients, die sich auf den Server verbinden wollen die Public IP in die allowed IP der Wireguard Konfig eintragen, damit die Verbindung über DNAT der OPNsense VPS, über die Wireguard Verbindung zum Minecraft Server im OPNsense home Netz funktioniert. Allerdings sind diese Adressen ja auch dynamisch. Ich könnte jetzt den Addressbreich vom Provider eintragen, aber irgendwie ist das auch eine Krücke...
Habe ich hier einen konzeptionellen Denkfehler gemacht ?

Ich habe die übrige Konfig mal weggelassen, da sie keine Probleme verursacht


                   .------------.WAN (152.53.84.xxx)                       WAN (CG-NAT).------------.
LAN 172.16.0.254/24| OPNsense   +-----------                                 ----------+ OPNsense   |LAN 192.168.0.254/24
           --------+ VPS        |                                                      | home       +---------
                   |            +------------------------------------------------------+            |
                   '------------'Wireguard 10.2.2.1/32            Wireguard 10.2.2.2/32'------------'
                                                                                 

Ich denke, dass ist kein unübliches Setup, aber ich habe dazu nichts groß im Netz gefunden.
Und nachdem ich bereits 3 Leute im HO sabotiert hatte, weil ich in der Peer Liste der lokalen OPNsense 0.0.0.0/0 eingetragen hatte (man lernt immer hinzu :D), dachte ich, frage ich mal die Profis :)

Vielen Dank schonmal


Hallo!

Quote from: Ronnor on February 08, 2025, 06:39:10 PMWas trage ich sinnvollerweise in die "allowed IPs" ein ?
Aktuell steht dort: 10.2.2.1/32 172.16.0.0/24
Wenn du die Quell IPs nicht eingrenzen kannst, musst du 0.0.0.0/0 eintragen.
Was oder wer dann wirklich rein darf, kannst du ja noch über Firewall-Regeln einschränken, bspw. Geo-Blocker.

Quote from: Ronnor on February 08, 2025, 06:39:10 PMHinzu kommt, wenn ich es recht gelesen habe, dass ausgehende Verbindung in den angegebenen Adressbereichen immer über die Wireguard Verbindung geht anstatt direkt ins WAN.
Wo hast du das gelesen? Das trifft auf Policy-based IPSec zu, bei Wireguard musst du aber schon den Traffic selbst routen.

Wenn du keinen Wert darauf legst die tatsächlich Quell-IP der Clients zu kennen, kannst du auch am VPS eine S-NAT-Regel, sofern das mit Minecraft vereinbar wäre. Dann bräuchte nur die VPN-IP der Gegenstelle erlaubt sein.
Ich kenne die Anforderungen nicht, aber so manche Spiele erfordern, dass der Quell-Port statisch ist, also nicht umgesetzt wird. In diesem Fall wäre mit S-NAT nur einen Spieler möglich.

Ohne S-NAT brauchst du wohl das breite Internet, also 0.0.0.0/0.

Zusätzlich musst du auf der OPNsense home der Wireguard Instanz ein Interface explizit zuweisen und es aktivieren, wenn das noch nicht gemacht ist. Anschließend musst du die Firewall Regeln von Wireguard dahin verschieben. Am Wireguard Tab darf keine Pass-Regel auf den weitergeleitet Traffic zutreffen!
Das braucht es, damit die Antwortpakete wieder zurück auf den VPS geroutet werden.

Grüße

Vielen Dank für die schnelle Antwort! Ich werde das mal ausprobieren