Comment désactiver l'IPV6 sous Linux ?

 L’IPV6 (Internet Protocol Version 6) est désormais de plus en plus présent sur les distributions Linux. Sur un serveur, il est recommandé de minimiser le nombre de services et de désactiver les protocole et support matériel inutilisés. Si un serveur est placé sur un réseau IPV4, la désactivation d’IPV6 et donc préférable (une chose de moins à gérer…).





L’IPV6 est il activé sur ma machine ?


Vous pouvez déterminer si IPV6 est activé sur un système Linux, en testant l’existence du fichier “/proc/net/if_inet6″. Si le fichier n’existe pas, lPV6 n’est pas activé/supporté :

srv ~ # ls /proc/net/if_inet6
ls: impossible d'accéder à /proc/net/if_inet6: Aucun fichier ou dossier de ce type

Si le fichier existe, il contient la liste des interfaces réseaux pour lesquelles le protocole est supporté :

# cat /proc/net/if_inet6
fe80000000000000025056fffc00c008 05 40 20 80   vmnet8
00000000000000000000000000000001 01 80 10 80       lo
fe80000000000000025056fffec00001 04 40 20 80   vmnet1
fe80000000000000020cdbfafed3f062 02 40 20 80     eth0

Dans cette exemple l’IPV6 est supporté par le système et activé pour les interfaces vmware (“vmnet8″, “vmnet1″) ainsi que pour l’interface “eth0″ et le loopback.

Une autre méthode permettant de voir si l’IPV6 est actif sur l’une des interfaces du système, consiste à rechercher l’adresse IPV6 qui lui est alloué (ligne “inet6 addr:” du retour d’”ifconfig”) :

# ifconfig lo
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:244 errors:0 dropped:0 overruns:0 frame:0
          TX packets:244 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:21044 (20.5 KiB)  TX bytes:21044 (20.5 KiB)

Désactivation d’IPV6


Il est possible de désactiver l’IPV6 sur une seule ou sur toutes les interfaces d’une machine.

Première méthode : à la geek


Vous pouvez désactiver l’IPV6 en utilisant les fichiers de “/proc/sys” (pseudo système de fichier permettant de modifier dynamiquement les paramètres du noyau).L’IPV6 est géré via l’arborescence “net/ipv6/conf” de ce répertoire :

# ls /proc/sys/net/ipv6/conf
all  default  eth0  lo  vboxnet0  vmnet1  vmnet8

Nous trouvons dans le répertoire le paramétrage des différentes interfaces réseau du système, la politique par défaut pour d’éventuelles nouvelles interfaces (default), et la politique générale (all).

Dans chaque répertoire, sont placés des fichiers destinés à configurer les paramètres ipv6. Celui qui nous intéresse pour la désactivation du protocole est “disable_ipv6″.

Si IPV6 est activé sur une interface, “disable_ipv6″ du répertoire de l’interface contient la valeur “0″, sinon, il contient “1″.

Pour désactiver l’IPV6 sur une interface, passer à “1″ le contenu de son fichier “/proc/sys/net/ipv6/conf/$IFACE/disable_ipv6″. La modification prend effet immédiatement.

# cat /proc/sys/net/ipv6/conf/lo/disable_ipv6 
0
12:17:39 mafalda ~ # cat /proc/net/if_inet6 | grep lo
00000000000000000000000000000001 01 80 10 80       lo
12:18:10 mafalda ~ # echo 1 > /proc/sys/net/ipv6/conf/lo/disable_ipv6
12:18:22 mafalda ~ # cat /proc/net/if_inet6 | grep lo
12:18:25 mafalda ~ # cat /proc/sys/net/ipv6/conf/lo/disable_ipv6

Dans cette exemple, nous commençons par vérifier que l’IPV6 est actif sur le loopback. Nous retrouvons le “lo” dans la liste des interfaces supportant le protocole (dans /proc/net/if_inet6). Nous désactivons le support en passant à 1 le contenu de “/lo/disable_ipv6″ et vérifions qu’il à bien disparu des interface IPV6.

Pour désactiver l’IPV6 sur toutes les interfaces de la machine, passer à “1″ le contenu de “/proc/sys/net/ipv6/conf/all/disable_ipv6″ et de “/proc/sys/net/ipv6/conf/default/disable_ipv6″ (politique par défaut).

Par sécurité, mettez à “0″ les paramètres de configuration automatique de l’IPV6 “/proc/sys/net/ipv6/conf/all/autoconf”, “/proc/sys/net/ipv6/conf/default/autoconf” afin d’éviter qu’une configuration par défaut soit appliquée aux interfaces :

# echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6
 # echo 0 > /proc/sys/net/ipv6/conf/all/autoconf
 # echo 1 > /proc/sys/net/ipv6/conf/default/disable_ipv6
 # echo 0 > /proc/sys/net/ipv6/conf/default/autoconf

Le résultat est immédiat :

# cat /proc/net/if_inet6
 #

Seconde méthode : sysctl


“sysctl” Permet de modifier les paramètres du noyau directement. Les clés à modifier sont les mêmes que dans la méthode “geek” :

# sysctl -w net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.all.disable_ipv6 = 1
12:55:34 mafalda ~ # sysctl -w net.ipv6.conf.all.autoconf=0
net.ipv6.conf.all.autoconf = 0
12:55:34 mafalda ~ # sysctl -w net.ipv6.conf.default.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6 = 1
12:55:34 mafalda ~ # sysctl -w net.ipv6.conf.default.autoconf=0
net.ipv6.conf.default.autoconf = 0

La prise en compte des modification est immédiate :

# cat /proc/net/if_inet6
 #

Rendre les modifications pérennes


Afin de rendre les modifications pérennes, il convient de modifier le fichier “/etc/sysctl.conf” pour y ajouter le paramétrage des clés modifiées manuellement ci dessus.

Pour désactiver l’IPV6 nous ajoutons les lignes suivantes au fichier :

# désactivation du support pour les interfaces actuelles
net.ipv6.conf.all.disable_ipv6 = 1
 
# désactivation du support de l’autoconfiguration
net.ipv6.conf.all.autoconf = 0
 
# désactivation du support par défaut pour les nouvelles interfaces
net.ipv6.conf.default.disable_ipv6 = 1
 
# et de l'autoconfiguration 
net.ipv6.conf.default.autoconf = 0

Pour que les modifications soient prises en compte immédiatement, rechargez le fichier via “sysctl” :

# sysctl -p
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.all.autoconf = 0
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.default.autoconf = 0










Posted by Picasa

Posts les plus consultés de ce blog

Guide pas à pas de la gestion de l’impression dans Windows Server 2008