Oamc

防火墙策略不通怎么排查

本页目录

场景

「策略明明放行了,就是不通」。防火墙排障和路由器不一样:包可能被策略拒、被 NAT 改错、被路由丢了,现象都一样(不通、超时),原因差很远。

这篇是一套固定顺序,从最外层往最里层走,每步都有明确的判定标准,不用靠猜。

前置条件

  • 能登录防火墙(串口/SSH)
  • 知道源 IP、目的 IP、目的端口、协议
  • 知道流量方向(哪个区域到哪个区域)
  • 最好有维护窗口,抓包会占 CPU

配置

第一步:确认有没有会话

display firewall session table
display firewall session table verbose source 192.168.10.50
display firewall session table verbose destination 1.2.3.5
  • 有会话 → 说明策略和 NAT 都过了,问题在路由或对端
  • 没有会话 → 包根本没被放行,或者压根没到防火墙

第二步:看策略命中

display security-policy rule all
display security-policy statistics

顺序是从上往下匹配,第一条命中的决定结果。看有没有一条 deny 在你的 permit 上面。

第三步:确认区域划对

display zone
display interface brief

接口不在区域里,策略里就选不到它,现象是「配了策略但不生效」。

第四步:确认 NAT 对不对

display nat-policy rule all
display firewall server-map          # 服务器映射有没有生效
display nat session table            # 实际转换结果

看转换后的源/目的地址是不是你期望的。源 NAT 配错网段,包出去了但回不来。

第五步:确认路由和回程

display ip routing-table
display ip routing-table 8.8.8.8
display ip routing-table 192.168.10.50

去和回两条路由都要有。只配去程没配回程是最常见的「单向通」。

第六步:抓包定位

capture-packet interface GigabitEthernet1/0/2 destination file 1.pcap
capture-packet interface GigabitEthernet1/0/1 destination file 2.pcap

内外网口各抓一份,对比:

  • 内网口有包、外网口没包 → NAT 或策略丢了
  • 两个口都有包,但没回应 → 对端或路由问题
  • 外网口有回应包、内网口没有 → 回程策略或 NAT 反查失败

抓完记得停:

capture-packet stop

验证

排查结论要用一次实际访问来验证,不能只看命令输出。

# 触发一次访问,然后立刻看
display firewall session table verbose destination 1.2.3.5
display security-policy statistics

会话表里出现了、统计里那条规则计数 +1,才算真的走通了。

回滚

排查阶段尽量只读,不改配置。非要临时改的话:

# 临时加一条放行,放在最前面
security-policy
 rule name temp_allow
  source-zone trust
  destination-zone untrust
  destination-address 1.2.3.5 32
  service tcp destination-port 8080
  action permit
  quit
 quit

查完记得删掉 undo security-policy rule name temp_allow,临时规则是最容易被忘的东西。

坑

策略顺序比策略内容更容易出错

防火墙是从上往下第一条命中即停。你新加的 permit 如果排在一条 deny 下面, 永远不会生效。加规则时先看 display security-policy rule all 的顺序。

  • NAT server 不自动放行:配了映射还要配 untrust→trust 的 permit,否则外面连不上。
  • easy-ip 和无 NAT 混用:同一条流量如果同时命中「不转换」和「easy-ip」,结果取决于规则顺序。
  • 策略里的 service 是预定义服务,自定义端口要用 service tcp destination-port 8080 这种写法,别直接写数字。
  • 应用层协议(FTP 主动模式、SIP、H.323)需要 ALG/ASPF,只放行控制端口不够,会卡在数据连接。
  • 双机热备环境下,备机不通是正常的(它是 standby),排障要在 active 上做。
  • 会话表有老化时间。改完策略立刻测可能还是旧会话在生效,reset firewall session table 清一下再测。
  • 抓包文件存在设备 flash 上,抓太久会写满,dir 看一下剩余空间。
  • 时间不对会导致证书、日志、时间相关策略异常,排障第一步先 display clock。

相关