文档目录

适用场景

  • 产品:ZCF
  • 组件:Cloud
  • 版本:4.8.x
  • 部署形态:双管理节点
  • 触发条件:漏扫报告提示允许 Traceroute 探测,需要通过主机侧规则限制相关 ICMP 探测流量。

问题现象

  • 漏扫报告提示存在允许 Traceroute 探测风险。
  • 需要只放通授权网段,其余来源的指定 ICMP 流量进行拦截。
  • 本次变更仅作用于物理机防火墙规则。

判断方法

  1. 变更前先确认放通网段列表。
  2. 配置后检查 ipset 和 iptables 规则是否存在。
  3. 用 tracert 验证修复效果。

原因说明

该风险来源于主机对相关探测流量缺少限制,因此需要通过 ipset 白名单和 iptables 规则,仅允许授权网段通过,其他来源的 ICMP type 8 流量予以丢弃。

解决方案

  1. 执行前准备
  • 风险等级:低风险
  • 先关闭云主机全局高可用。
  • 先备份双管理节点数据库。
  • 逐台物理机执行,并确认每台无异常后再推广。
  1. 处理步骤
  2. 备份数据库:
   zstack-ctl dump_mysql
   zstack-ctl dump_mysql
  • 预期结果:双管理数据库备份完成。
  1. 创建允许访问的 IP 集合:
   ipset create ZS-ALLOW-IP-ICMP hash:net -exist
   ipset flush ZS-ALLOW-IP-ICMP
  • 预期结果:白名单集合初始化完成。
  1. 添加需要放开的网段:
   ipset add ZS-ALLOW-IP-ICMP xx.xx.xx.xx/xx
  • 预期结果:授权网段写入白名单。
  1. 检查白名单集合:
   ipset list ZS-ALLOW-IP-ICMP
  • 预期结果:放通网段已正确写入。
  1. 添加拦截规则:
   iptables -A INPUT -t mangle -p icmp --icmp-type 8 -m set ! --match-set ZS-ALLOW-IP-ICMP src -m comment --comment ZS-SAFE-CONFIGURATION -j DROP
  • 预期结果:未在白名单内的 ICMP type 8 请求被丢弃。
  1. 检查规则是否生效:
   iptables -nvL | grep icmptype
  • 预期结果:规则已出现在防火墙表中。
  1. 保存配置:
   ipset save > /etc/sysconfig/ipset
   service iptables save
  • 预期结果:规则在重启后仍可保留。
  1. 验证:
   tracert $IP
  • 预期结果:探测行为符合预期。
  1. 单台验证无异常后,再逐台配置其他物理机节点。
  2. 最后开启云主机全局高可用。
  • 预期结果:整改完成且平台恢复常态运行。

验证方法

  • 检查 ipset list ZS-ALLOW-IP-ICMP 内容正确。
  • 检查 iptables -nvL 中规则存在。
  • 检查 tracert 结果符合预期。
  • 检查平台与业务运行正常。

风险与回滚

  • 风险:若白名单配置不完整,可能误拦截合法流量。
  • 风险等级:低。
  • 回滚步骤:
  iptables -D INPUT -t mangle -p icmp --icmp-type 8 -m set ! --match-set ZS-ALLOW-IP-ICMP src -m comment --comment ZS-SAFE-CONFIGURATION -j DROP
  ipset save > /etc/sysconfig/ipset
  service iptables save
允许Traceroute探测漏洞修复 | 技术方案 · KB | ZStack 资源中心