Freetz: Verwendung von Wireguard

Fox.Mulder

Mitglied
Mitglied seit
21 Jan 2007
Beiträge
635
Punkte für Reaktionen
7
Punkte
18
Hallo,
ich möchte Wireguard verwenden, um um die Geolocation Sperre bestimmter Dienste zu überwinden. Dazu habe ich einen VPS, auf dem Wireguard läuft. Das Routing bestimmter Adressbereiche darüber funktioniert. Damit kann ich den VPS über den Tunnel bereits erreichen. Meine Routing Tabelle sieht folgendermaßen aus:
Code:
[email protected]:/etc/init.d# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         0.0.0.0         0.0.0.0         U         0 0          0 dsl
10.0.0.0        0.0.0.0         255.255.255.0   U         0 0          0 wg0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 lan
192.168.0.0     0.0.0.0         255.255.255.0   U         0 0          0 wg0
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 dsl
192.168.1.1     0.0.0.0         255.255.255.255 UH        0 0          0 dsl
192.168.180.1   0.0.0.0         255.255.255.255 UH        0 0          0 dsl
192.168.180.2   0.0.0.0         255.255.255.255 UH        0 0          0 dsl
192.168.188.0   0.0.0.0         255.255.255.0   U         0 0          0 lan
192.168.189.0   0.0.0.0         255.255.255.0   U         0 0          0 guest

Nun würde ich gerne den gesamten Traffic über den Tunnel leiten.

Ubuntu: Wireguard-Server-Konfiguration
Code:
[Interface]
PrivateKey = <Server:Private-Key>
ListenPort = 51820
Address = 192.168.0.2/24
PostUp   = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE

[Peer]
PublicKey = <Client:Public-Key>
AllowedIPs = 192.168.0.1/32, 192.168.188.0/24
Freetz: Wireguard-Client-Konfiguration
Code:
[Interface]
PrivateKey = <Client:Private-Key>
ListenPort = 51821
DNS = 8.8.8.8

[Peer]
PublicKey = <Server:Public-Key>
Endpoint = <Server:IP>:51820
AllowedIPs = 192.168.0.0/24, 10.0.0.0/24, 0.0.0.0/0
PersistentKeepalive = 21

