Par défaut, IPv6 est activé sur les systèmes CentOS/RHEL 8. Cependant, dans certaines situations, certains utilisateurs peuvent trouver souhaitable de désactiver la prise en charge d'IPv6. Cet article décrit les étapes pour désactiver ipv6 sur un système CentOS/RHEL 8.
Pour les systèmes utilisant NetworkManager
Pour tous les systèmes qui exécutent NetworkManager, IPv6 doit être désactivé sur chaque interface avec l'option ipv6.method défini sur désactivé . Cette étape doit être effectuée en plus de la désactivation d'IPv6 en utilisant la méthode indiquée dans la section suivante ci-dessous.
# nmcli connection modify [Connection Name] ipv6.method "disabled"
Méthode 1 :Utiliser GRUB2
1. Désactivez le module de noyau intégré ipv6. Modifier /etc/default/grub et ajoutez ipv6.disable=1 vers GRUB_CMDLINE_LINUX comme indiqué ci-dessous :
GRUB_CMDLINE_LINUX="rd.lvm.lv=rhel/swap crashkernel=auto rd.lvm.lv=rhel/root ipv6.disable=1"
2. Exécutez le grub2-mkconfig commande pour régénérer le fichier grub.cfg :
# grub2-mkconfig -o /boot/grub2/grub.cfg
Sinon, sur les systèmes UEFI, exécutez ce qui suit :
# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
3. Redémarrez le système pour désactiver la prise en charge d'IPv6.
# systemctl reboot
Méthode 2 :Utiliser sysctl
Alternativement, cela peut également être fait via les paramètres sysctl. Veuillez noter que cela interrompt SSH Xforwarding à moins que sshd_config ne contienne AddressFamily inet.
1. Créez un nouveau fichier nommé /etc/sysctl.d/ipv6.conf et ajoutez les options suivantes :
# vi /etc/sysctl.d/ipv6.conf # First, disable for all interfaces net.ipv6.conf.all.disable_ipv6 = 1 # If using the sysctl method, the protocol must be disabled all specific interfaces as well. net.ipv6.conf..disable_ipv6 = 1
2. Les nouveaux paramètres devront alors être rechargés avec :
# sysctl -p /etc/sysctl.d/ipv6.conf
3. Créez une sauvegarde de l'initramfs avant d'y apporter des modifications :
# cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).bak.$(date +%m-%d-%H%M%S).img
4. Ensuite, reconstruisez l'image initiale du disque RAM en utilisant :
# dracut -f -v
5. Vérification de l'inclusion du fichier :
# lsinitrd /boot/initramfs-[version].img | grep 'etc/sysctl.d/ipv6.conf'
6. Mettez en commentaire toutes les adresses IPv6 trouvées dans /etc/hosts, y compris ::1 adresse localhost. Effectuez une sauvegarde du fichier avant d'apporter des modifications :
# cp -p /etc/hosts /etc/hosts.disableipv6 # sed -i 's/^[[:space:]]*::/#::/' /etc/hosts
Vérification
1. L'état actuel de l'option de désactivation du module ipv6 peut être consulté via sysfs :
# cat /sys/module/ipv6/parameters/disable 1
2. L'état actuel de sysctl disable_ipv6 peut être vu avec la commande sysctl :
# sysctl -a 2>/dev/null | grep disable_ipv6 net.ipv6.conf.all.disable_ipv6 = 1 net.ipv6.conf.default.disable_ipv6 = 0 net.ipv6.conf.eth0.disable_ipv6 = 0
3. Pour répertorier toutes les adresses IPv6 attribuées au système :
# ip -6 addr
4. Pour répertorier les sockets IPv6 TCP ou UDP, vous pouvez utiliser ce qui suit :
# ss -6 -pan
La conclusion
Si vous remarquez des messages refusés par Selinux dans le fichier audit.log, tels que avc:nié { module_request }, tout en utilisant la méthode 1 (GRUB2), puis désactivez l'ipv6 à partir du fichier /etc/sysctl.d/ipv6.conf comme indiqué dans la méthode 2. Éventuellement, pour empêcher la sortie des messages rpc* après la désactivation d'ipv6, modifiez /etc/netconfig pour les lignes commençant par udp6 et tcp6; remplacez le "v" dans la troisième colonne par "-" (trait d'union/tiret).
Comment activer IPv6 dans CentOS/RHEL 8