Ceci est résolu par deux extensions IPv6:
- La RFC 4941, également appelée " Adresse de confidentialité", permet aux connexions sortantes d'utiliser des adresses temporaires, générées aléatoirement (qui font l'objet d'une rotation toutes les quelques heures).
- La RFC 7217 permet de générer l'adresse statique principale à partir d'un hachage opaque qui ne révèle aucune information.
Au moins une, mais de plus en plus les deux méthodes sont pris en charge par les systèmes d'exploitation.
Notez que ces fonctionnalités sont orthogonales. Vous pouvez utiliser les deux en même temps, si vous voulez.
Adresses privées stables
Dans certains systèmes d'exploitation, l'adresse MAC (EUI-48) n'est tout simplement plus utilisée pour les identificateurs d'interface. À la place, un identifiant aléatoire ou basé sur un hachage est utilisé, généralement conformément à la RFC 7217.
Windows utilise par défaut un modèle personnalisé commençant par Windows Vista.
Pour vérifier si la fonctionnalité est active, exécutez une commande PowerShell:
Get-NetIPv6Protocol | fl RandomizeIdentifiers
Pour activer / désactiver la fonctionnalité:
Set-NetIPv6Protocol -RandomizeIdentifiers Enabled
Set-NetIPv6Protocol -RandomizeIdentifiers Disabled
Linux (NetworkManager) prend en charge la RFC 7217 à partir de NetworkManager version 1.2.0, en utilisant l'identifiant UUID du profil de connexion dans la graine. Cette fonctionnalité est active par défaut dans les versions récentes de NM.
Pour activer ou désactiver cette fonctionnalité:
nmcli con modify "<profilename>" ipv6.addr-gen-mode stable-privacy
nmcli con modify "<profilename>" ipv6.addr-gen-mode eui64
Linux (noyau SLAAC) prend en charge la RFC 7217 à partir de la version 4.1.0 du noyau; cependant, il doit être activé manuellement en stockant la graine secrète via sysctl.
La clé secrète est une chaîne hexadécimale de 128 bits (en forme d'adresse IPv6), qui doit être stockée dans le net.ipv6.conf.default.stable_secret
sysctl. Pour le rendre persistant, il peut être inséré /etc/sysctl.d/50-rfc7217.conf
ou similaire:
net.ipv6.conf.default.stable_secret = 84a0:d5aa:52b0:4d35:k567:3aa6:7af5:474c
La définition du secret active automatiquement ce mode pour toutes les interfaces réseau. Pour vérifier si la fonctionnalité est active, recherchez "addrgenmode stable_secret" dans ip -d link
ou la valeur "2" dans sysctl net.ipv6.conf.<ifname>.addr_gen_mode
.
Adresses privées temporaires
Comme défini dans la RFC 4941, les adresses de confidentialité temporaires sont générées aléatoirement et pivotées toutes les quelques heures.
Windows prend en charge les adresses temporaires à partir de Windows XP SP2.
Pour activer / désactiver cette fonctionnalité:
netsh interface ipv6 set privacy state=enabled
netsh interface ipv6 set privacy state=disabled
Notez que Windows n'utilise plus les adresses principales basées sur les adresses MAC à partir de Windows Vista.
Linux (NetworkManager) : les versions récentes de NetworkManager gèrent l'autorité d'enregistrement de manière autonome, bien que les deux valeurs ci-dessous aient des significations identiques à celles de sysctl (2 = adresse préférentielle, 1 = adresse principale):
nmcli con modify <name> ipv6.ip6-privacy 2
En outre, à partir de la version 1.2.0, un meilleur mode est devenu disponible, ce qui modifie l' adresse principale pour qu'elle ne soit plus basée sur MAC, mais unique pour chaque réseau (RFC 7217):
(Notez que l'adressage de confidentialité est orthogonal au mode addr-gen; il est possible d'utiliser les deux.)
Note secondaire: À partir de la version 1.4.0, NM permet également de randomiser l'adresse MAC elle-même. Définissez l'option wifi.cloned-mac-address
pour stable
avoir un MAC différent pour chaque réseau (recommandé) ou random
pour le rendre aléatoire pour chaque connexion (peut causer des problèmes).
Dans tous les cas, il <name>
doit s'agir du nom de la connexion, par exemple WiFi SSID ou "Wired Connection 1"
. Utilisez nmcli con
pour lister tout.
Pour en faire la valeur par défaut pour les nouvelles connexions, à partir de la version 1.2.0, vous pouvez modifier /etc/NetworkManager/NetworkManager.conf
:
[connection]
ipv6.addr-gen-mode=stable-privacy
wifi.cloned-mac-address=stable
Linux (noyau SLAAC) prend en charge les adresses temporaires, mais ne les utilise pas par défaut. Ils peuvent être activés via sysctls.
Pour activer les adresses temporaires et les privilégier pour les connexions sortantes:
sysctl net.ipv6.conf.all.use_tempaddr=2
sysctl net.ipv6.conf.default.use_tempaddr=2
Pour activer la génération d'adresses temporaires tout en conservant l'adresse statique SLAAC:
sysctl net.ipv6.conf.all.use_tempaddr=1
sysctl net.ipv6.conf.default.use_tempaddr=1
La all
ou default
partie peut être remplacée par un nom d'interface spécifique; par exemple net.ipv6.conf.eth0.use_tempaddr
.
(J'avais l'habitude ip link set eth0 down && ip link set eth0 up
de forcer une affectation d'adresse, mais vous pouvez également exécuter rdisc6 eth0
ou attendre quelques minutes pour la prochaine publication périodique du routeur.)
Mac OS X - activé par défaut depuis OS X 10.7 Lion:
sysctl -w net.inet6.ip6.use_tempaddr=1
Les adresses temporaires, si activées, seront préférées.
FreeBSD :
sysctl net.inet6.ip6.use_tempaddr=1
sysctl net.inet6.ip6.prefer_tempaddr=1
NetBSD :
sysctl -w net.inet6.ip6.use_tempaddr=1
Préférence d'adresses temporaires? Je n'ai aucune idée. L'adresse autoconf semble être préférée. ifconfig
ne semble pas lister les propriétés de l'adresse.
OpenBSD - support ajouté en 5.2 ; activé et préféré par défaut en 5.3 .
ifconfig em0 autoconfprivacy
ifconfig
affiche "autoconfpracy" à côté des adresses temporaires.
Remarques sur la configuration:
Sous Linux, OS X et tous les BSD, éditez /etc/sysctl.conf
pour rendre le paramètre permanent.
Sous Windows, les modifications persisteront automatiquement. (Vous pouvez ajouter store=active
à la netsh
commande si vous voulez qu'elle ne dure que jusqu'au redémarrage.)
Partiellement basé sur les systèmes d'exploitation IPv6 sur IPv6INT.net. Voir aussi Notes générales sur IPv6
Si l'adresse matérielle est utilisée dans l'adresse IPv6, cela signifie généralement que votre réseau utilise la configuration automatique sans état IPv6. Dans ce cas, vous pouvez simplement choisir votre propre suffixe d'adresse et configurer IPv6 manuellement.
Cependant, même si l'adresse ajoutée manuellement ne contiendra pas vos informations matérielles, celles-ci resteront statiques (contrairement à Privacy Addressing, qui change d'adresse de temps en temps). De plus, les adresses statiques peuvent être pénibles dans un réseau de plus de 2-3 appareils.