CentOS/RHEL 8 システムでは、デフォルトで IPv6 が有効になっています。ただし、特定の状況では、一部のユーザーは IPv6 サポートを無効にすることが望ましい場合があります。この投稿では、CentOS/RHEL 8 システムで ipv6 を無効にする手順について説明します。
NetworkManager を使用するシステムの場合
NetworkManager を実行するすべてのシステムでは、オプション ipv6.method を使用して、各インターフェースで IPv6 を無効にする必要があります。 無効に設定 .この手順は、次のセクションで示す方法を使用して IPv6 を無効にすることに加えて実行する必要があります。
# nmcli connection modify [Connection Name] ipv6.method "disabled"
方法 1:GRUB2 を使用する
1. ipv6 組み込みカーネル モジュールを無効にします。 /etc/default/grub を編集 ipv6.disable=1 を追加します GRUB_CMDLINE_LINUX へ 以下に示すように:
GRUB_CMDLINE_LINUX="rd.lvm.lv=rhel/swap crashkernel=auto rd.lvm.lv=rhel/root ipv6.disable=1"
2. grub2-mkconfig を実行します grub.cfg ファイルを再生成するコマンド:
# grub2-mkconfig -o /boot/grub2/grub.cfg
または、UEFI システムでは、次を実行します。
# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
3. システムを再起動して、IPv6 サポートを無効にします。
# systemctl reboot
方法 2:sysctl を使用する
または、これは sysctl 設定を介して行うこともできます。 sshd_config に AddressFamily inet が含まれていない限り、これにより SSH Xforwarding が中断されることに注意してください。
1. /etc/sysctl.d/ipv6.conf という名前の新しいファイルを作成します 次のオプションを追加します:
# 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. 次に、新しい設定を再読み込みする必要があります:
# sysctl -p /etc/sysctl.d/ipv6.conf
3. 変更を加える前に、initramfs のバックアップを作成します。
# cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).bak.$(date +%m-%d-%H%M%S).img
4. 次に、以下を使用して初期 RAM ディスク イメージを再構築します。
# dracut -f -v
5. ファイルのインクルードの確認:
# lsinitrd /boot/initramfs-[version].img | grep 'etc/sysctl.d/ipv6.conf'
6. ::1 localhost アドレスを含む、/etc/hosts にあるすべての IPv6 アドレスをコメントアウトします。変更を行う前に、ファイルのバックアップを作成してください:
# cp -p /etc/hosts /etc/hosts.disableipv6 # sed -i 's/^[[:space:]]*::/#::/' /etc/hosts
確認
1. ipv6 モジュール無効化オプションの現在の状態は、sysfs 経由で確認できます:
# cat /sys/module/ipv6/parameters/disable 1
2. sysctl disable_ipv6 の現在の状態は、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. システムに割り当てられた IPv6 アドレスを一覧表示するには:
# ip -6 addr
4. IPv6 TCP または UDP ソケットを一覧表示するには、次のようなものを使用できます:
# ss -6 -pan
結論
場合によっては、方法 1 (GRUB2) を使用しているときに、audit.log ファイルに avc:denied { module_request } などの Selinux 拒否メッセージが表示される場合は、次のように /etc/sysctl.d/ipv6.conf ファイルから ipv6 を無効にします。方法 2. オプションで、ipv6 を無効にした後に rpc* メッセージが出力されないようにするには、/etc/netconfig を編集します。 udp6 および tcp6 で始まる行の場合。 3 列目の「v」を「-」(ハイフン/ダッシュ) に変更します。
CentOS/RHEL 8 で IPv6 を有効にする方法