Debian wheezy et l'ipv6 c'est pas terrible :/

Bonjour,

Par le titre de mon sujet tape à l’œil, je suis déçu de voir que debian ne respect pas la RFC 3041 par défaut:
tools.ietf.org/html/rfc3041

En effet l’adresse ipv6 sous debian est généré à partir de l’adresse mac :

Le résultat de la commande ci-dessus venant se positionner à la fin de notre préfixe IPv6. Il est donc simple d’identifier l’adresse MAC d’une personne en IPV6 sous debian :

ipv6-test.com/

C’est triste de voir cela car même windows ne “divulgue” pas l’adresse mac en ipv6.
Sous Ubuntu ils ont mit en place un fichier “/etc/sysctl.d/10-ipv6-privacy.conf”.

Certes nous pouvons activer manuellement le paramètre noyau :

echo 2 > /proc/sys/net/ipv6/conf/all/use_tempaddr echo 2 > /proc/sys/net/ipv6/conf/default/use_tempaddr

Mais pourquoi debian n’offre pas cette solution dès le départ? Le paramètre tempaddr change t’il trop souvent posant un problème avec les connexions entrantes quand un nom de domaine lui est associé?
Enfin faut-il déclarer ce problème comme critique avant la sortie imminente de debian wheezy?

Merci de vos retours :slightly_smiling:

La RFC 3041 de 2001 est obsolète, et remplacée par la RFC 4941 de 2007. Celle-ci spécifie que l’utilisation des adresses temporaires devrait être désactivée par défaut. Cf. § 3.6 et 8.

Ok merci c’est bon à savoir, car il y a beaucoup plus de références à la version RFC 3041 dans le noyau linux :wink:

Par exemple c’est encore l’option :

IPv6: Privacy Extensions (RFC 3041) support

La seule référence à la RFC 4941 se trouve dans le fichier “net/ipv6/addrconf.c” section 3.3.

Respecter la RFC ou la vie privée? Telle est la question. :mrgreen:

On ne va pas forcément mettre à jour les commentaires dans le code source à chaque fois qu’une RFC remplace une autre avec des changements mineurs.

On peut faire les deux. Par défaut c’est désactivé donc on respecte la RFC. Et on l’active si on en a besoin.

L’important, c’est que l’utilisateur a le choix.

je pensais qu’il en était ainsi avec n’importe quel système.
préfixe défini par le fai + adresse mac…
ba, de toute façon tu peut modifier le mac avec ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx

Actuellement c’est le cas pour celui qui à les connaissances, pas pour un simple utilisateur qui ne cherche pas à comprendre le fonctionnement de son système.

Dans tout les cas après lecture du Cf. § 3.6 de la RFC 4941, il est bien dit que le dispositifs mettant en œuvre la présente spécification DOIT fournir un moyen pour l’utilisateur final d’activer ou de désactiver explicitement l’utilisation des adresses temporaires.

Ce qui n’est pas le cas dans “/etc/sysctl.conf” ou “/etc/sysctl.d/” et à ma connaissance dans network-manager et wicd :think:

C’est pas la bonne solution et sinon dans ce cas il faudrait faire cela à chaque redémarrage :
hackurx.wordpress.com/2010/07/14 … demarrage/

De toute façon cette fonctionnalité et ses implications sont tellement obscures que ça n’intéresse que ceux qui la connaissent déjà, et qui sauront bien trouver l’option correspondante dans les paramètres du noyau.

Ce n’est pas une spécificité, il y a par exemple bien d’autres fonctionnalités dans les navigateurs web qui peuvent avoir un impact sur la vie privée (cookies…) et qui sont activées par défaut car cela permet de faire fonctionner la plupart des sites.

[quote=“HacKurx”]le dispositifs mettant en œuvre la présente spécification DOIT fournir un moyen pour l’utilisateur final d’activer ou de désactiver explicitement l’utilisation des adresses temporaires.
Ce qui n’est pas le cas dans “/etc/sysctl.conf” ou “/etc/sysctl.d/”[/quote]
Qu’est-ce qui empêche d’ajouter la ligne correspondante dans /etc/sysctl.conf ou de faire comme Ubuntu ?

J’ajoute que la portée de cette option est limitée à quelques cas particuliers, comme les appareils mobiles qui se connectent via des réseaux différents, si on ne veut pas être suivi à la trace. Pour une machine qui est toujours sur la même connexion internet avec le même préfixe, elle n’a aucun intérêt.

J’ai encore deux problèmes qui me chagrine avec l’ipv6 sous debian.

