CGNAT mit OPNsense ohne Fritzbox

Hallo zusammen,

nach den Videos https://www.youtube.com/watch?v=ZDWhFmMLSMM&t=772s und https://www.youtube.com/watch?v=svlYp85cnjs&t=2s. Habe ich immer noch irgendwie das Problem, dass ich entweder keine Fritzbox habe (und diese auch nicht will) oder das Verständnisproblem in der OPNsense habe bzw. in Unraid mit einem Docker Wireguard-client nicht so recht mein Glück finde. Es scheitert schon am VPS mit wireguard-ui.
Daher meine Frage: Beim Video von aibix0001 hätte ich alles „mundgerecht“ serviert, wie kann ich allerdings den Teil mit der Fritzbox umgehen?

Und warum ich hier nicht die Hetzner-Goldrandlösung nehme, weil mir 50€/p. a. einfach zu viel sind. Der IONOS-Server tuts ja scheinbar auch?!

Hallo! Genau am demselben (bzw. ein sehr ähnliches) Setup versuche ich mich auch.

Ich habe einen kleinen VPS gemietet, auf welchem ich OPNsense installiert habe, welcher natürlich nur ein WAN Interface mit der Public IPv4 hat.
In meinem Homelab, in welchem ich leider hinter einem CGNAT sitze, habe ich ebenfalls eine OPNsense als VM aufgesetzt mit dem WAN Interface im LAN, welche hinter meinem Router mit einer Public IPv4 Adresse liegt.

Mittlerweile läuft mein Vaultwarden über Dynamic DNS und IPv6. Aus welchem Grund auch immer :slight_smile: Was mir allerdings immer noch fehlt ist der Zugang via VPN. Hätte ich hier ggf. ebenfalls die Möglichkeit den Zugriff über Dynamic DNS (IPv6) auf die IP der OPNsense zu verweisen? Falls ja, wie wäre die OPNsense zu konfigurieren, damit ein Zugriff von außen auf mein Heimnetzwerk möglich wird?

Hallo zusammen,

ich habe es endlich geschafft, einen Tunnel zum Laufen zu bekommen. Allerdings will die Wireguard-Verbindung nicht, wenn ich mich z. B. mit dem Handy aufschalten will. Hier meine Config auf dem VPS:

[Interface]
PrivateKey = PrivateKey
Address = 10.0.0.1/24
SaveConfig = true
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens6 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ens6 -j MASQUERADE
ListenPort = Port

[Peer]
PublicKey = PublicKey
AllowedIPs = 10.0.0.3/32, 192.168.178.0/24
PersistentKeepalive = 25

[Peer]
PublicKey = PublicKey
AllowedIPs = 10.0.0.4/32
PersistentKeepalive = 25

[Peer]
PublicKey = PublicKey
AllowedIPs = 10.0.0.5/32
PersistentKeepalive = 25

[Peer]
PublicKey = PublicKey
AllowedIPs = 10.0.0.6/24
PersistentKeepalive = 25

[Peer]
PublicKey = PublicKey
AllowedIPs = 10.0.0.7/24
PersistentKeepalive = 25

Wie gesagt, funktioniert das Forwarding ohne Probleme, allerdings kann z. B. das Handy oder das Tablet zwar zum Tunnel connecten, bekommt aber keinen Zugriff auf lokale IP’s. Was ist falsch oder müsste ich an der Maskierung ggf. noch ändern? Hier die Peer-Config:

[Interface]
PrivateKey = PrivateKey
Address = 10.0.0.4/24

[Peer]
PublicKey = PublicKey
Endpoint = IP des VPS:Port
AllowedIPs = 10.0.0.0/24
PersistentKeepalive = 25

Moin, in welchem Netz sind denn die lokalen IPs?

Aber ich verstehe auch noch nicht so ganz, du hast einen VPS mit OPNSense? Und eine VM mit OPNsense bei dir zu Hause? Und CGNAT?

