Die Gründe für die Nutzung eines VPN
sind vielfältig, in der Regel geht es jedoch darum, die eigene Identität oder Herkunft zu verschleiern. Die Verwendung einer VPN-Verbindung ist in den meisten Fällen das erste Mittel der Wahl. Bei einer VPN-Verbindung zu einem VPN-Provider werden dessen Server quasi als Proxy-Server genutzt und die eigene Quell-IP-Adresse durch die des VPN-Servers ersetzt. Steht der VPN-Server nun z.B. in den USA, so kommt man beim Zielserver mit einer Absender-IP-Adresse aus den USA an und für den Betreiber des Zielservers sieht es so aus, als ob der Ursprung der Verbindung ebenfalls in den USA liegt.
Es gibt jedoch Fallen, in die man tappen kann und je nach Schutzbedarf der eigenen Identität sollte man sich dieser bewusst sein. Eine dieser Fallen ist zum Beispiel die IPv6
Adresse. Nicht alle VPN-Provider unterstützen IPv6 und wenn der eigene Zugangsprovider auch IPv6 anbietet und das eigene Hostsystem IPv6 Pakete generiert, werden diese unmaskiert, also nicht verschleiert, an den Zielserver gesendet. Wenn nun Ihr VPN mit einer verschleierten IPv4-Adresse vorgibt, aus den USA zu kommen, verrät Ihre IPv6-Adresse Ihre wahre Herkunft.
Das folgende Beispiel zeigt eine VPN-Verbindung zu einem Server in den USA, wobei der VPN-Provider nur IPv4
unterstützt:
$ curl -4 https://ifconfig.co
102.129.252.188
$ curl -6 https://ifconfig.co
2003:d6:2f44:a300:abcd:1234:5678:9abc
Durch eine whois-Abfrage wird die hier diskutierte Problematik bestätigt:
$ whois 102.129.252.188 | grep country
country: US
$ whois 2003:d6:2f44:a300:abcd:1234:5678:9abc | grep country
country: DE
IPv6 deaktivieren
Im obigen Beispiel wäre Ihre wahre Herkunft über die IPv6-Adresse bekannt geworden und die Verbindung könnte bis zu Ihrem Anschluss zurückverfolgt werden. Institutionen mit entsprechenden Ressourcen könnten so Ihre Verbindungsdaten und damit Ihre wahre Identität ermitteln. Eine Möglichkeit, dies zu verhindern, ist das Deaktivieren von IPv6 im Hostsystem. Mit dem Kommando sysctl
kann der Kernelparameter net.ipv6.conf.all.disable_ipv6
zur Laufzeit geändert werden (1 entspricht deaktiviert; 0 entspricht aktiviert):
$ sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.all.disable_ipv6 = 1
Dies bedeutet, dass das Hostsystem auf IPv4 als Übertragungsprotokoll beschränkt ist und keine IPv6-Pakete an das Zielsystem gesendet werden:
$ curl -6 https://ifconfig.co
curl: (7) Failed to connect to ifconfig.co port 443 after 191 ms: Couldn't connect to server
Kernelparameter können auch in der Konfigurationsdatei /etc/sysctl.conf
gesetzt werden. Fügen Sie die folgenden Zeilen am Ende der Datei ein:
net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1 net.ipv6.conf.lo.disable_ipv6 = 1
Dies deaktiviert IPv6 an allen Netzwerkschnittstellen. Dies gilt sowohl für bereits vorhandene als auch für neu hinzugefügte Interfaces sowie für das Loopback-Interface. Ein Neustart des Systems ist nicht notwendig. Übernehmen Sie die Änderungen mit dem folgenden Befehl:
$ sudo sysctl -p