Ve výchozím nastavení je protokol IPv6 povolen na systémech CentOS/RHEL 8. V určitých situacích však mohou někteří uživatelé považovat za žádoucí vypnout podporu IPv6. Tento příspěvek popisuje kroky k deaktivaci ipv6 na systému CentOS/RHEL 8.
Pro systémy používající NetworkManager
U všech systémů, které používají NetworkManager, musí být protokol IPv6 zakázán na každém rozhraní pomocí možnosti ipv6.method nastavit na deaktivováno . Tento krok je nutné provést navíc k deaktivaci IPv6 pomocí metody uvedené v další části níže.
# nmcli connection modify [Connection Name] ipv6.method "disabled"
Metoda 1:Použití GRUB2
1. Zakažte modul vestavěného jádra ipv6. Upravte /etc/default/grub a připojte ipv6.disable=1 na GRUB_CMDLINE_LINUX jak je uvedeno níže:
GRUB_CMDLINE_LINUX="rd.lvm.lv=rhel/swap crashkernel=auto rd.lvm.lv=rhel/root ipv6.disable=1"
2. Spusťte grub2-mkconfig příkaz k regeneraci souboru grub.cfg:
# grub2-mkconfig -o /boot/grub2/grub.cfg
Případně na systémech UEFI spusťte následující:
# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
3. Restartováním systému zakažte podporu IPv6.
# systemctl reboot
Metoda 2:Použití sysctl
Alternativně to lze provést také prostřednictvím nastavení sysctl. Uvědomte si prosím, že to přeruší SSH Xforwarding, pokud sshd_config neobsahuje AddressFamily inet.
1. Vytvořte nový soubor s názvem /etc/sysctl.d/ipv6.conf a přidejte následující možnosti:
# 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. Nová nastavení by pak bylo třeba znovu načíst pomocí:
# sysctl -p /etc/sysctl.d/ipv6.conf
3. Před provedením jakýchkoli změn v initramfs vytvořte zálohu:
# cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).bak.$(date +%m-%d-%H%M%S).img
4. Poté znovu vytvořte počáteční obraz disku RAM pomocí:
# dracut -f -v
5. Ověření zahrnutí souboru:
# lsinitrd /boot/initramfs-[version].img | grep 'etc/sysctl.d/ipv6.conf'
6. Zakomentujte všechny adresy IPv6 nalezené v /etc/hosts, včetně adresy ::1 localhost. Před provedením jakýchkoli změn vytvořte zálohu souboru:
# cp -p /etc/hosts /etc/hosts.disableipv6 # sed -i 's/^[[:space:]]*::/#::/' /etc/hosts
Ověření
1. Aktuální stav možnosti deaktivace modulu ipv6 lze zobrazit pomocí sysfs:
# cat /sys/module/ipv6/parameters/disable 1
2. Aktuální stav sysctl disable_ipv6 lze zobrazit pomocí příkazu 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. Seznam všech adres IPv6 přiřazených systému:
# ip -6 addr
4. Chcete-li vypsat jakékoli sokety IPv6 TCP nebo UDP, můžete použít něco jako následující:
# ss -6 -pan
Závěr
V případě, že si při použití metody 1 (GRUB2 všimnete jakékoli zprávy Selinux denied v souboru audit.log, jako je avc:denied { module_request }), pak deaktivujte ipv6 ze souboru /etc/sysctl.d/ipv6.conf, jak je uvedeno v Metoda 2. Chcete-li po zakázání ipv6 zabránit výstupu zpráv rpc*, upravte /etc/netconfig pro řádky začínající udp6 a tcp6; změňte „v“ ve třetím sloupci na „-“ (pomlčka/pomlčka).
Jak povolit IPv6 v CentOS/RHEL 8