Premièrement j’ai ignoré l’ipv6 dans network-manager mais l’ipv6 est quand même utilisée :
pix.toile-libre.org/upload/origi … 587093.png

Concrètement il n’y a aucune option pour désactiver l’ipv6 dans network-manager et une adresse ipv6 peut-être utilisée à l’insu de l’utilisateur :108

Deuxièmement sur un serveur, j’ai paramétré le fichier interfaces comme ceci pour l’ipv6 :

auto eth0 iface eth0 inet static address 192.168.11.XX netmask 255.255.255.0 gateway 192.168.11.XX dns-nameservers 8.8.8.8 iface eth0 inet6 static address 2a01:e35:XXXXXXXXXXXX9 netmask 64 gateway fe80::XXXXXXXXXXX3

Tout fonctionne parfaitement mais à chaque fois j’ai dans les logs :

ICMPv6: RA: ndisc_router_discovery failed to add default route

Étant fonctionnelle et par manque de temps j’ai pas encore cherché plus loin (cela viendrait-il du faite que j’ai renseigné la passerelle ipv6?) mais ce message est agaçant.

Cela ne m’étonne pas du tout car l’auto-configuration IPv6 par RA est gérée directement par le noyau et activée par défaut. C’est pareil si l’interface est gérée par ifupfdown via le fichier /etc/network/interfaces sans définition inet6. Je suppose que la gestion d’IPv6 par network-manager, comme ifupdown, se limite à la configuration statique ou dynamique avec DHCPv6.

Je suppose aussi que cela vient du fait qu’une route par défaut statique existe déjà, mais il faudrait vérifier. De toute façon si l’interface est configurée en statique, tu pourrais désactiver la configuration automatique par RA avec un commande pre-up sysctl net.ipv6.conf.eth0.autoconf=0.

D’accord merci. J’ai trouvé un article intéressant (datant de 2009) :

greenskol.net/wordpress/2009 … -autoconf/

Mais je ne sais pas si les choses ont changé depuis.

Un changement au moins, c’est l’ajout d’une option ‘autoconf’ au module ipv6 du noyau depuis la version 2.6.31, incluant le noyau 2.6.32 de Squeeze et le 3.2 de Wheezy. Extrait de Documentation/networking/ipv6.txt :

[code]autoconf

Specifies whether to enable IPv6 address autoconfiguration
on all interfaces.  This might be used when one does not wish
for addresses to be automatically generated from prefixes
received in Router Advertisements.

The possible values and their effects are:

0
	IPv6 address autoconfiguration is disabled on all interfaces.

	Only the IPv6 loopback address (::1) and link-local addresses
	will be added to interfaces.

1
	IPv6 address autoconfiguration is enabled on all interfaces.

	This is the default value.[/code]

A noter que cette option empêche l’ajout d’adresses par autoconfiguration, mais en revanche les routes annoncées par les RA sont toujours ajoutées.

Comme depuis Squeeze l’IPv6 est inclus en dur dans le noyau standard et plus en module, on ne peut plus forcer cette option via /etc/modprobe.conf ou /etc/modprobe.d/*.conf. On peut en revanche la forcer via la ligne de commande du noyau passée par le chargeur d’amorçage. Dans le cas de grub, ajouter/modifier la ligne suivante dans /etc/default/grub :

puis exécuter ‘update-grub’ pour mettre à jour la configuration du chargeur.

Concernant les paramètres sysctl net.ipv6.conf, vaste sujet…
J’avais écrit un mot à ce sujet dans la liste debian-user-french en 2009, voir http://lists.debian.org/debian-user-french/2009/01/msg00159.html
En résumé : les paramètres net.ipv6.conf..* existent dès la création de l’interface, et ont pour valeurs par défaut les valeurs définies dans net.ipv6.conf.default.* au moment de la création de l’interface. Or les fichiers /etc/sysctl.conf et /etc/sysctl.d/.conf sont lus après la création des interfaces “physiques” par udev, donc la modification de paramètres net.ipv6.conf.default. par ce biais est trop tardive. Pire encore : une interface réseau peut être créée dès l’initramfs avant le montage de la racine (utile si la racine est sur le réseau) et donc avant l’exécution des scripts de démarrage. Dans cette situation la modification des paramètres sysctl par un script de démarrage exécuté avant udev ne serait pas efficace non plus. Il faudrait modifier l’initramfs.

En complément, il semble que les paramètres net.ipv6.conf.all.* soient sans effet, à l’exception de net.ipv6.conf.all.forwarding. Je ne sais pas si cela a changé depuis, mais cela ne semble pas être le cas dans le noyau de Squeeze (pas encore testé le noyau de Wheezy).