Sorry für die Verwirrung oben. Die OPNsense läuft nur lokal hinter meinem Dt. Glasfaser-Anschluss.
Auf dem VPS läuft WireGuard und NGINX. Auf diesen WireGuard-Server möchte ich mich nun mit Tablet, Handy etc. auf diesen connecten und eine Verbindung ins Heimnetz herstellen. Der lokale Adressbereich ist 192.168.178.0, was über den Tunnel bereits funktioniert, da eine Seite bereits nach außen gebracht wird.

Und natürlich CGNAT :wink:

Also der VPS hat eine Wireguard-VPN-Verbindung zu deiner OPNsense?

Nein, der WireGuard-Server hat eine Verbindung zu einem Docker-Container in welchem ebenfalls WireGuard (als Peer) läuft. Dieser eröffnet den Zugriff auf das lokale Netzwerk.

Das würde ich schonmal auf die OPNsense umschalten, wenn du die schon hast. Das ist deutlich unkomplizierter. Oder geht es dir um einfache Config-Build-Geschichten?

Genau, es geht mir vorrangig um das Config-Build. Damit ich über den gleichen Server mit mehreren Clients in das lokale Netzwerk komme.
Alternativ ist mir die Idee gekommen, den Tunnel zu nutzen und auf den OPNsense-WireGuard-Server zu routen. Quasi WG im WG. Weiß aber nicht, ob das geht?!

Dann würde ich lieber die Clients zum VPS verbinden lassen (auch wegen statischer IPv4) und dann weiterrouten…
Was du ja auch versuchst oder?

Und die WG-Config von zu Hause wäre auch nicht schlecht zu haben.
Sieht es in etwa so aus:

Du bist echt klasse. Ja so sieht’s quasi gerade aus. Wobei das lokale Netz mit 192.168.178.0 unterwegs ist.
Ich kenne mich auch nicht unbedingt mit den /24er oder /32er Maskierungen aus und weiß daher nicht, wie die wg0.conf auf dem Server zu konfigurieren wäre.

Aber willst du es lernen? Ich bin nämlich kein Freund davon, einfach jemandem alles an Config zu geben und dann hat er am Ende trotzdem nichts verstanden :grimacing:

Aber da du bei dem Docker zu Hause ja gar keine Config exportieren musst, sondern nur auf dem VPS, würde ich da trotzdem umschalten auf die OPNsense

Bist du auch auf Discord? Weil ich denker, wir müssen das mal mit Screenshare anschauen… Weil wir auch Tests machen müssen

Ich habe kein Problem damit, mir etwas zu erarbeiten, wobei ich natürlich lieber Zeit mit meinem kleinen Sohn verbringe. Aber um es eher dauerhaft einfacher zu haben, brauche ich einen Tunnel nach draußen.

Mein Verständnisproblem zum Umschalten auf die OPNsense ist einfach, dass es nach meinem Verständnis bei der OPNsense um einen WG-Server handelt und nicht um einen Client, wie ich ihn in Docker laufen habe. Daher schon mal das große Fragezeichen: Wie bekomme ich auf der OPNsense quasi eine Verbindung zum VPS? Das sind ja dann zwei Server?! Oder wie richte ich dort einen Peer ein?
Andersherum: Wenn die OPNsense der WG-Server ist, wie komme ich dann an ein Routing auf die Sense? Bzw. wie bekomme ich dann externen Zugriff auf lokale Webserver?

Bei Discord bin ich eher nicht. Könnte dir hier Feedback geben. Wäre für mich auch zeitlich flexibler. —> Familie

Dann hast du falsche Informationen, es gibt bei WG nicht wirklich Server und Client, du kannst mit der OPNsense genauso einen Tunnel woanders hin aufbauen. („Client“)

Ich meinte bei DC auch nicht, um das hier zu ersetzen, aber ich denke wir werden nicht drum herum kommen, einmal das per Screenshare uns anzuschauen