上下文感知防火墙可增强应用程序级别的可见性,并帮助消除应用程序渗透性问题。应用程序层面的可见性有助于您更好地从资源、合规性和安全性的角度来监控工作负载。

防火墙规则不能使用应用程序 ID。上下文感知防火墙可识别应用程序并对东西向流量强制实施微分段,而这一过程与应用程序所使用的端口无关。上下文感知或基于应用程序的防火墙规则可以通过定义第 7 层服务对象来定义。在定义规则中的第 7 层服务对象后,可以通过特定的协议、端口及其应用程序定义来定义规则。规则定义可基于 5 个以上的元组。您还可以使用应用程序规则管理器来创建上下文感知防火墙规则。

NSX Data Center for vSphere 6.4 开始,支持上下文感知防火墙。

必须将受 NSX Data Center for vSphere 管理的现有基础架构中的所有主机群集升级到 NSX Data Center for vSphere 6.4.0 或更高版本。

防火墙的类型

防火墙会在数据移过 TCP/IP 模型的每一层时,根据数据中添加的 L2、L3、L4 和 L7 数据包标头之一或这些不同标头的组合采取操作。

在第 3 层或第 4 层防火墙中,仅根据源/目标 IP、端口和协议采取操作。此外,还会跟踪网络连接活动。这种类型的防火墙称为有状态防火墙。

第 7 层或上下文感知防火墙可以执行第 3 层和第 4 层防火墙执行的每项操作。此外,它还可以智能地检查数据包的内容。例如,可以写入第 7 层防火墙规则,以拒绝来自特定 IP 地址的所有 HTTP 请求。

规则定义和数据包捕获

您可以为上下文感知防火墙创建包含 5 个以上元组的规则。还可以持续添加所需数量的元组来创建正确的规则。仅支持协议和用户属性,您的每个规则可以具有用户或协议属性。这些属性可以位于标准的 SRC/DEST 字段中,也可以在末尾添加以作为额外属性。

以下规则中有 7 个元组:

目标 服务 方向 操作 属性
location-set-1 Iport-set-1 HTTPS INOUT 允许 TLS-V10
图 1. 上下文感知防火墙中的数据包处理

在为虚拟机配置上下文感知防火墙后,也必须将分布式深度数据包检查 (Deep Packet Inspection, DPI) 属性与 5 个元组相匹配。在此阶段,会再次对规则进行处理和验证,并找到正确的规则。根据定义的操作,将会创建或丢弃流量。

下面介绍了如何对入站数据包处理规则:

  1. 在数据包进入 DFW 筛选器后,将基于 5 元组在流量表中查找数据包。
  2. 如果找不到任何流量/状态,则会基于 5 元组将流量与规则表相匹配,并且会在流量表中创建一个条目。
  3. 如果流量与具有第 7 层服务对象的规则匹配,则流量表状态会被标记为“DPI 正在进行中”
  4. 之后,流量会被推送到 DPI 引擎。DPI 引擎将确定 APP_ID。
  5. 在确定 APP_ID 后,DPI 引擎会向下发送已插入到此流量上下文表中的属性。“DPI 正在进行中”标记将被移除,并且流量不再被推送到 DPI 引擎。
  6. 流量(现在具有 APP-ID)将针对匹配 APP_ID 的所有规则重新进行评估,该过程从基于 5 元组匹配的原始规则开始,并确保不会优先考虑任何匹配的 L4 规则。将会执行适当的操作(允许/拒绝),并相应地更新流量表条目。

可以具有与 L3 或 L4 规则完全相似的上下文感知防火墙规则,而并不真正定义上下文。如果是这样的话,可能要执行验证步骤来应用上下文,其中可能含有更多属性。

上下文感知防火墙工作流