Wireguard VPN für diverse Dienste + mobiler Direktzugriff

Hallo Leute,

nach dem Wechsel von DSL auf Glasfaser hat mich auch das DS-Lite Problem gebissen.

Mittlerweile laufen meine Dienste wieder die ich jetzt über einen Cloudserver mit Wireguard mit meinem internen Netz verbinde.

Dafür genutzt habe ich diese Anleitung:

Nun habe ich das Problem, dass ich noch einen direkten externen Zugang ins interne Netzwerk brauche. Dafür habe ich seither eine L2TP Verbindung zu meiner internen USG aufgebaut. Die USG (Unifi) unterstütz kein Wireguard. Aber da ich ja eh einen separaten Server (Pi4) für diese Lösung nutze, würde es sich ja anbieten das jetzt alles über diese VPN Verbindung abzubilden. Allerdings fehlt mir jetzt der Ansatz, wie ich das am geschicktesten mache.

Hier meine bisherige Konfiguration:
Server:

[Interface]
Address = 10.0.0.1/24
SaveConfig = true
PostUp = iptables -A INPUT -i ens6 -p tcp --dport 22 -j ACCEPT
PostUp = iptables -A INPUT -i ens6 -p udp --dport 51820 -j ACCEPT
PostUp = iptables -A INPUT -p icmp -j ACCEPT
PostUp = iptables -P INPUT DROP
PostUp = iptables -t nat -A PREROUTING -i ens6 -p tcp -m multiport --dport 80,443 -j DNAT --to-destination 192.168.1.53
PostUp = iptables -t nat -A POSTROUTING -o wg0 -p tcp -m multiport --dport 80,443 -d 192.168.1.53 -j SNAT --to-source 1>PostUp = iptables -P FORWARD DROP
PostUp = iptables -A FORWARD -i ens6 -o wg0 -p tcp -m multiport --dport 80,443 -j ACCEPT
PostUp = iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
PostDown = iptables -D INPUT -i ens6 -p tcp --dport 22 -j ACCEPT
PostDown = iptables -D INPUT -i ens6 -p udp --dport 51820 -j ACCEPT
PostDown = iptables -D INPUT -p icmp -j ACCEPT
PostDown = iptables -P INPUT ACCEPT
PostDown = iptables -t nat -D PREROUTING -i ens6 -p tcp -m multiport --dport 80,443 -j DNAT --to-destination 192.168.1.>PostDown = iptables -t nat -D POSTROUTING -o wg0 -p tcp -m multiport --dport 80,443 -d 192.168.1.53 -j SNAT --to-source>PostDown = iptables -P FORWARD ACCEPT
PostDown = iptables -D FORWARD -i ens6 -o wg0 -p tcp -m multiport --dport 80,443 -j ACCEPT
PostDown = iptables -D FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
ListenPort = 51820
PrivateKey = XXX

[Peer]
PublicKey = XXX
AllowedIPs = 10.0.0.0/24, 192.168.1.0/24
PersistentKeepalive = 25

Client:

[Interface]
Address = 10.0.0.3/24
SaveConfig = true
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING ->
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING>
PrivateKey = XXX

[Peer]
PublicKey = XXX
AllowedIPs = 0.0.0.0/0
Endpoint = XXX.XXX.XXX.XXX:51820
PersistentKeepalive = 25

Ich wäre super dankbar über etwas Input.

Bevor ich auf andere Sachen eingehe, das da ist falsch. UniFi kann mittlerweile sehr gut Wireguard. Hast ggf. ein paar Updates verpasst?

Also das normale USG (nicht dieses was du in diversen Videos vorgestellt hast) kann bei mir auch kein WireGuard. Und Updates sind nicht verfügbar

Ich würde erstmal die iptables-Regeln anders aufbauen, weil so sind die etwas unlogisch und unsicher. So erlaubst du nämlich immer, wenn du das WG-Interface down nimmst, alles auf den Server. Ich würde die INPUT-Regeln von dem Server an sich fest setzen ohne Abhängigkeit zu WireGuard.

Die POSTROUTING-Regel hab ich auch erst nicht verstanden, aber die sorgt dafür, dass der Traffic von der WG-IP kommt (auch wenn irgendwie ein Teil der IP fehlt) damit der WG-Client bei dir daheim nicht durcheinander kommt…
Da würde ich einfach Masquerade auf dem WG machen, ist deutlich einfacher.

Bei mir ist alles up-to-date

Das Ding hab ich auch, und das kann kein Wireguard.

Ich sag jetzt einfach mal tailscale, netbird, zerotier usw.?

War jetzt hier noch was zu helfen?

Also die Ursprüngliche Frage war ja, wie ich von externen Geräten in das interne Netzwerk komme. Die frage ist für mich noch offen. Wir hatten nur Über die Fähigkeiten der USG3 gesprochen. :frowning:

Das kann ich dir sagen, in dem du erstmal anfängst, deine IPtables-Regeln aufzuräumen

Der Client sieht so aus:

[Interface]
Address = 10.0.0.3/24
MTU = 1280
SaveConfig = true
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
PrivateKey = XXX

[Peer]
PublicKey = XXX
AllowedIPs = 0.0.0.0/0
Endpoint = XXX.XXX.XXX:51820
PersistentKeepalive = 25

Ja, aber die IPTables-Regeln auf dem Server sind nicht sonderlich logisch.

Ok, wenn ich das direkt in die iptables eintrage würde ich folgende Einträge machen:

# Standard-Policy: Blockiere alle eingehenden und weitergeleiteten Verbindungen
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# Port 22 für eingehende Verbindungen erlauben
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# Weiterleitung von Port 80 und 443 an 192.168.1.53
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.53:80
iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination 192.168.1.53:443

# Pakete für die Weiterleitung zu den Ports 80 und 443 zulassen
iptables -A FORWARD -p tcp -d 192.168.1.53 --dport 80 -j ACCEPT
iptables -A FORWARD -p tcp -d 192.168.1.53 --dport 443 -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

# NAT aktivieren, damit zurückgesendete Pakete korrekt funktionieren
iptables -t nat -A POSTROUTING -j MASQUERADE

Ich kenne mich mit iptables nicht wirklich aus, ich versuche gelesenes zu verstehen und so abzuwandeln, dass es für mich passt.

Das sieht jetzt schon besser aus, als das Gewusel in dem 1. Post