IPv6 Privacy Extensions im Raspberry Pi aktivieren

Wenn man im Raspberry Pi IPv6 eingeschaltet hat, dann werden alle IPv6-Adresse aus der MAC-Adresse (Hardware-Adresse) gebildet. Leider ist die immer gleich, weshalb sich der betreffende Client bzw. Host anhand dieser Adresse identifizieren lässt. Aus Datenschutz-Gründen ist das ein Problem.
Deshalb gibt es mit Privacy Extensions für IPv6 eine Erweiterung, die die Privatsphäre schützt. Die ist aber nicht immer automatisch aktiv, wenn IPv6 eingeschaltet bzw. aktiviert wird.

Privacy Extensions ist natürlich nur relevant, wenn innerhalb des lokalen Netzwerks ein Router einen globalen Präfix verteilt. Ansonsten bleibt Privacy Extensions inaktiv auch wenn es in den Einstellungen aktiviert ist.

Aufgabe

  1. Aktivieren Sie Privacy Extensions.
  2. Prüfen Sie, ob die Datenschutz-Erweiterung aktiv ist.

Lösung 1

Zuerst öffnet man eine Konfigurationsdatei.

sudo nano /etc/sysctl.conf

Hier muss man folgenden Eintrag einsetzen:

# Enable IPv6 Privacy Extensions
net.ipv6.conf.default.use_tempaddr = 2
net.ipv6.conf.all.use_tempaddr = 2

Dieser Eintrag sorgt dafür, dass für "alle" Netzwerk-Schnittstellen Privacy Extensions aktiviert wird. Wenn man Privacy Extensions nicht für alle, sondern nur für ausgewählte Schnittstellen aktivieren will, dann ersetzt man "all" durch die Bezeichnung der Schnittstelle. Zum Beispiel "eth0" oder "wlan0".

Optional kann man noch festlegen, wie lange die temporären Adressen, die durch Privacy Extensions erzeugt wurden, gültig sein sollen (Wert in Sekunden). Sie wird aber nicht sofort verworfen, sondern eine neue temporäre Adresse erzeugt und für ausgehende Verbindungen verwendet. Die alte wird erst später endgültig verworfen, wenn eine Zeit lang kein Datenverkehr mehr auf dieser Adresse hereinkommt.

# Lifetime (86400 = 24 h)
net.ipv6.conf.all.temp_prefered_lft=86400

Anschließend speichern und schließen: Strg + O, Return, Strg + X.

Nach einem Neustart sollten die Privacy Extensions aktiv sein.

sudo reboot

Man sollte das auf alle Fälle prüfen!

ifconfig

Hier sollte das entsprechende Interface eine globale IPv6-Adresse haben. Wenn nicht, dass wird im lokalen Netzwerk kein Präfix verteilt oder der Raspberry Pi hat noch keinen bekommen. Hier muss man vielleicht ein bis zwei Minuten warten und es dann noch einmal versuchen.

Wenn der Raspberry Pi dann eine globale IPv6-Adresse bekommen hat, dann sollte zusätzlich eine weitere globale IPv6-Adresse vorhanden sein, die keine Spuren der MAC-Adresse aufweist. Wenn es diese Adresse nicht gibt, dann ist Privacy Extensions nicht aktiv geworden. Dann hat man jetzt echt ein Problem!

Lösung 2

Als erstes prüft man die vorhandenen Netzwerk-Schnittstellen. In der Regel arbeitet man mit "eth0" oder "wlan0". Hier schaut man nach der Einstellung von Privacy Extensions.

sudo cat < /proc/sys/net/ipv6/conf/eth0/use_tempaddr

Hier sollte die Kommandozeile "2" ausgeben. Wenn nicht, dann wurde die Default-Einstellung nicht übernommen. In diesem Fall muss man die Einstellung für jedes Interface separat machen.

Also noch mal die Konfigurationsdatei öffnen.

sudo nano /etc/sysctl.conf

Hier muss man folgenden Eintrag zusätzlich für "eth0" hinzufügen:

net.ipv6.conf.eth0.use_tempaddr = 2

Und falls ein WLAN-Interface genutzt wird auch für "wlan0":

net.ipv6.conf.wlan0.use_tempaddr = 2

Danach speichern und schließen: Strg + O, Return, Strg + X.

Und natürlich wie gewohnt, Reboot tut gut.

sudo reboot

Nach dem Neustart muss man wieder mit "ifconfig" prüfen. Wenn die Einstellungen übernommen wurden, dann gibt es zusätzlich eine globale temporäre IPv6-Adresse, die für ausgehende Verbindungen genutzt und regelmäßig geändert wird.

Lösung 3 (quick and dirty)

Wenn es auch jetzt noch nicht geklappt hat, dann hilft nur noch die Holzhammer-Methode. Es hilft, ist aber "schmutzig". Dazu öffnet man eine Konfigurationsdatei:

sudo nano /etc/rc.local

Hier trägt man vor "exit 0" folgende Zeile ein:

for IF in "/bin/ls /proc/sys/net/ipv6/conf/*/use_tempaddr" ; do echo 2 > $IF ; done

Danach speichern, schließen und rebooten.

Hinweis: Es kann verschiedene Gründe geben, warum Privacy Extensions trotz richtiger Konfiguration nicht aktiv ist. Privacy Extensions hat üblicherweise keinen Einfluss auf link-lokale Adressen, die mit "fe80" anfangen. Es wird auch dann nicht aktiv, wenn kein globaler Präfix im lokalen Netzwerk verteilt wird oder wenn man für die Netzwerk-Schnittstellen statische IPv6-Adressen konfiguriert hat.