Wireguard - Zugriff mit IPv4 trotz Dual-Stack

Vito0912

Cadet 2nd Year
Registriert
März 2023
Beiträge
20
Hallo,
aktuell setze ich mich mit Wireguard und Fritzbox auseinander.
Da ich Deutsche Glasfaser Kunde bin, erhalte ich leider nur einen DS-Lite Anschluss.

Aktuell versuche ich eine RD-Verbindung herzustellen. (Mobilfunknetzt oder Netz außerhalb des Heimnetztes -> Heimnetz).
Dafür benutze ich im Moment einen Server bei x Anbieter über einen VPN/Internet, der sowohl eine public IPv4 als auch IPv6 hat. Dieser Mapped dann die Pakete mit 6tunnel. Diese Lösung funktioniert, ist aber nicht optimal - nach einem Neustart sind alle Verbindungen weg, manche Verbindungen löschen sich von selbst, wechselnde Ip-Adressen, etc.. (Theoretisch lässt sich das auch alles über shell Befehle autmatisieren, jedoch bevorzuge ich eine einfache kompakte Lösung)
Zudem muss dennoch der Port freigegeben werden (theoretisch kann man dann auch nur Verbindungen von x IP zulassen, aber dennoch nicht optimal).

Jetzt entdeckte ich Wireguard in der Fritzbox für mich (das Problem mit 6tunnel geht mir so langsam nämlich auf die Nerven).

Das Problem:
Durch den Dual-Stack Anschluss benötige ich eine IPv6 (ist ja in der Zeit auch kein Problem mehr,... denkt man)

-> Mein Mubilfunknetztanbieter O2 (o2-de) scheint damit große Probleme zu haben. Stelle ich den APN (oder wie auch immer) auf ausschließlich IPv6, habe ich an manchen Orten kein Internet mehr (trotz 5G). Warum, kann ich nicht sagen, ich kenne mich da nicht so gut aus. (Bei beiden aktiviert, wird beim Hotspot nur die IPv4 benutzt)
-> In meinem Uni-Netz gibt es auch nur Ipv4...

Beides ist also suboptimal.

Meine eigentliche Frage ist jetzt also, ob es die Möglichkeit gibt, Wireguard auch durch IPv4 eine Verbindung herzustellen, wenn man einen DS-Lite Anschluss hat (über 6tunnel funktioniert es scheinbar nicht)

Danke schonmal
 
  • Gefällt mir
Reaktionen: grünerbert und Drakrochma
Genau das habe ich auch versucht und bin gescheitert.
Ich drücke dir die Daumen dass irgend ein allwissenden dir hier weiter helfen kann.:)
 
Du kannst folgendes ausprobieren:

Verbinde die FritzBox über Wireguard und IPv6 (!) mit dem Server im Rechenzentrum. In der Konfig für die Fritzbox musst du den Parameter PersistentKeepalive = 60 setzen. Dies lässt die Fritzbox alle 60 Sekunden ein Paket an den Server senden, damit, für den Fall, dass sich die IP des Routers ändert, der Server automatisch über die neue IP informiert wird. Wenn dies passiert, sollte es so zu einem Ausfall von maximal einer Minute kommen.
Die Clients außerhalb deines Netzes verbinden sich über Wireguard und IPv4 oder IPv6 mit dem Server und haben als Peer-Netz neben dem VPN-Netz (z.B. 10.0.0.0/8) auch das Heim-Netz hinterlegt (z.B. 192.168.178.0/24).
Der Server kennt ebenso das Heim-Netz und dessen Netzwerk-Stack muss Routing aktiviert haben (sysctl -w net.ipv4.ip_forward=1). Ggf. stört noch die Firewall des Servers.

Wenn ich mich nicht vertan habe, sollte dann eine stabile Verbindung von außen auf dein Heim-Netz möglich sein.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Vito0912
Ich lasse bei DSLite Anschlüssen die Fritzbox die Verbindung nach außen aufbauen und kann dann über den Tunnel ins Netz der Fritzbox. Ich habe dabei noch nie aufgepasst obs IPv4 oder 6 ist.

Die 6660 in einem DSLite Pyur Netz verbindet sich beispielweise mit einer 7560 bei einem 1und1 DSL Anschluß.
 
