首页/安全/安全加固速查/IPv6 参数加固(accept_ra 与重定向)
主机加固基线90 条

IPv6 参数加固(accept_ra 与重定向)

不用或仅静默使用 IPv6 的主机仍是可达攻击面:关闭 RA 接受与重定向接受,防止被伪造路由通告劫持;依赖 SLAAC 的网络需豁免。

安全加固速查安全更新于 2026-10-13

IPv6 参数为什么要收

很多主机自称不用 IPv6,但接口上仍默认开启并接受路由通告与重定向。攻击者在内网注入伪造 RA 就能把自己变成默认网关实现中间人,IPv4 下同类攻击门槛更高。收敛参数比直接禁用协议更安全,代价也小。

基本信息

适用平台Linux(sysctl 参数)
目标参数accept_ra、accept_redirects、accept_source_route(IPv6)
基线值静态寻址或不用 IPv6 的主机全部设 0
例外情况依赖 SLAAC 自动获取地址的网络必须保留 accept_ra

典型使用场景

  • 服务器固定 IP:地址写死在配置里,不需要接受任何路由通告
  • 内网安全加固:阻断伪造 RA 造成的中间人劫持
  • 虚拟化与云主机:邻居网络不可控,收敛参数属于基础动作
  • 合规自查:CIS 与等保都把 IPv6 相关项单列,是测评时的常见扣分点
  • 双栈割接后的复核:割接窗口里常见的残留广播与重定向,需要逐项确认

核查与加固

核查与加固
# 先看现状,确认本机是否依赖 SLAAC 获取地址
sysctl net.ipv6.conf.all.accept_ra net.ipv6.conf.all.accept_redirects
ip -6 addr show scope global | head
# 写入独立配置文件,重启后自动生效
tee /etc/sysctl.d/99-ipv6-hardening.conf <<'EOF'
net.ipv6.conf.all.accept_ra = 0
net.ipv6.conf.default.accept_ra = 0
net.ipv6.conf.all.accept_redirects = 0
net.ipv6.conf.default.accept_redirects = 0
EOF
sysctl --system

参数逐项读法

参数作用设置建议
accept_ra是否接受路由通告并据此配置地址与默认路由静态寻址设 0;依赖 SLAAC 的机器必须保留 1 或 2
accept_redirects是否接受 ICMPv6 重定向改写路由一律设 0,它是改你网关最省力的手段
accept_source_route是否接受源路由选项设 0,源路由本身即异常行为
disable_ipv6是否整体关闭协议栈非必要不整体关闭,避免绑定 ::1 的服务启动失败
依赖 SLAAC 的网络里把 accept_ra 设为 0,主机会同时失去 IPv6 地址与默认路由,表现为 IPv6 突然不通。变更前在测试机验证,并确认带外通道可用。
RA 与 DHCPv6 语义不同:关闭 RA 不等于禁用 DHCPv6。按实际寻址方式逐项决定,别把「关 IPv6」当万能动作。
接口级参数优先级高于 all 与 default:排查时用 ip -6 route show default 与 sysctl net.ipv6.conf.eth0.accept_ra 一起看,只看全局值容易得出错误结论。
网卡重命名或新增 bond 后,接口级设置需要重新核对:容器网络与 bonding 场景里,新建接口常带着默认的宽松参数回来。

易错点

  • 整机 disable_ipv6=1:绑定 ::1 的数据库与监控 agent 启动失败,排查成本远高于收益
  • 照抄基线不区分寻址方式:SLAAC 环境直接把网段打不通
  • 只改 all 不改 default:新建接口(容器网卡、bond)恢复默认值,加固形同虚设
  • 只用 sysctl -w 不落配置:重启全丢,复核时被打回

数据来源与参考

  • CIS Linux Benchmark:IPv6 相关加固项
  • RFC 4861:IPv6 邻居发现

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