Freetz: Start Wireguard
Code:
Saving wireguard/wireguard ... done.
Writing 4653 bytes to /var/flash/freetz ... done.
Stopping WireGuard ... done.
Starting WireGuard ... Line unrecognized: `DNS=8.8.8.8'
Configuration parsing error
done.
Der DNS Eintrag in der Konfiguration wird nicht unterstützt. Leider wird auch 0.0.0.0/0 beim Einrichten der Routen ignoriert. Was kann ich tun, um den Traffic komplett über den VPN Tunnel zu leiten?


Viele Grüße.
 
Zuletzt bearbeitet:

Whoopie

Aktives Mitglied
Mitglied seit
19 Okt 2004
Beiträge
863
Punkte für Reaktionen
9
Punkte
18
Entferne den Check in files/root/etc/init.d/rc.wireguard für 0.0.0.0/0.
 

Fox.Mulder

Mitglied
Mitglied seit
21 Jan 2007
Beiträge
635
Punkte für Reaktionen
7
Punkte
18
Wäre das nicht ein Problem, wenn es zwei Default Routen gibt? Ich habe es mit folgendem Anweisungen manuell getestet:

1. Hinzufügen einer Route zum VPN Server über DSL
Code:
ip route add xxx.xxx.xxx.xxx/32 dev dsl
2. Löschen der default Route über DSL und Hinzufügen der default Route über wg0
Code:
ip route del default dev dsl
ip route add default dev wg0
3. Google DNS Server in der Fritz!Box eingetragen: 8.8.8.8, 8.8.4.4

4. Zur Konfiguration von IPTABLES auf dem VPS habe ich die Anweisungen von folgendem Blog verwendet: https://www.ckn.io/blog/2017/11/14/wireguard-vpn-typical-setup/. Die DNS Konfiguration aus dem Blog für den VPS habe ich vorerst ignoriert.

Zum Testen habe ich den Befehl "tcpdump -i wg0" sowohl auf dem VPS als auch auf der Fritz!Box verwendet.

Damit funktioniert es nun über IPv4. IPv6 habe ich explizit deaktivert, da Netflix sonst nur die Deutschen Inhalte liefert. Ich habe auch festgestellt, dass die Verbindung direkt über DSL und nicht über den Tunnel läuft, wenn der DNS-Name zu einer IPv6 Adresse aufgelöst wird. Wie ich auch IPv6 über den Tunnel routen kann, muss ich noch herausfinden.
 
Zuletzt bearbeitet:

albundy118

Neuer User
Mitglied seit
23 Aug 2011
Beiträge
21
Punkte für Reaktionen
0
Punkte
1
Hallo,

ich denke auch der einzige Weg wäre wie von Fox.Mulder beschrieben. Man müsste erst eine Route auf den Tunnel-Endpunkt setzen, ggf auch auf DNS IPs, fasll diese nicht durch den Tunnel gehen sollen und dann könnte man die 0/0 überschreiben.


Gruß
 
Zuletzt bearbeitet:

albundy118

Neuer User
Mitglied seit
23 Aug 2011
Beiträge
21
Punkte für Reaktionen
0
Punkte
1
Ich bin irgendwie noch am überlegen ob es wirklich so gut ist die 0/0 vom DSL zu überschreiben bzw. zu löschen. Das bedeutet dass die Fritzbox ausschließlich mit dem VPN kommunizieren kann. Wie sieht es mit SIP aus? Da gibt es doch bestimmt noch andere Services die nicht mehr funktionieren. Auch wenn man DDNS nutzt und Portfreigaben angelegt hat, funktionieren diese auch nicht mehr.
 

Fox.Mulder

Mitglied
Mitglied seit
21 Jan 2007
Beiträge
635
Punkte für Reaktionen
7
Punkte
18
Gibt es irgendeine Möglichkeit, alle Daten eines speziellen Gerätes durch den Tunnel zu leiten?
 
Zuletzt bearbeitet:

albundy118

Neuer User
Mitglied seit
23 Aug 2011
Beiträge
21
Punkte für Reaktionen
0
Punkte
1
ich bin mir leider nicht so sicher in wie fern das mit der FritzBox geht. Das was du willst ist "source routing", also eine routing Entscheidung in der Fritzbox anhand der Source IP.
Die FritzBox bleibt weiterhin GW für dein Gerät im Netz. Eigentlich geht sowas mit "ip rule" aber das scheint auf der FritzBox nicht zu gehen.
Vielleicht haben wir hier im Forum noch ein Experten der dazu ein Idee hat.
 

Fox.Mulder

Mitglied
Mitglied seit
21 Jan 2007
Beiträge
635
Punkte für Reaktionen
7
Punkte
18
@albundy118

Danke für den Hinweis.

Source Based Routing funktioniert! Da ich nicht weiß, wo die Routing Tables auf der Fritz!Box definiert sind, verwende ich für die zusätzliche Routing Table die Nummer "2".

In folgendem Beispiel wird der Internet Traffic des Gerätes mit der IP 192.168.1.36 im IP Adressbereich der Fritz!Box (192.168.1.0/24) durch den Wireguard Tunnel geroutet.

1. Wireguard Konfiguration in der Fritz!Box (192.168.0.1: Tunnel IP der Fritz!Box, 192.168.0.2: Tunnel IP des Servers)
Code:
AllowedIPs = 192.168.0.0/24, 0.0.0.0/0

2. Definition der Routing Tabelle für das Gerät mit der IP 192.168.1.36:
Code:
ip rule add prio 200 from 192.168.1.36 table 2

3. Regeln für die Routing Tabelle "2"
Code:
ip ro add default via 192.168.0.1
ip ro add 192.168.1.0/24 dev lan

Leider scheint danach der VPN Tunnel nach kurzer Zeit abzustürzen und lässt sich ohne Neustart der Fritzbox nicht mehr aktivieren.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: FunkReich

FunkReich

Neuer User
Mitglied seit
17 Feb 2019
Beiträge
90
Punkte für Reaktionen
6
Punkte
8
Hey, konntest Du inzwischen eine Lösung finden?

Als Alternative zum source Routing kam mir die Idee, das Gastnetz zu missbrauchen.

Angenommen der wireguard Tunnel steht stabil und man könne die Default Route des Gastnetz über wg0 leiten, würden alle Geräte, die man mit dem Gastnetz verbindet, getunnelt werden. Sodass z.b. den TV der unter geoblocking leidet, einfach mit dem Gastnetz verbindest. Ohne mit ips jonglieren zu müssen und DHCP in der Box könnte ebenfalls aktiv bleiben.

Man bräuchte lediglich eine Route für Zugriffe auf das Internet von Geräten im Gastnetz (IP-Netzwerk 192.168.189.0, Subnetzmaske 255.255.255.0) von der FRITZ!Box über das Tunnelinterface.


Ich nutze freetz, allerdings noch leider ohne das wireguard Modul. Sodass es nicht selbst testen konnte auf die schnelle.


Das Gastnetz wäre nur als workaround. Wäre ebenfalls an solidem source Routing interessiert.
Zb alles über >192.168.178.100 und DHCP Bereich auf 192.168.179.2 bis 192.168.179.99 festlegen.
Dann würden alle Geräte mit statischer festgelegter IP im Bereich 192.168.179.100- 192.168.179.253 sauber aufgeteilt Split Tunneln und wären noch untereinander erreichbar aus dem Lan, was beim gastnetzt nicht ginge.
 

Fox.Mulder

Mitglied
Mitglied seit
21 Jan 2007
Beiträge
635
Punkte für Reaktionen
7
Punkte
18
Hallo,
danke für den Hinweis. Eine Lösung habe ich noch nicht gefunden. Ich verwende Freetz-NG auf einer Fritzbox 7520. Wenn ich etwas Zeit finde, werde ich mich wieder mit dem Wireguard Routing beschäftigen. Im Moment arbeite ich an folgendem Thema: Freetz-NG: Fehler und Probleme.
 

Erhalten Sie 3CX für 1 Jahr kostenlos!

Gehostet, in Ihrer privaten Cloud oder on-Premise! Ganz ohne Haken. Geben Sie Ihren Namen und Ihre E-Mail an und los geht´s:

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.
oder via