@xammu Das sollte im Normalfall auch funktionieren. Nur wird im IPv4-Falle alles über das NAT-Gateway des Providers geschleust und ich weiß, dass es bei Vodafone-Kabel zu Problemen mit der MTU kommt. Die Verbindung fest per IPv6 zu machen, schließt somit ein paar Fehlerquellen aus.
 
Vito0912 schrieb:
Meine eigentliche Frage ist jetzt also, ob es die Möglichkeit gibt, Wireguard auch durch IPv4 eine Verbindung herzustellen, wenn man einen DS-Lite Anschluss hat (über 6tunnel funktioniert es scheinbar nicht)
Die Frage ist, was genau heißt das? Die Frage lässt Interpretationsspielraum.

Wenn du den VPN Tunnel vom Handy zur Fritzbox aufbauen willst, dann musst du IPv6 nutzen, denn nur für IPv6 hast du eine öffentliche IP. Die IPv4 ist CGNAT, dahin kannst du von außen keine Verbindung aufbauen. Bei O2 ist das eigentlich kein Problem, bei mir funktioniert das sehr gut. Am Uni Netz bist du damit aber raus.

Aber du hast ja schon einen VPS. Also bau doch zwischen der Fritzbox und dem VPS einen Wireguard Tunnel auf. Das sollte über IPv6 gar kein Problem sein, und über IPv4 geht es in der Richtung Fritz->VPS auch (den Tunnel an sich kannst du dann natürlich auch bidirektional nutzen). Wenn du dann vom Handy auch einen Tunnel zum VPS aufbaust (IPv4 oder IPv6 ist egal), kannst du ins Heimnetz, mit dem Zwischenhop VPS (aber den nutzt du mit 6tunnel ja auch schon). Hätte dann sogar den Vorteil, dass du RDP nicht direkt als Portweiterleitung ins Internet hängen musst, was bei RDP eine Katastrophe ist (300 ungeschlossene Sicherheitslücken, die eine sofortige Übernahme des Hosts erlauben ohne Benutzerdaten).

So betreibe ich das schon lange: Zwei Heimnetze (meins und das meiner Mutter) verbinden sich dauerhaft mit dem VPS, und mobile Clients bauen bei Bedarf einen Tunnel zum VPS auf und haben dann vollen Zugriff in die Heimnetze. Geht mit Wireguard über IPv4 und IPv6 hervorragend, über den Tunnel läuft dann IPv4 in die jeweiligen Heimnetze. Da ginge zwar auch IPv6, bietet aber aktuell keinen Mehrwert.
 
  • Gefällt mir
Reaktionen: grünerbert
Ack der III schrieb:
Verbinde die FritzBox über Wireguard und IPv6 (!) mit dem Server im Rechenzentrum
riversource schrieb:
Also bau doch zwischen der Fritzbox und dem VPS einen Wireguard Tunnel auf.

Kann da jemand ein Tutorial empfhelen. Ich bin gerade etwas an Verzweifeln. Am besten wäre es, wenn es direkt über die Fritzbox geht (die neue Wireguard"-Funktion"). Als Server-OS benuitze ich Linux mit Ubuntu 20.x
 
Hier eine kurze Anleitung (habe ich nicht getestet, kann also Fehler enthalten):

Als Szenario soll folgendes gegeben sein:
  • Ein Heimnetz (192.168.178.0/24) mit einer Fritzbox, welche per DS-Lite ins Internet kommt.
  • Ein Server bei einem Hostinganbieter mit IPv4- und IPv6-Adressen.
  • Ein Laptop, der aus dem Internet über den Server ins Heimnetz gelangen soll.
  • Als VPN-Netz soll 10.0.0.0/8 verwendet werden
In Wireguard werden die verschiedenen Endgeräte (Peers) mittels Schlüsselpaar identifiziert. Jedes Schlüsselpaar besteht aus einem privaten und einem öffentlichen Schlüssel. Einen privaten Schlüssel kann man so erstellen:
Code:
wg genkey > key.private
Aus einem privaten Schlüssel lässt sich ein öffentlicher Schlüssel wie folgt berechnen:
Code:
wg pubkey < key.private > key.public
Für Fritzbox, Server und Laptop muss auf diese Weise jeweils ein Schlüsselpaar erstellt werden.

