您可以通过定义第 7 层服务对象来配置上下文感知或基于应用程序的防火墙规则。第 7 层上下文感知防火墙规则可以智能地检查数据包的内容。

本示例介绍了使用 APP_HTTP 服务对象创建第 7 层防火墙规则的流程。此防火墙规则允许从虚拟机到任何目标的 HTTP 请求。创建防火墙规则后,您将在传递此防火墙规则的源虚拟机上启动一些 HTTP 会话,并在源虚拟机的特定 vNIC 上打开流量监控。防火墙规则检测 HTTP 应用程序上下文,并在源虚拟机上强制执行该规则。

前提条件

您必须使用以下任何一个 NSX 角色帐户登录到 vSphere Web Client
  • 安全管理员
  • NSX 管理员
  • 安全工程师
  • 企业管理员
注: 确保安装了 NSX Data Center for vSphere 6.4 或更高版本。

过程

  1. vSphere Web Client 中,导航到网络和安全 (Networking & Security) > 安全 (Security) > 防火墙 (Firewall)
  2. (可选) 添加防火墙规则区域以对上下文防火墙规则进行分组。
  3. 单击添加规则 (Add Rule)
  4. 创建上下文感知防火墙规则。
    1. 输入用来标识规则的规则名称。例如,输入 L7_Rule_HTTP_Service
    2. 在“源”列中,单击编辑 (Edit) (HTML5 中的编辑图标。)图标。
      此时将打开“指定源”页面。
    3. 对象类型 (Object Type)下拉菜单中,选择虚拟机 (Virtual Machine)
    4. 可用对象 (Available Objects)列表中,选择虚拟机。将此对象移动到选定的对象 (Selected Objects)列表中,然后单击保存 (Save)
    5. 在“目标”列中,保留默认值为“任意”。
    6. 在“服务”列中,单击编辑 (Edit) (HTML5 中的编辑图标。)图标。
      此时将打开“指定服务”页面。
    7. 对象类型 (Object Type)下拉菜单中,选择服务 (Services)
    8. 可用对象 (Available Objects)列表中,选择 App_HTTP 服务。将此服务移动到选定的对象 (Selected Objects)列表中,然后单击保存 (Save)
    9. 确保启用了防火墙规则,并且将规则操作设置为允许 (Allow)
    10. 单击发布 (Publish)以发布防火墙规则配置。
    下图显示了您创建的防火墙规则。
    图 1. 上下文感知防火墙规则定义
    该图显示了上下文感知防火墙规则定义。
  5. 登录到源虚拟机的控制台,并启动 wget Linux 命令以使用 HTTP 从 Web 下载文件。
  6. 在源虚拟机的 vNIC 上,打开实时流量监控以监控源虚拟机上的流量。
    1. 导航到工具 (Tools) > 流量监控 (Flow Monitoring)
    2. 选择源虚拟机上的特定 vNIC。例如,选择 l2vpn-client-vm-Network adapter 1
    3. 单击启动 (Start)以查看流量监控数据。
  7. 在下图中,流量监控数据显示了防火墙规则已检测到应用程序 (HTTP) 上下文。在源虚拟机 (10.161.117.238) 上强制执行规则 1005,并且流量流向了目标 IP 地址 151.101.129.67 和 151.101.53.67。
    图 2. 源虚拟机上的流量
    该图显示了将规则操作设置为“允许”时源虚拟机 vNIC 上的流量。
  8. 返回到“防火墙”页面,并将规则操作更改为阻止 (Block)
  9. 转到源虚拟机的控制台,并再次运行 wget 命令。
    可以观察到,现在源虚拟机上阻止了 HTTP 请求。您应该会在虚拟机控制台中看到一个错误,该错误的内容如下所示:
    HTTP request sent, awaiting response ... Read error (Connection reset by peer) in headers
    Retrying.
    下图显示了在源虚拟机 (10.161.117.238) 的 vNIC 上检测到并被阻止的应用程序 (HTTP) 上下文流量。
    图 3. 源虚拟机上的流量
    将上下文相关规则操作设置为“阻止”时源虚拟机 vNIC 上的流量。

后续步骤

要了解您可以使用上下文感知防火墙规则的其他场景,请参见上下文感知防火墙场景