Per impostazione predefinita, IPv6 è abilitato sui sistemi CentOS/RHEL 8. Tuttavia, in determinate situazioni, alcuni utenti potrebbero ritenere opportuno disabilitare il supporto IPv6. Questo post descrive i passaggi per disabilitare ipv6 su un sistema CentOS/RHEL 8.
Per i sistemi che utilizzano NetworkManager
Per tutti i sistemi che eseguono NetworkManager, IPv6 deve essere disabilitato su ciascuna interfaccia con l'opzione ipv6.method impostato su disabilitato . Questo passaggio deve essere eseguito in aggiunta alla disabilitazione di IPv6 utilizzando il metodo mostrato nella sezione successiva di seguito.
# nmcli connection modify [Connection Name] ipv6.method "disabled"
Metodo 1:utilizzo di GRUB2
1. Disabilita il modulo del kernel integrato ipv6. Modifica /etc/default/grub e aggiungi ipv6.disable=1 a GRUB_CMDLINE_LINUX come mostrato di seguito:
GRUB_CMDLINE_LINUX="rd.lvm.lv=rhel/swap crashkernel=auto rd.lvm.lv=rhel/root ipv6.disable=1"
2. Esegui grub2-mkconfig comando per rigenerare il file grub.cfg:
# grub2-mkconfig -o /boot/grub2/grub.cfg
In alternativa, sui sistemi UEFI, esegui quanto segue:
# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
3. Riavvia il sistema per disabilitare il supporto IPv6.
# systemctl reboot
Metodo 2:utilizzo di sysctl
In alternativa, questo può essere fatto anche tramite le impostazioni sysctl. Tieni presente che questo interrompe SSH Xforwarding a meno che sshd_config non contenga AddressFamily inet.
1. Crea un nuovo file denominato /etc/sysctl.d/ipv6.conf e aggiungi le seguenti opzioni:
# 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. Le nuove impostazioni dovrebbero quindi essere ricaricate con:
# sysctl -p /etc/sysctl.d/ipv6.conf
3. Crea un backup di initramfs prima di apportare modifiche ad esso:
# cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).bak.$(date +%m-%d-%H%M%S).img
4. Quindi ricostruire l'immagine iniziale del disco RAM utilizzando:
# dracut -f -v
5. Verifica dell'inclusione del file:
# lsinitrd /boot/initramfs-[version].img | grep 'etc/sysctl.d/ipv6.conf'
6. Commenta qualsiasi indirizzo IPv6 trovato in /etc/hosts, incluso ::1 indirizzo localhost. Effettua il backup del file prima di apportare modifiche:
# cp -p /etc/hosts /etc/hosts.disableipv6 # sed -i 's/^[[:space:]]*::/#::/' /etc/hosts
Verifica
1. Lo stato corrente dell'opzione di disabilitazione del modulo ipv6 può essere visualizzato tramite sysfs:
# cat /sys/module/ipv6/parameters/disable 1
2. Lo stato corrente di sysctl disable_ipv6 può essere visualizzato con il comando 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. Per elencare tutti gli indirizzi IPv6 assegnati al sistema:
# ip -6 addr
4. Per elencare qualsiasi socket IPv6 TCP o UDP è possibile utilizzare qualcosa di simile al seguente:
# ss -6 -pan
La conclusione
Nel caso, si noti qualsiasi messaggio Selinux negato nel file audit.log come avc:negato { module_request }, durante l'utilizzo del Metodo 1 (GRUB2), quindi disabilitare ipv6 dal file /etc/sysctl.d/ipv6.conf come mostrato in il Metodo 2. Facoltativamente per impedire l'output di messaggi rpc* dopo aver disabilitato ipv6, modificare /etc/netconfig per le righe che iniziano con udp6 e tcp6; cambia la “v” nella terza colonna in “-“(trattino/trattino).
Come abilitare IPv6 in CentOS/RHEL 8