Als erstes wird die Konfiguration auf dem Server eingerichtet. Dafür muss zuerst Routing aktiviert werden:
Code:
sysctl -w net.ipv4.ip_forward=1
Um diesen Befehl beim Boot ausführen zu lassen, muss net.ipv4.ip_forward=1 ans Ende der Datei /etc/sysctl.conf eingetragen werden. Dann folgt die Wireguard-Config in /etc/wireguard/wg0.conf:
Code:
[Interface]
PrivateKey = Privater Schlüssel des Servers
ListenPort = 51820
Address = 10.0.0.1/8

[Peer]
PublicKey = Öffentlicher Schlüssel der Fritzbox
AllowedIPs = 10.0.0.2/32,192.168.178.0/24

[Peer]
PublicKey = Öffentlicher Schlüssel des Laptops
AllowedIPs = 10.0.0.3/32
Auf dem Server lässt sich dann Wireguard mit folgendem Befehl starten:
Code:
systemctl enable --now wg-quick@wg0.service
Ob alles geklappt hat, kann man mit folgendem Befehl prüfen:
Code:
wg
Dies sollte eine Auflistung des Interfaces und der Peers zur Folge haben.

Weiter mit der Wireguard-Config des Laptops:
Code:
[Interface]
PrivateKey = Privater Schlüssel des Laptops
Address = 10.0.0.3/8

[Peer]
PublicKey = Öffentlicher Schlüssel des Servers
AllowedIPs = 10.0.0.0/8,192.168.178.0/24
Endpoint = Adresse des Servers:51820
Nach dem Start von Wireguard auf dem Laptop, versuchen von diesem den Server anzupingen:
Code:
ping 10.0.0.1

Zuletzt die Wireguard-Config der Fritzbox (hier muss die Konfig irgendwo hochgeladen werden können):
Code:
[Interface]
PrivateKey = Privater Schlüssel der Fritzbox
Address = 10.0.0.2/8

[Peer]
PublicKey = Öffentlicher Schlüssel des Servers
AllowedIPs = 10.0.0.0/8
Endpoint = [IPv6 des Servers]:51820
PersistentKeepalive = 60
Nach dem Aktivieren eine Minute warten, bis auf dem Server unter wg ein Handshake mit der Fritzbox angezeigt wird. Anschließend sollte vom Laptop aus die Fritzbox (10.0.0.2) über das VPN anpingbar sein und damit auch das gesamte Heim-Netz. Gegebenenfalls stören noch Firewalleinstellungen auf dem Server, aber damit sollte alles eingerichtet sein.
 
Zuletzt bearbeitet:
Das funktioniert leider nicht mit Fritzboxen, da sie kein dediziertes Transportnetz für VPN nutzen, sondern ihr lokales Netz mit Proxyarp. Die Box direkt mit einem VPS zu verbinden und das lokale Subnetz darüber zu routen dürfte nahezu unmöglich sein, wobei ich es noch nicht wirklich getestet habe. Aber da müsste man definitiv noch ne Lage Hirnschmalz reinstecken, bevor das läuft.
 
Vielen Dank für die Hilfe. Mein Fehler war es, die IPv4 in der FritzBox einzutragen.
Für alle die es auch versuchen sollten:
Die FritzBox hat schon einen PrivatenKey. Ihr müsst von diesem den PublicKey generieren.

Ack der III schrieb:
Anschließend sollte vom Laptop aus die Fritzbox (10.0.0.2) über das VPN anpingbar sein und damit auch das gesamte Heim-Netz. Gegebenenfalls stören noch Firewalleinstellungen auf dem Server, aber damit sollte alles eingerichtet sein.
Nun habe ich jedoch folgendes Problem.
Im Heimnetz:
Aufruf einer Webseite (10.9.243.1:port) ist möglich.

Im VPN also verbunden mit 10.9.243.3:
Aufruf einer Webseite (192.168.178.41:port) ist NICHT möglich

Anpingbar ist die IP vom host (Linux Server) jedoch. (Die Webseite aufrufen mit wget lässt die SSH verbindung crashen bzw. timeouten)
Vom Windows Rechner bekomme ich nur "Allgemeiner Fehler"
Edit:
Hatte vergessen die Adresse hinzuzufügen (beim WIndows Rechner) jetzt dort Zeitüberschreitung.

Muss ich irgendwas in der Firewall einstellen? (Fritzbox oder VPS)?
 
