简介
本文是一系列文章的一部分,这些文章说明如何系统地排除Firepower系统上的数据路径故障,以确定Firepower的组件是否可能影响流量。有关Firepower平台架构的信息以及指向其他数据路径故障排除文章的链接,请参阅概述文章。
本文介绍Firepower数据路径故障排除的第五阶段,即安全套接字层(SSL)策略功能。
先决条件
- 本文中的信息适用于任何Firepower平台
- 带FirePOWER服务(SFR模块)的自适应安全设备(ASA)的SSL解密仅在6.0+中提供
- 客户端呼叫修改功能仅在6.1+中可用
- 验证是否已为所有规则(包括“默认操作”)启用日志记录
- 选中Undecryptable Actions选项卡,查看是否将任何选项设置为阻止流量
- 在连接事件中,当您处于连接事件的表视图中时,启用名称中带有“SSL”的所有字段
SSL策略阶段故障排除
可以执行特定步骤,以帮助了解SSL策略可能丢弃预期允许的流量的原因。
检查连接事件中的SSL字段
如果怀疑SSL策略导致流量问题,首先要检查的是启用所有SSL字段后的Connection Events部分(在Analysis > Connections > Events下),如上所述。
如果SSL策略阻止流量,则“原因”字段显示“SSL阻止”。 “SSL流错误”列包含有关阻止发生原因的有用信息。其他SSL字段包含有关Firepower在流中检测到的SSL数据的信息。
在为SSL策略创建案例时,可向思科技术支持中心(TAC)提供此数据。为了轻松导出此信息,可以使用右上角的报表设计器按钮。
如果从“连接事件”部分单击此按钮,过滤器和时间窗口选项将自动复制到报告模板。
确保在“字段”部分添加所有提及的SSL字段。
单击“生成”以创建PDF或CSV格式的报告。
调试SSL策略
如果连接事件中没有包含有关流的足够信息,则可以在Firepower命令行界面(CLI)上运行SSL调试。
注意:以下所有调试内容均基于x86架构上软件中发生的SSL解密。此内容不包括来自6.2.3版和2.3版中添加的SSL硬件卸载功能的调试,这些功能不同。
注意:在Firepower 9300和4100平台上,可通过以下命令访问相关外壳:
# connect module 1 console
Firepower-module1> connect ftd
>
对于多实例,可使用以下命令访问逻辑设备CLI。
# connect module 1 telnet
Firepower-module1> connect ftd ftd1
正在连接到容器ftd(ftd1)控制台……输入“exit”以返回引导CLI
>
系统支持ssl-debug debug_policy_all命令可以运行,以生成SSL策略处理的每个流的调试信息。
警告:在运行SSL调试之前和之后,必须重新启动snort进程,这可能会导致一些数据包被丢弃,具体取决于使用的snort-down策略和部署。TCP流量将被重新传输,但如果通过防火墙的应用不允许最小丢包,UDP流量可能会受到负面影响。
警告:使用system support ssl-debug-reset命令收集必要数据后,不要忘记关闭调试功能。
将为Firepower设备上运行的每个snort进程编写一个文件。文件的位置将是:
- /var/common(适用于非FTD平台)
- /ngfw/var/common(适用于FTD平台)
这些是调试日志中的一些有用字段。
注意:如果在Firepower开始解密后出现解密错误,则必须丢弃流量,因为防火墙已修改/中间会话,所以客户端和服务器无法恢复通信,因为它们具有不同的TCP堆栈以及在流中使用的不同加密密钥。
使用本文中的说明,可以从>提示符中从Firepower设备复制调试文件。
或者,在Firepower版本6.2.0及更高版本中,FMC上也有一个选项。要访问FMC上的此UI实用程序,请导航至“设备”>“设备管理”。然后,单击 图标,然后是高级故障排除>文件下载。然后,可以输入有关文件的名称,然后点击Download。
生成解密的数据包捕获
可以为Firepower解密的会话收集未加密的数据包捕获。命令是system support debug-DAQ debug_daq_write_pcap
警告:在生成解密的数据包捕获之前,必须重新启动Snort进程,这可能导致一些数据包被丢弃。TCP流量等有状态协议会重新传输,但UDP等其他流量可能会受到负面影响。
警告:在将解密的PCAP捕获提交到TAC之前,建议过滤并限制捕获文件到有问题的流中,以免不必要地泄露任何敏感数据。
查找客户端问候修改(CHMod)
还可以评估数据包捕获,以查看是否正在进行任何客户端hello修改。
左侧的数据包捕获描述了原始客户端hello。右侧显示的是服务器端数据包。请注意,扩展主密钥已通过Firepower中的CHMod功能删除。
确保客户信任辞职CA以进行解密/辞职
对于具有“解密 — 重新签名”(Decrypt - Resign)操作的SSL策略规则,请确保客户端主机信任用作辞职CA的证书颁发机构(CA)。最终用户不应表明他们是防火墙的中间人。他们应信任签名CA。这通常通过Active Directory(AD)组策略实施,但取决于公司策略和AD基础设施。
有关详细信息,请查看以下文章,其中概述了如何创建SSL策略。
缓解步骤
可以执行一些基本的缓解步骤,以便:
- 重新配置SSL策略以不解密某些流量
- 从客户端Hello数据包中删除某些数据,以便解密成功
添加不解密(DnD)规则
在以下示例场景中,已确定通过SSL策略检查时发往google.com的流量正在中断。根据服务器证书中的公用名(CN)添加规则,以便不解密流向google.com的流量。
保存和部署策略后,可以再次执行上述故障排除步骤,以查看Firepower对流量执行的操作。
客户端Hello修改调整
在某些情况下,故障排除可能表明Firepower在解密特定流量时遇到问题。系统支持ssl-client-hello-tuning实用程序可在CLI上运行,以使Firepower从客户端hello数据包中删除某些数据。
在以下示例中,添加了配置,以删除某些TLS扩展。通过搜索有关TLS扩展和标准的信息来找到数字ID。
警告:在客户端hello修改更改生效之前,必须重新启动snort进程,这可能导致一些数据包被丢弃。TCP流量等有状态协议会重新传输,但UDP等其他流量可能会受到负面影响。
要恢复对客户端hello修改设置所做的任何更改,可以实施system support ssl-client-hello-reset命令。
向TAC提供的数据
下一步
如果已确定SSL策略组件不是问题的原因,则下一步是排除活动身份验证功能故障。
单击此处继续下一篇文章。