Neulich stellte ich fest, dass wenn ich mich unter Pop_OS (basierend auf Ubuntu 19.10) mit einem VPN verbinde, die Kommunikation neben dem VPN-Interface auch weiterhin über den normalen Adapter über IPv6 läuft.

Das ist natürlich nicht ideal, da bei privater Nutzung des VPNs unsere IP-Adresse geleakt wird und wir somit ohne jegliche Mühe zurückverfolgbar sind. Die beste Lösung wäre, die IPv6-Adresszuweisung komplett zu deaktivieren, bereits auf Kernelebene (durch Bearbeiten von GRUB), da ich IPv6 aber auch für andere Zwecke verwende, möchte ich es nur dann deaktivieren, wenn ich gerade mit dem VPN verbunden bin.

Dafür erstellen wir ein Script, das IPv6 automatisch abschaltet:

sudo vim /etc/network/if-up.d/disableipv6

Fügen wir Folgendes ein:

#!/bin/sh

if [ "$IFACE" = "tun0" ]; then
  sysctl -w net.ipv6.conf.all.disable_ipv6=1
  sysctl -w net.ipv6.conf.default.disable_ipv6=1
fi

Falls wir nicht den tun0-Adapter verwenden, ändern wir diesen im Script (z. B. auf tap0).

Danach machen wir das Script ausführbar:

sudo chmod +x /etc/network/if-up.d/disableipv6

Wenn wir damit fertig sind, erstellen wir das Gegenstück, das nach dem Trennen IPv6 wieder aktiviert:

sudo vim /etc/network/if-post-down.d/enableipv6

Und kopieren wir Folgendes hinein:

#!/bin/sh

sysctl -w net.ipv6.conf.all.disable_ipv6=0
sysctl -w net.ipv6.conf.default.disable_ipv6=0

Auch dieses machen wir ausführbar:

sudo chmod +x /etc/network/if-post-down.d/enableipv6

Danach testen wir, ob nach dem Verbinden und Trennen dem Netzwerk-Interface eine IPv6-Adresse zugewiesen ist, mit dem Befehl ‘ifconfig -a’.