瞻博防火墙故障排除全解析
数据包处理流程
当数据包到达瞻博防火墙的接口时,会经历以下步骤:
1. 完整性检查 :确保数据包未损坏。
2. 会话查找 :检查数据包是否属于现有会话,若是则遵循同一会话的其他数据包的处理方式。
3. 路由选择 :根据路由表和区域进行路由。
4. 防火墙策略检查 :检查数据包是否符合防火墙策略。
5. ARP缓存引用 :参考ARP缓存。
6. 会话创建与转发 :若会话不存在则创建会话,并转发数据包。
注意,会话是在数据包通过路由表和防火墙策略后才创建的。
网络故障排除
在怀疑是防火墙问题之前,需要确定防火墙是否真的是问题根源。可使用以下工具进行网络故障排除:
- 数据包嗅探器 :如Ethereal(www.ethereal.com),它能抓取网络上的数据包并以可读格式显示。
- Ping测试 :确保防火墙能ping通默认网关,且能ping通互联网和内部资源。若防火墙无法访问主机,数据包通过防火墙后也难以到达该主机,除非有其他防火墙阻止了来自该防火墙的流量。
瞻博防火墙调试
调试瞻博设备的流量时,需注意可能涉及多个虚拟路由器(VR)。ScreenOS默认有两个VR:trust - vr和untrust - vr,每个虚拟路由器都有自己的路由表。默认情况下,除空区域外,所有区域都与trust - vr关联。
单虚拟路由器调试
若使用默认的单个虚拟路由器,可使用 get route 命令显示路由表,确保添加的路由属于trust - vr,使用中的路由旁会有星号(*)。常见问题多由路由配置错误导致, debug flow basic 命令在排查路由问题时很有用。可问自己以下问题:
- 是否有默认路由(到0.0.0.0的路由)?
- 默认路由是否指向正确的地址和接口?
- 是否有到目标网络的路由,是否需要添加?
- 添加的路由是否指向正确的接口?
多虚拟路由器调试
每个虚拟路由器都需要默认网关。使用 get route 命令时,要在trust - vr中查找指向untrust - vr的默认路由,同时注意来自路由协议(如OSPF和RIP)的添加路由,确保OSPF路由添加到正确的虚拟路由器。
策略检查
使用 get policy 命令确保数据包根据策略进入正确的区域,记录策略ID号以便在调试时参考。可使用 get zone trust 等命令查看区域详细信息,检查是否启用了区域内阻止功能。还可使用 get policy global 命令查看是否有全局策略影响流量,添加记录所有丢弃流量的全局区域规则有助于故障排除。
数据包通过瞻博防火墙的流程如下:
graph LR
A[数据包到达接口] --> B{是否属于现有会话}
B -- 是 --> C[从预定接口转发]
B -- 否 --> D{是否可路由}
D -- 否 --> E[丢弃数据包]
D -- 是 --> F{是否穿越区域}
F -- 否 --> G[转发到目的地并添加到会话表]
F -- 是 --> H{策略匹配}
H -- 不匹配 --> E
H -- 匹配 --> I[添加到会话表并转发]
深度检查
深度检查(DI)允许瞻博防火墙检查穿越防火墙的数据包的第7层数据。要保持DI签名更新,可配置其自动更新。但DI不能替代成熟的入侵预防系统(IPS),安全网络应是多层的,确保IPS系统监控网络的每个网段。
调试跟踪
当其他方法都失败时,可使用调试命令逐步了解防火墙的决策过程。操作步骤如下:
1. 设置流量过滤器以减少不必要的输出,如:
ns5gt - wlan-> set ff dst - ip 72.14.203.104
- 清除内存缓冲区:
ns5gt - wlan-> clear db
- 启用基本流量调试:
ns5gt - wlan-> debug flow basic
- 获取调试输出:
ns5gt - wlan-> get db str
输出示例及分析:
首先,数据包从WZone1区域的Wireless1接口接收,防火墙进行完整性检查,防止某些攻击和地址欺骗。接着显示源地址、源端口、目标地址和目标端口信息,若没有现有会话,则进行路由搜索,确定流量的目标区域。匹配策略后,确定出站接口,进行最终路由查找和ARP查找,最后将数据包发送出去。
当调试VPN流量时,输出在最后会显示流量被加密的信息。若流量未加密,可运行此命令帮助排查问题,可能是策略或路由配置问题。
NAT调试
瞻博防火墙有两种NAT类型:基于接口的NAT和基于策略的NAT - src。
| NAT类型 | 适用范围 | 配置方式 | 特点 |
| ---- | ---- | ---- | ---- |
| 基于接口的NAT | 仅适用于信任区域到非信任区域 | 通过WebUI的Network | Interfaces配置,也称为隐藏NAT | 默认情况下信任区域接口处于此模式,将数据包的源端口转换为出口接口IP地址,并更改源端口以跟踪返回流量 |
| 基于策略的NAT - src | 无区域限制 | 在WebUI的Policies部分配置 | 可使用动态IP池(DIPs),是最可配置的地址转换方式 |
可通过 get config 命令查看防火墙是否处于基于接口的NAT模式,使用 get session 和 debug log 命令排查NAT问题,使用DIP池时, get dip 命令可显示池内所有IP地址的状态。
常见的源地址转换问题有:
- 无效的DIP地址范围
- 缺少DIP池
常见的目标地址转换问题有:
- VIP(虚拟IP)未映射到正确的内部主机
- 路由在错误的区域
- 缺少入站策略
debug flow basic 命令在确定数据包穿越防火墙时的转换情况很有帮助。
VPN调试
瞻博防火墙有两种VPN类型:基于策略的VPN和基于路由的VPN。
VPN两端加密设置
两端的VPN必须共享相同的加密设置,包括:
- 阶段1密钥管理协议(如IKE)
- 阶段1加密算法(如DES、3DES、AES或CAST)
- 阶段1哈希/认证算法(如SHA1或MD5)
- 阶段1认证方式(如预共享密钥或证书)
- 阶段1模式(如MAIN或AGGRESSIVE)
- 阶段2加密算法(如DES、3DES、AES或CAST)
- 阶段2哈希/认证算法(如SHA1或MD5)
- 阶段2完美前向保密(如YES - GROUP1、YES - GROUP2、YES - GROUP5或NO)
- VPN隧道的出站接口
- 加密域
调试命令
- 阶段1问题调试命令 :
- get ike cookie :显示所有完成的阶段1协商。
- debug flow basic :启用调试。
- debug ike :启用详细的VPN调试日志,重点关注通信的阶段1。
- debug sa :开启侧重于VPN设置阶段2的调试。
- clear ike :强制VPN隧道重新协商,清除指定隧道的阶段1和阶段2。
- 阶段2问题调试命令 :
- get sa active :显示所有完成的阶段2协商。
- unset ike policy - checking :让防火墙忽略策略,允许所有路由流量通过VPN。
基于策略的VPN常见问题
- 策略顺序错误,规则库是从上到下解析的。
- 缺少反向规则,VPN策略需要允许入站和出站流量的规则。
- 选择了错误的VPN隧道,需仔细检查地址簿条目和所选的VPN隧道。
- 策略在错误的区域,确保进入VPN的流量被策略允许。
基于路由的VPN常见问题
- 没有将流量发送到隧道接口的路由。
- 有策略阻止VPN流量。需特别关注防火墙的路由表,确保策略不阻止VPN流量。
瞻博防火墙故障排除全解析(续)
数据包处理流程总结
为了更清晰地理解数据包在瞻博防火墙中的处理流程,我们可以将之前提到的步骤整理成如下表格:
| 步骤 | 操作 | 说明 |
| ---- | ---- | ---- |
| 1 | 完整性检查 | 确保数据包未损坏,利用SCREEN功能防止攻击和地址欺骗 |
| 2 | 会话查找 | 检查是否属于现有会话,若有则遵循同一会话处理方式 |
| 3 | 路由选择 | 根据路由表和区域确定数据包走向 |
| 4 | 防火墙策略检查 | 验证数据包是否符合防火墙策略 |
| 5 | ARP缓存引用 | 参考ARP缓存信息 |
| 6 | 会话创建与转发 | 若会话不存在则创建,然后转发数据包 |
网络故障排除要点回顾
在网络故障排除时,我们使用数据包嗅探器和Ping测试来初步判断问题。数据包嗅探器如Ethereal能抓取并显示网络数据包,Ping测试则用于检查防火墙与默认网关、互联网及内部资源的连通性。以下是网络故障排除的简要流程:
graph LR
A[怀疑防火墙问题] --> B[使用数据包嗅探器]
B --> C{是否有异常数据包}
C -- 是 --> D[分析异常数据包]
C -- 否 --> E[进行Ping测试]
E --> F{能否ping通目标}
F -- 是 --> G[防火墙连通性正常]
F -- 否 --> H[检查防火墙设置或网络连接]
瞻博防火墙调试深入分析
单虚拟路由器调试补充
在单虚拟路由器调试中,除了之前提到的检查路由配置问题,还可以结合 show interface 命令查看接口状态。如果接口状态异常,可能会影响数据包的转发。例如,若接口显示“down”状态,需要检查物理连接或接口配置。
多虚拟路由器调试注意事项
多虚拟路由器调试时,除了确保每个虚拟路由器有默认网关,还需要注意不同虚拟路由器之间的路由同步问题。可以使用 show vr 命令查看虚拟路由器的详细信息,包括路由表和接口配置。
策略检查的进一步操作
在策略检查时,除了使用 get policy 和 get policy global 命令,还可以使用 debug policy 命令来详细查看策略匹配的过程。例如:
ns5gt - wlan-> debug policy
该命令会输出策略匹配的详细信息,帮助我们确定数据包是否按照预期匹配到相应的策略。
深度检查的重要性及应用
深度检查(DI)是瞻博防火墙的重要功能,它能检查数据包的第7层数据。为了更好地利用DI功能,我们可以定期更新DI签名。以下是更新DI签名的步骤:
1. 登录瞻博防火墙的WebUI。
2. 导航到“Security Services” -> “Deep Inspection”。
3. 点击“Update Signatures”按钮,选择自动更新或手动更新。
调试跟踪的实际应用案例
在实际调试中,我们可以根据不同的场景设置不同的流量过滤器。例如,如果怀疑某个特定端口的流量有问题,可以设置基于端口的流量过滤器:
ns5gt - wlan-> set ff dst - port 80
然后按照之前的调试步骤进行操作,这样可以更精准地定位问题。
NAT调试的实战技巧
在调试NAT时,除了使用之前提到的命令,还可以使用 show nat session 命令查看NAT会话的详细信息。例如:
ns5gt - wlan-> show nat session
该命令会显示当前的NAT会话,包括源地址、目标地址、转换后的地址等信息,帮助我们分析NAT转换是否正常。
VPN调试的综合应用
VPN两端配置一致性检查
在调试VPN时,确保两端的VPN配置一致是关键。可以使用以下表格来对比两端的配置:
| 配置项 | 本地端 | 对端 |
| ---- | ---- | ---- |
| 阶段1密钥管理协议 | IKE | IKE |
| 阶段1加密算法 | AES | AES |
| 阶段1哈希/认证算法 | SHA1 | SHA1 |
| 阶段1认证方式 | 预共享密钥 | 预共享密钥 |
| 阶段1模式 | MAIN | MAIN |
| 阶段2加密算法 | AES | AES |
| 阶段2哈希/认证算法 | SHA1 | SHA1 |
| 阶段2完美前向保密 | YES - GROUP1 | YES - GROUP1 |
| VPN隧道的出站接口 | eth0 | eth0 |
| 加密域 | 192.168.1.0/24 | 192.168.1.0/24 |
VPN调试命令的组合使用
在调试VPN时,可以组合使用不同的调试命令。例如,当遇到阶段1协商问题时,可以先使用 get ike cookie 查看完成的阶段1协商,再使用 debug ike 启用详细的阶段1调试日志。当阶段2出现问题时,可以使用 get sa active 查看完成的阶段2协商,然后使用 debug sa 进行深入调试。
通过以上对瞻博防火墙故障排除的全面解析,我们可以更系统地处理各种网络故障。在实际应用中,需要根据具体情况灵活运用各种工具和命令,不断积累经验,以提高故障排除的效率和准确性。
超级会员免费看
518

被折叠的 条评论
为什么被折叠?



