ferdrt
Goto Top

Wireguard VPN mit Fritzbox als Client und VM als Server

Hallo zusammen,

ich habe eine VM (Ubuntu 24.04) im Rechenzentrum stehen, die die feste IP 212.1.1.1 hat. Die VM soll als VPN-Server dienen. Zu dieser VM sollen sich mobile Clients verbinden. Zudem soll sich eine Fritzbox als Client zur VM verbinden. Die mobilen Clients sollen das hinter der Fritzbox stehende Netzwerk erreichen können. Das VPN soll über Wireguard eingerichtet werden.

Also in etwa so:
screenshot 2025-01-24 185830

Für die Fritzbox hatte ich jetzt diese Konfiguration:
[Interface]
PrivateKey = ...
Address = 10.0.0.2/24

[Peer]
PublicKey = ...
Endpoint = 212.1.1.1:51820
AllowedIPs = 10.0.0.1/32
PersistentKeepalive = 25

Die VM hat diese Konfiguration:
[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = ...

PostUp = iptables -A FORWARD -i wg0 -j ACCEPT
PostUp = iptables -t nat -A POSTROUTING -o ens6 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT
PostDown = iptables -t nat -D POSTROUTING -o ens6 -j MASQUERADE

[Peer]
PublicKey = ...
AllowedIPs = 10.0.0.2/32, 192.168.1.0/24
PersistentKeepalive = 25
Und das net.ipv4.ip_forward=1 ist auf der VM aktiviert. Die Konfiguration für den mobilen Client habe ich noch nicht geschrieben, da ich derzeit dabei bin, dass zunächst nur die VM auf das Netzwerk hinter der Fritzbox zugreifen kann.

Die Verbindung zwischen Fritzbox und VM steht erfolgreich. Von der VM kann ich über 10.0.0.2 die Fritzbox anpingen. Wenn ich aber schon die IP 192.168.1.1 nehme erhalte ich:
64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=20.6 ms (DIFFERENT ADDRESS!)
64 bytes from 10.0.0.2: icmp_seq=2 ttl=64 time=19.9 ms (DIFFERENT ADDRESS!)
64 bytes from 10.0.0.2: icmp_seq=3 ttl=64 time=19.9 ms (DIFFERENT ADDRESS!)
Das gleiche mit "Different Address" dann auch bei 192.168.1.2. mit curl kann ich das Webinterface der Fritzbox über 10.0.0.2 aufrufen, über 192.168.1.1 kommt keine Verbindung zustande.

Was muss ich noch einrichten, damit auf 192.168.6.0 von der VM zugegriffen werden kann?

Content-ID: 670952

Url: https://administrator.de/forum/wireguard-vpn-mit-fritzbox-als-client-und-vm-als-server-670952.html

Ausgedruckt am: 04.03.2025 um 07:03 Uhr

aqui
aqui 24.01.2025 aktualisiert um 21:38:18 Uhr
Goto Top
Bevor wir ins Eingemachte gehen, das entsprechende Tutorial hast du entsprechend aufmerksam gelesen und umgesetzt??
Merkzettel: VPN Installation mit Wireguard
Insbesondere den Abschnitt über die nicht Standard konforme AVM Implementation auf den Fritten?
Wireguard Besonderheiten mit Fritzbox beachten.
Für dein Setup gilt das dortige Szenario wo die Fritzbox als VPN Initiator (Client) arbeitet!

Nur so viel: Der leider immer und immer wiederkehrender Kardinalsfehler ist das überflüssige NAT/Masquerading im Tunnel!! Entferne diesen Unsinn unbedingt, denn daran scheitert dein Zugriff auf die VM! (Siehe dazu einen aktuellen Thread mit genau dem gleichen Drama. face-sad )
ferdrt
ferdrt 24.01.2025 aktualisiert um 21:38:09 Uhr
Goto Top
Ok, danke funktionierte nun von der VM zur Fritzbox. Auch der mobile Client funktioniert.
VM ist nun:
[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = ...
[Peer]
PublicKey = ...
AllowedIPs = 192.168.1.1/32, 192.168.1.0/24
PersistentKeepalive = 25

[Peer]
PublicKey = ...
AllowedIPs = 10.0.0.3/32, 10.0.0.0/24
Fritzbox:
[Interface]
PrivateKey = ...
Address = 192.168.1.1/24

[Peer]
PublicKey = ...
Endpoint = 212.1.1.1:51820
AllowedIPs = 10.0.0.0/24
PersistentKeepalive = 25
Mobiler Client:
[Interface]
PrivateKey = ...
Address = 10.0.0.3/24

[Peer]
PublicKey = ...
AllowedIPs = 10.0.0.1/32, 192.168.1.1/32, 192.168.1.0/24
Endpoint = 212.1.1.1:51820
PersistentKeepalive = 25

damit funktioniert es nun ganz gut. Natürlich larmarschig, weil es zu 192.168.1.0 keine direkte Verbindung ist, sondern über die VM geroutet wird. Das merkt man irgendwie schon. Gibt es da noch Einstellungen um die Latenz zu verringern?

Weitere Frage: Ich würde jetzt gerne noch das gesamte Internet vom mobilen Client über die Fritzbox routen wollen.
wie mache ich das am sinnvollsten?
aqui
aqui 24.01.2025, aktualisiert am 26.01.2025 um 11:20:00 Uhr
Goto Top
danke funktionierte nun von der VM zur Fritzbox
Glückwunsch, man muss es nur richtig machen! 👏👍
Natürlich larmarschig, weil es zu 192.168.1.0 keine direkte Verbindung ist, sondern über die VM geroutet wird.
Du meinst die Verbindung zur VM oder vom mobilen Client auf den Client im FB Netz?? 🤔
Unverständlich, denn das ist ja bei jedem beliebigen (Hardware) Router auch so.
Solange die Hypervisor Hard- und Software und die virtuelle Netzwerk Infrastruktur der VM bzw. des dortigen Hypervisors schneller ist als die langsamste Verbindung zum mobilem Client oder Fritzbox WAN kann es niemals an einer VM als WG Server liegen. Logisch, denn unter den o.a. Voraussetzungen ist das Paket Forwarding in der VM schneller als die Client Anbindungen.

In der IT ist zudem der Ausdruck "lahmar...ig" ("larm" ist sicher etwas anders?!) wie immer relativ. Sinnvoll und zielführend wäre gewesen du hättest, wie es ja Administratoren in der Regel auch machen, einmal mit dem Client und dem mobilen Client per iPerf3 den realen Durchsatz objektiv gemessen und den Output hier gepostet. Idealerweise dann auch vom mobilen Client zum FB Client.
Das wäre im Handumdrehen in 3 Minuten erledigt gewesen und hätte einen realistischen Überblick über die Durchsatzperformance von beiden Seiten auf die VM und auch direkt möglich gemacht.
Damit und mit den jeweiligen Bandbreiten der FB Seite und mobilem Client hätte man eine belastbare Aussage zum Durchsatz machen können.
Ich würde jetzt gerne noch das gesamte Internet vom mobilen Client über die Fritzbox routen wollen.
Warum hast du denn überhaupt die VM dazwischen?? 🤔
Ist der Grund ggf. ein DS-Lite / CG-NAT Anschluss der FB und die Nutzung eines Jumphosts??
Den gesamten Traffic (Redirect) sendest du bei WG immer mit einem Redirect Setup ("AllowedIPs=0.0.0.0/0") auf der Client Seite! (Siehe dazu im Tutorial das Kapitel "Redirect oder Split Tunneling")
Lesen und verstehen... face-wink
ferdrt
ferdrt 24.01.2025 um 22:18:19 Uhr
Goto Top
Zitat von @aqui:
Warum hast du denn überhaupt die VM dazwischen?? 🤔

Das frage ich mich selbst auch. Eigentlich habe ich nur keine Lust jeden Tag das VPN auf meinem Handy immer zu trennen und neu zu verbinden, weil der Fritzbox-Anschluss eine dynamische IP hat. Die VM hat halt eine feste und fällt preislich auch nicht ins Gewicht ...
Der bisherige Aufbau ist mir von Struktur her zudem zu kompliziert gewesen.
aqui
aqui 25.01.2025 um 08:51:23 Uhr
Goto Top
weil der Fritzbox-Anschluss eine dynamische IP hat.
Dynamische DNS Hostnamen wie myFritz, dnshome & Co. sind dir bekannt? 🤔
ferdrt
ferdrt 26.01.2025 aktualisiert um 13:53:27 Uhr
Goto Top
das ist mir bekannt, WireGuard bzw. der DNS Cache kommt damit nicht klar, da er noch die alte IP enthält, bis jedes Mal eine neue Verbindung manuell aufgebaut werden muss. So zumindest unter Android.
https://wiki.ubuntuusers.de/WireGuard/#Probleme-mit-der-dynamischen-IP
Ich werde den derzeitigen Aufbau mit der VM aber weiterverfolgen. Irgendwann lande ich wegen Glasfaser eh bei Dual Stack Lite.

ich habe jetzt nochmal weitergetestet. Von der Fritzbox kommt man jetzt aber auch in der 10.0.0.0/24 Netzwerk. Kann man Unterbinden, dass von Fritzbox aus Richtung VM Verbindungen aufgebaut werden? Das soll nur vom mobilen Client Richtung Fritzbox gehen, aber nicht anders rum.
aqui
aqui 26.01.2025 aktualisiert um 21:00:27 Uhr
Goto Top
WireGuard bzw. der DNS Cache kommt damit nicht klar, da er noch die alte IP enthält,
In der Beziehung hast du natürlich Recht. Das bekommst du derzeit nur mit einer Scriptlösung hin.
https://blog.netways.de/blog/2022/01/06/wireguard-mit-dynamischen-dns-na ...
Wenn du nicht partout auf Wireguard als VPN Protokoll fixiert bist wäre diesbezüglich ggf. eine IPsec Lösung die bessere Alternative, weil es diese Thematik dort so nicht gibt.
Das soll nur vom mobilen Client Richtung Fritzbox gehen, aber nicht anders rum.
Ja, das ist kinderleicht und sollte ein Administrator eigentlich wissen. face-wink
Du kannst das quick and dirty mit der statischen Route in der FB mit einer entsprechende Subnetz Maske limitieren. Statt der /24er Netzmaske die das gesamte Netz erlaubt trägst du dort dann eben eine /32er Hostmaske nur für den mobilen Client ein.
So geht aus dem FB Netz nur Traffic für den Client in den VPN Tunnel und aller anderer 10er Traffic landet im Routing Nirwana. 😉
Bedenke noch das das interne 10.0.0.0er VPN Netz keine besonders intelligente Wahl ist und über kurz oder lang zu Problemen führen wird. Warum das so ist erklärt das WG Tutorial im Kapitel der internen WG Adressierung. Wenn man es denn einmal liest...?!
aqui
aqui 31.01.2025 um 18:22:07 Uhr
Goto Top
Wenn es das denn nun war bitte deinen Thread dann auch als erledigt schliessen!
Wie kann ich einen Beitrag als gelöst markieren?