Split Tunneling in MacOS mit Fritzbox Wireguard

Im Laufe meines Projekt Heimnetzwerk wollte ich eine Lösung finden für das Problem des Zugangs zu der internen Infratruktur. VPN ist klar, aber die meisten VPN Anleitungen verpassen den Clients erst mal eine vollumfängliche Umleitung des gesamten Netzwerkverkehrs. Da die deutsche Leitung aber nicht zu hohen Uplinkraten tendiert verliert sich so die Perfomance für das restliche Internet, weil der Downlink des Clients davon direkt abhängt. Die Lösung dafür nennt sich Split Tunneling und bedeutet, dass das VPN nur für die Verbindung nach Hause genutzt wird, während alles andere direkt über den lokalen Router geschickt wird.

Die Lösung ist natürlich in erster Linie für vertrauenswürdige Netzwerk gedacht. In einem offenen WLAN sollte auch der Rest der Daten irgendwie geschützt werden. Vielleicht ein zweites VPN,  ob das geht steht hier vielleicht auch irgendwann mal.

Jetzt aber zur "einfachen" Einrichtung der ganzen Sache. Disclaimer: Erst mal steht hier fast das gleiche wie hier https://avm.de/service/wissensdatenbank/dok/FRITZ-Box-7590/3685_WireGuard-VPN-zur-FRITZ-Box-am-Computer-einrichten/ und da steht sicher immer eine aktuellere Version.

Zuerst einmal, falls noch nicht geschehen, muss das Netzwerk zuhause mit einer anderen IP-Adresse arbeiten, da alle Fritzboxen mit dem Netzwerk 192.168.178.0/24 ausgeliefert werden und ein VPN ein eigenes Netzwerk mit anderen Adressen haben muss. Das kann unter Heimnetz > Netzwerk > Netzwerkeinstellungen > IPv4-Einstellungen gemacht werden. Am einfachsten ist es die 178 gegen was anderes auszutauschen und fertig. Wir benutzen im Beispiel die 10.

Aber Achtung! Das Ändern des Netzwerks macht eventuell extra Arbeit, je nachdem was da alles drin hängt und umkonfiguriert werden muss.

Was auch noch notwendig ist: Ein dynamischer DNS-Eintrag zu der externen IP-Adresse des Heimnetzwerks. Die wird vom Internetprovider vergeben und wechselt alle 24 Stunden. Es gibt dafür verschiedene Anbieter, unter anderem AVM selbst. Ich benutze einen Service den All-Inkl.com anbietet. Unter Heimnetz > Netzwerk > Netzwerkeinstellungen > DynDNS kann der Service eingerichtet werden.

Wenn das alles funktioniert, dann ab nach Heimnetz > Netzwerk > Netzwerkeinstellungen > VPN (Wireguard) und eine neue Verbindung einrichten, wie in der AVM Anleitung beschrieben. Nach Abschluss der Konfiguration gibt es dann eine Datei wg_tunnel.conf, die in etwa so aussieht:

[Interface]
PrivateKey = <Buchstabensuppe>
Address = 192.168.10.202/24
DNS = 192.168.10.1
DNS = fritz.box

[Peer]
PublicKey = <Buchstabensuppe>
PresharedKey = <Buchstabensuppe>
AllowedIPs = 192.168.174.0/24 0.0.0.0/0
Endpoint = <dyndns-domain>:53281
PersistentKeepalive = 25

Der entscheidende Wert hier ist AllowedIPs. Der sagt dem VPN-Client für welche Netzwerkanfragen das VPN benutzt werden soll. die 0.0.0.0/0 wird gelöscht bevor die Konfiguration in den VPN-Client auf dem Rechner importiert wird.

Im offiziellen Wireguard Client gibt es dazu noch eine Einstellung, die dafür sorgt, dass der Tunnel nur in fremden Netzwerken benutzt wird. In Wireguard dazu die VPN-Verbindung bearbeiten und bei On-Demand das eigene WLAN oder LAN als Ausnahme hinzufügen.