Bezüglich Firewalleinstellungen auf dem Server: Was sagt der folgende Befehl?
Code:
iptables -L
Die Fritzbox kann evt. auch Firewalleinstellungen haben bzw. benötigen.
 
Vito0912 schrieb:
Im Heimnetz:
Aufruf einer Webseite (10.9.243.1:port) ist möglich.

Im VPN also verbunden mit 10.9.243.3:
Aufruf einer Webseite (192.168.178.41:port) ist NICHT möglich
Ich verstehe nicht im Entferntesten, wie deine IP Konfiguration aussieht. Wo ist das 178er Netz? Und wo das 10.9er Netz? Ist 10.9.243.3 die Adresse des VPN Clients?

Bedenke: Die Box macht kein NAT. Das musst du berücksichtigen beim Setup der Routen.
 
Ack der III schrieb:
Was sagt der folgende Befehl?
Code:
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     udp  --  anywhere             anywhere             udp dpt:9999 (Port verfremdet) /* wireguard-input-rule */
ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain /* pihole-DNS-rule */

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
Wichtig vielleicht noch:
Ich habe noch eine Firewall vom VPS Betreiber...

riversource schrieb:
Wo ist das 178er Netz?
Das 178. (192.168.178.0/24) ist das Heimnetz meiner Fritzbox. d.h. damit wo ich zuhause verbunden bin.

riversource schrieb:
Ist 10.9.243.3 die Adresse des VPN Clients?
Ja, der Bereich 10.9.243.0/24 ist dem VPN zugeordnet (243.2 ist ein anderes Gerät, .3 mein Windows Computer)

riversource schrieb:
Die Box macht kein NAT.
Ich kenne mich im Netzwerk Sektor nicht wikrlich aus und habe mir das VPN geshehen nur aus Videos und Artikeln selber erklärt. Ich weiß leider nichts mit dieser Informatio anzufangen



Ich entschuldige die späte Antwort. Hatte kurzzeitig mein Netz lahmgelegt ^^
 
Die Firewall des Servers steht auf policy ACCEPT. Das bedeutet, dass alles durchgelassen wird. Am Server liegt es also nicht.

Edit: Kannst du den 10.9.243.3 außerhalb deines Heim-Netzes probieren?
 
Zuletzt bearbeitet:
Ack der III schrieb:
Die Firewall des Servers steht auf policy ACCEPT. Das bedeutet, dass alles durchgelassen wird. Am Server liegt es also nicht.
Der geöffnete Port ist jener, der öffentlich ist. Vielleicht muss der Port zu der Fritzbox geöfnnet werden?

Internet -> Port 9999 -> VPN IN -> Port 5555 FirtzBox (der Port ist der der unter der Firzbox bei ListenPort unter WIreguard angezeigt wird)
 
Ack der III schrieb:
Kannst du den 10.9.243.3 außerhalb deines Heim-Netzes probieren?
Ich habe den Edit erst jetzt gesehen. Was meinst du denn genau?
10.9.243.3 ist mein Computer im VPN Netzwerk. (Die Verbindung von einem anderem Client im VPN-Netzwerk nach 10.9.243.3 funktioniert auch (auch außerhalb des Heimnetzes))
10.9.243.3 ist auch aus dem Heimnetz erreichbar. (Ist aber unnötig, weil Heimnetz -> VPN -> Computer im Heimnetz)

Vielleicht meinst du 10.9.243.5 (die FritzBox). Diese ist auch erreichbar (wenn man mit dem VPN verbunden ist). Also das Interface - einloggen klappt auch.
Nur alle anderen Adressen sind nicht erreichbar (hab bei allen AllowedIPs = 192.168.178.0/24 hinzugefügt
 
Alle anderen IP-Adressen des Heimnetztes (192.168.178.44, 192.168.178.2, ...) sind nicht erreichbar. (nur die FritzBox ist erreichbar [192.168.178.1]). Öffentlich etc. Domains/IPs schon. Hatte das etwas blöd definiert.

Die AllowedIPs unter den jeweiligen Configs der Clients. Sollte zwar sowieso kein Unterschied machen, da ich 0.0.0.0/0 ebenfalls Eingetragen habe.
Die Einträge sind dafür da, damit der verbundene Client weiß, welche IP´s er über den VPN senden darf/bzw. soll.
 
Zurück
Oben