首页/安全/安全加固速查/IPv6 防火墙同步收敛
防火墙与访问控制50 条

IPv6 防火墙同步收敛

很多环境只管 IPv4:IPv6 一旦启用又无规则,等于全端口裸奔。确认启用状态后,IPv6 必须得到与 IPv4 同等的策略。

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

IPv6 容易被漏掉

很多环境只做了 IPv4 的防火墙策略,IPv6 一旦启用又没有规则,就等于全端口暴露。IPv6 的访问控制要与 IPv4 同等对待:先确认主机是否真的启用了 IPv6(有全局地址、有默认路由),再决定是给它配上同等策略,还是彻底禁用协议栈。

基本信息

适用平台Linux
风险等级高
基线要求IPv6 与 IPv4 策略同等
核查命令ip -6 addr、ip -6 route、ip6tables -L -n
禁用参数net.ipv6.conf.all.disable_ipv6
注意firewalld 与 ufw 会自动双栈管理规则

典型使用场景

  • 主机加固时检查只防了 IPv4 的漏项
  • 云主机分配 IPv6 地址后的策略补齐
  • 排查应用监听 :: 却被 IPv6 规则漏放行
  • 确认无业务依赖后统一禁用 IPv6
  • 统一规则入口,避免 ip6tables 与 firewalld 冲突

核查与收敛

核查与收敛
ip -6 addr show scope global     # 是否存在全局 IPv6 地址
ip -6 route show default         # 是否存在 IPv6 默认路由
ip6tables -L -n --line-numbers | head   # 查看现有 IPv6 规则
ip6tables -P INPUT DROP          # 默认拒绝基座
ip6tables -A INPUT -i lo -j ACCEPT    # 放行回环
ip6tables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT   # 放行已建立连接
ip6tables -A INPUT -p tcp --dport 22 -j ACCEPT   # 按业务放行必要端口

确认不用时禁用

确认不用时禁用
sysctl -w net.ipv6.conf.all.disable_ipv6=1       # 临时禁用,确认无影响后再写入配置
sysctl -w net.ipv6.conf.default.disable_ipv6=1   # 新建接口默认禁用

复核必查项

检查项含义注意点
全局地址是否存在可路由的 IPv6 地址有地址就必须有策略
默认路由是否具备 IPv6 出口影响外部可达性
ip6tables 策略INPUT 链的默认动作应为 DROP 基座
规则入口firewalld、ufw 与 ip6tables 的关系只保留一个入口
disable_ipv6是否禁用 IPv6 协议栈需先评估业务依赖
禁用 IPv6 前要确认没有业务依赖:内网走 IPv6 的监控或存储链路断掉,往往几天之后才被发现。
firewalld 与 ufw 会自动双栈管理规则,再手工叠加 ip6tables 规则会互相打架,规则入口要统一。另外 disable_ipv6 之后 ::1 回环也会消失,个别应用(Java、部分数据库客户端)启动异常,必要时只关闭全局地址而保留回环。
用 ip6tables 维护的规则同样要落盘持久化,否则重启后策略丢失;如果机器上由 firewalld 或 ufw 管理规则,就通过它们的接口维护,不要再用 ip6tables-save 覆盖。

易错点

  • 只做 IPv4 策略,主机一旦启用 IPv6 就等于全端口暴露,核查时必须把 IPv6 地址与规则一并看
  • disable_ipv6 之后 ::1 回环消失,部分应用启动异常,必要时保留回环或只关闭全局地址
  • firewalld 或 ufw 已在双栈管理规则,再手工叠加 ip6tables 会互相覆盖,应统一规则入口
  • 禁用 IPv6 前没有评估业务依赖,内网走 IPv6 的链路中断后数天才被发现

数据来源与参考

  • ip6tables(8) 手册
  • CIS Benchmark:IPv6 配置核查项

相关工具

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