Gestion du réseau

Désactiver IPv6 sur Linux

Table des matières

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
Cette page a été vue 3336 fois