如何在Amazon Linux 2023实例上彻底禁用IPv6(满足STIG合规要求)
如何在Amazon Linux 2023实例上彻底禁用IPv6(满足STIG合规要求)
我来帮你搞定这个问题!从你描述的情况来看,手动执行sysctl -w net.ipv6.conf.all.disable_ipv6=1能生效,但重启后又出现IPv6地址,核心问题出在开机时部分配置没完全生效,还有某个特定网卡的IPv6禁用设置被覆盖了。咱们一步步来解决:
第一步:定位未禁用IPv6的网卡
你执行cat /proc/sys/net/ipv6/conf/*/disable_ipv6时看到有一个0,这说明有个网卡的IPv6没被禁用。先找出这个网卡的名字:
grep -l 0 /proc/sys/net/ipv6/conf/*/disable_ipv6
输出会显示类似/proc/sys/net/ipv6/conf/ens5/disable_ipv6,这里的ens5就是咱们要重点处理的网卡。
第二步:确保sysctl配置全面且开机加载
虽然你已经在/etc/sysctl.conf里加了相关配置,但咱们要确认所有网卡都被覆盖,并且配置能在开机时正确加载:
- 打开
/etc/sysctl.conf,确保包含以下所有行(把第一步找到的网卡名替换进去,比如ens5):net.ipv6.conf.all.disable_ipv6=1 net.ipv6.conf.default.disable_ipv6=1 net.ipv6.conf.ens5.disable_ipv6=1 # 如果还有其他网卡,也加上对应的配置行 net.ipv6.conf.lo.disable_ipv6=1 - 执行以下命令让配置立即生效,同时确保开机自动加载:
sudo sysctl --system
第三步:正确配置GRUB内核参数(关键!)
你已经修改了/etc/default/grub,但Amazon Linux 2023需要重新生成GRUB配置文件才能让内核参数生效,别漏了这一步:
- 打开
/etc/default/grub,确认GRUB_CMDLINE_LINUX包含ipv6.disable=1,比如:GRUB_CMDLINE_LINUX="ipv6.disable=1 console=tty0 console=ttyS0,115200n8" - 重新生成GRUB配置:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
第四步:检查网络服务的IPv6设置(避免被覆盖)
如果你的实例用NetworkManager管理网络,可能会自动启用IPv6,这时候需要在网卡配置里禁用:
- 查看当前网卡的NetworkManager配置:
nmcli con show - 编辑对应网卡的配置(比如名字是
System ens5):sudo nmcli con modify "System ens5" ipv6.method disabled - 重启NetworkManager服务:
sudo systemctl restart NetworkManager
最后:验证禁用效果
完成以上步骤后重启实例,然后执行以下命令确认IPv6已彻底禁用:
# 检查是否有IPv6地址,应该无输出 ip -6 addr # 检查所有网卡的禁用状态,应该全是1 cat /proc/sys/net/ipv6/conf/*/disable_ipv6 # 确认sysctl参数 sysctl net.ipv6.conf.all.disable_ipv6
这样操作后,就能彻底禁用IPv6,满足STIG的合规要求啦!
备注:内容来源于stack exchange,提问作者shepster
相关产品推荐
相关产品推荐

