Désactiver IPv6 sur Linux
Table des matières
Dans cet article, nous allons voir ensemble comment désactiver le protocole IPv6 sur un serveur Linux.
Si vous n'utilisez que le protocole IPv4 dans votre réseau local, l'IPv6 n'est pas utile.
En effet, votre serveur reçoit par défaut une IPv6 de type fe80 qui permet de causer sur le réseau local avec d'autres machines en IPv6, ce qui génère du trafic, et est utilisable potentiellement par un individu malveillant.
Dans tous les cas, si votre routeur a une IPv6 car votre fournisseur d'accès vous en délivre une, le routeur se chargera de causer en IPv6 pour vous avec le monde extérieur.
Je vous rappelle que pour afficher les informations réseau, la commande est :
Voici un retour à titre d'exemple :
On a l'interface lo (loopback) et ens192 connectée sur le réseau locale.
La ligne inet indique la configuration IPv4 (192.168.21.120/24)
La ligne inet6 indique la configuration IPv6 (fe80::3890:f2:37e1:fa10/64)
Pour désactiver l'IPv6 on pourra créer un fichier dans /etc/sysctl.d :
La valeur à définir à 1 est net.ipv6.conf.all.disable_ipv6 mais par précaution, on définira aussi net.ipv6.conf.default.disable_ipv6 :
Après avoir enregistré le fichier, on va appliquer notre paramétrage de suite :
Le paramétrage est persistant au reboot.
Si on souhaite réactiver l'IPv6 on basculera les valeurs de 1 à 0 (ou on supprimera le fichier puisque par défaut la valeur est 0).
Si vous souhaitez désactiver IPv6 avec le gestionnaire de réseau NetworkManager vous pouvez éditer l'interface avec l'outil semi-graphique nmtui.
Je vous présente ici les lignes de commandes nmcli :
Listez les connexions :
On a ce type de retour, identifiez votre nom d'interface (ici ens192) :
Pour désactiver l'IPv6 sur ens192 :
Une fois les manipulations faites, vérifiez à nouveau avec
On constate que les lignes inet6 ont disparues :
Introduction
Dans cet article, nous allons voir ensemble comment désactiver le protocole IPv6 sur un serveur Linux.
Si vous n'utilisez que le protocole IPv4 dans votre réseau local, l'IPv6 n'est pas utile.
En effet, votre serveur reçoit par défaut une IPv6 de type fe80 qui permet de causer sur le réseau local avec d'autres machines en IPv6, ce qui génère du trafic, et est utilisable potentiellement par un individu malveillant.
Dans tous les cas, si votre routeur a une IPv6 car votre fournisseur d'accès vous en délivre une, le routeur se chargera de causer en IPv6 pour vous avec le monde extérieur.
Mise en pratique
Informations
Je vous rappelle que pour afficher les informations réseau, la commande est :
Code BASH :
ip a
Voici un retour à titre d'exemple :
Code :
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:50:56:a9:c4:30 brd ff:ff:ff:ff:ff:ff
inet 192.168.21.120/24 brd 192.168.21.255 scope global dynamic noprefixroute ens192
valid_lft 690065sec preferred_lft 690065sec
inet6 fe80::3890:f2:37e1:fa10/64 scope link noprefixroute
valid_lft forever preferred_lft forever
On a l'interface lo (loopback) et ens192 connectée sur le réseau locale.
La ligne inet indique la configuration IPv4 (192.168.21.120/24)
La ligne inet6 indique la configuration IPv6 (fe80::3890:f2:37e1:fa10/64)
Avec sysctl
Pour désactiver l'IPv6 on pourra créer un fichier dans /etc/sysctl.d :
Code BASH :
vi /etc/sysctl.d/disable-ipv6-ad.conf
La valeur à définir à 1 est net.ipv6.conf.all.disable_ipv6 mais par précaution, on définira aussi net.ipv6.conf.default.disable_ipv6 :
Code BASH :
net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 1
Après avoir enregistré le fichier, on va appliquer notre paramétrage de suite :
Code BASH :
sysctl -p /etc/sysctl.d/disable-ipv6-ad.conf
Le paramétrage est persistant au reboot.
Si on souhaite réactiver l'IPv6 on basculera les valeurs de 1 à 0 (ou on supprimera le fichier puisque par défaut la valeur est 0).
Complément NetworkManager
Si vous souhaitez désactiver IPv6 avec le gestionnaire de réseau NetworkManager vous pouvez éditer l'interface avec l'outil semi-graphique nmtui.
Je vous présente ici les lignes de commandes nmcli :
Listez les connexions :
Code BASH :
nmcli connection show
On a ce type de retour, identifiez votre nom d'interface (ici ens192) :
Code TEXT :
NAME UUID TYPE DEVICE ens192 e8785e13-6a68-48bd-8ad9-63dcb6baa2f3 ethernet ens192
Pour désactiver l'IPv6 sur ens192 :
Code BASH :
nmcli connection modify ens192 ipv6.method "disabled"
nmcli connection up ens192
Vérification
Une fois les manipulations faites, vérifiez à nouveau avec
Code BASH :
ip a
On constate que les lignes inet6 ont disparues :
Code :
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:50:56:a9:c4:30 brd ff:ff:ff:ff:ff:ff
inet 192.168.21.120/24 brd 192.168.21.255 scope global dynamic noprefixroute ens192
valid_lft 691192sec preferred_lft 691192sec