对于 Horizon 部署的 HTTP/HTTPS 流量,NSX Advanced Load Balancer 支持 WAF。主协议 (XML/API) 流量的 L7 虚拟服务支持 WAF 规则。

注:
  • 建议使用 System-WAF-Policy-VDI,并且建议使用默认 CRS 规则。不需要用于响应检查的其他规则,并且不得在 CRS 规则中启用这些签名或规则。

  • 必须添加 WAF 策略以及包含 /ice/tunnel//ice/reconnect 的允许 URI,以确保 WAF 功能与 Horizon 应用程序无缝协作。同样,允许其他与 /ice/ 相关的 URI(如果有)。最佳做法是允许所有以 /ice 开头的 URI。

  • 使用以下命令添加 CRS 之前的规则,如下所示。需要使用此规则确保 NSX Advanced Load Balancer 仅将入站负载解析为 XML 负载。

    SecRule REQUEST_METHOD "@streq POST" "phase:1,id:4099822,t:none,nolog,pass,chain"
    SecRule REQUEST_URI "@streq /broker/xml" "t:none,ctl:requestBodyProcessor=XML"
  • 建议停用命令注入规则 (932105)。Horizon 部署不需要此规则。

  • 不得启用基于响应的规则。

  • 必须停用缺失的用户代理规则。建议停用命令注入规则 (932105)。

  • NSX Advanced Load Balancer 支持 VDI 的内置 WAF 策略,即 System-WAF-Policy-VDI。这包括所有必需的规则自定义。建议使用 System-WAF-Policy-VDI。

建议

对于 21.1.3 之前的版本,为 VDI 流量创建 WAF 策略时需要考虑以下几点:

  • 建议使用默认 CRS 规则。不需要用于响应检查的其他规则,并且不得在 CRS 规则中启用这些签名或规则。

  • 必须添加 WAF 策略以及包含 /ice/tunnel/ 和 /ice/reconnect 的允许 URI,以确保 WAF 功能与 Horizon 应用程序无缝协作。同样,允许其他与 /ice/ 相关的 URI(如果有)。最佳做法是允许所有以 /ice 开头的 URI。

  • 使用以下命令添加 CRS 之前的规则,如下所示:

    • SecRule REQUEST_METHOD “@streq POST” “phase:1,id:4099822,t:none,nolog,pass,chain”

    • SecRule REQUEST_URI “@streq /broker/xml” “t:none,ctl:requestBodyProcessor=XML”

  • 不得启用基于响应的规则。

  • 必须停用缺失的用户代理规则。

  • 建议停用命令注入规则 (932105)。

创建 L7 虚拟服务(或使用现有虚拟服务),并按照下面提到的步骤进行操作:

  1. 创建 WAF 配置文件

    1. 导航到模板 > WAF > WAF 配置文件。单击创建以创建新的配置文件。提供所需的名称,并将其余字段保留为默认值。

  2. 创建 WAF 策略。

    1. 导航到模板 > WAF > WAF 策略。选择在上一步中创建的 WAF 配置文件。也可以使用默认配置文件。

  3. 添加允许列表规则

    1. 此允许列表可确保 WAF 不会阻止具有包含 /ice/tunnel 的 URI 的请求。这是一个必需步骤。

    2. 选择允许列表选项卡,单击添加规则

    3. 提供以下属性:

      1. 条件包含

      2. 字符串值/ice/tunnel/

      3. 操作允许

    4. 要允许所有以 /ice 开头的 URI,请通过指定以下内容在匹配部分下创建规则:

      1. 条件开头为

        字符串值/ice

    5. 同样,您可以为 /ice/reconnect 创建另一个允许列表规则。

    6. 要添加 CRS 之前的规则,请单击保存,然后单击签名选项卡 > 添加 CRS 之前的规则

  4. 与所需的虚拟服务关联

    1. WAF 配置文件准备就绪后,导航到应用程序 > 虚拟服务

    2. 选择所需的 L7 虚拟服务,关联在上一步中创建的 WAF 策略并保存配置。