Freitag, 29. Mai 2020

IT-Fachartikel: Wireguard VPN mit Dual Tunnel IPv4 & IPv6

Da der Hausbau schon lange beendet ist und ich keinen zweiten Blog eröffnen will, werde ich hier nun bei Gelegenheit Fachartikel erstellen.

Seit Jahren verwende ich nun schon Wireguard VPN und bin begeistert.

Ich habe sehr lange versucht einen VPN Tunnel zu bauen der dual läuft, also per IPv4 & IPv6 erreichbar ist und auch im Tunnel beides überträgt. Letzteres habe ich lange nicht geschafft.

Diese Anleitung richtet sich an Wireguard Nutzer, die bereits einen IPv4 Tunnel betreiben und sich grundsätzlich auskennen mit Wireguard, Pi-Hole und Netzwerkeinstellungen.

Die erste Einrichtung habe ich damals nach dieser Anleitung durchgeführt:
Link Github / Link Github 2
Mit dem Script aus Link 2 kann man schnell viele Clienten anlegen inkl. QR-Codes, anstatt alle Schlüsselpaare manuell zu erstellen.

Ich verwende eine FritzBox welche jedem Netzwerkgerät neben der öffentlichen auch eine private IPv6 zuteilt, das muss man jedoch einstellen unter: Heimnetz - Netzwerk - Netzwerkeinstellungen - IPv6-Konfiguration:
gelber Kasten











(Als loker DNS Server trägt man später unten die IPv6 Adresse des Raspberry ein, um Pi-Hole für IPv4 & IPv6 zu nutzen.)

So bekommt jedes IPv6 fähige Netzwerkgerät mindestens 3 Adresse:
1. öffentlich, beginnt mit 2003: (bei der Telekom, Providerabhängig)
2. privat, beginnt mit fd00: (ich habe mich für den Prävix fd00:aaaa: entschieden)
3. link lokal, beginnt mit fe80: (wird sich immer selber von jedem Gerät zugewiesen)
Siehe auch Bereiche im Link: Erklärung

Als erstes öffnet man  /etc/dhcpcd.conf und stellt um auf eine feste, aus der MAC-Adresse generierte IPv6 (oberer Pfeil)













wenn man diese hat (neu starten, "ip a"), trägt man sie ein (unterer gelber Pfeil).

Die IPv4 Adresse habt ihr wahrscheinlich schon fest vergeben, wenn ihr Pi-Hole bereits nutzt, genauso wie Router & DNS. (DNS 127.0.0.1 bedeutet dass der Raspberry selber der DNS Server ist, das stellt PiHole bei der Konfiguration so ein).

Als nächstes kann man in /etc/sysctl.conf  IPv6 Forwarding aktivieren (langer gelber Pfeil), IPv4 Forwarding müsste schon aktiviert sein wenn man Wireguard mit IPv4 nutzt (kurzer gelber Pfeil):


 










Nun kann man die wg0.config anpassen indem man sie mit IPv6 Adressen bestückt & und die Firewall "iptables6" anpasst (alles gelb markiert):










Die IP Adressen für den Tunnel sind von mir frei gewählt aus dem privaten Bereich (192.168.99.x & fd08:x), wichtig ist, dass sie aus einem anderen Bereich sind als die Netze, die ihr miteinander verbindet (FritzBox klassisch 192.168.178.x & fd00:x)

Wireguard neu starten (sudo wg-quick down wg0 & sudo wg-quick up wg0) und schauen ob es keine Fehlermeldung gibt.

Abschließend die Portweiterleitung bzw. Öffnung (51820 UDP) in der FritzBox für IPv4 & IPv6 aktivieren, darauf achten dass die richtige IPv6 Interface-ID eingetragen ist ! 














Pi-Hole müsst ihr ggf. noch mal neu konfigurieren mit "pihole -r".
Als letztes die Konfig auf den Clienten anpassen, hier ein Beispiel:












 
Man kann zwei identische Profile anlegen*:
1. IPv4 - Endpunkt z.B. xy.myfritz.net (man wird per IPv4 verbunden)
2. IPv6 - Endpunkt  z.B. xy.dynv6.net (man wird per IPv6 verbunden)
Die restliche Konfig bleibt gleich.
Man kann so z.B. in einem reinen IPv4 Netz (wie im Moment bei O2) durch den Wireguard Tunnel das Internet per IPv4 und IPv6 benutzen inkl. Pi-Hole.

* gilt natürlich nur wenn man Zuhause eine echte IPv4 Adresse bekommt

-------------------------------------------------------------------------------------------

Man kann verschiedene Clienten Profile anlegen und diese anschließend als QR-Code bereit stellen zum schnellen abscannen per Handy/Tablet.
1. Profile manuell in Ordnern anlegen z.B. in Dokumente/Profil/profil.config
2.  "sudo apt-get install qrencode"
3. z.B. cd /home/pi/Documents/Handy1
4. qrencode -t ansiutf8 < handy1_IPv4.conf   => QR Code wird in der Konsole angezeigt (zum testen)
5. qrencode -o IPv4.png < handy1_IPv4.conf => QR Code wird als .png gespeichert


1 Kommentar: