如果更新了 CRS 版本,所有新的 CRS 规则将处于检测模式。在该模式下,您可以更新 CRS 规则集,而不会在生产中产生任何风险。不过,必须手动将这些新规则更改为实施模式(或使用策略模式)。
仅当您具有适用于云服务的 NSX Advanced Load Balancer Enterprise 许可证时,此功能才可用。
对于 ENTERPRISE_WITH_CLOUD_SERVICES 层中的控制器设置,WAF 特征码服务会自动将新规则推送到已启用此服务的控制器。
对于没有此设置的控制器,您可以选择在新规则可用时接收包含下载链接的通知。下载后,可以手动将规则上载到 NSX Advanced Load Balancer 控制器。
所有更新的规则将继续保持相同的模式,现有的例外将应用于这些规则。
要更新 CRS 规则,请执行以下操作:
导航到
。单击 WAF 策略的编辑图标。
在特征码选项卡下,向下滚动到 CRS 规则部分。
注:重置覆盖按钮可将所有规则模式更改重置回继承的模式。在 CRS 更新后,当新规则通过测试并且现在可以成为 WAF 策略模式的一部分时,该按钮非常有用。
从下拉菜单中选择所需的 CRS 版本。
此时将显示更改日志,如下所示。单击确定以确认并更新 CRS 版本。
WAF 处理的最后一步是特征码检查。可以在特征选项卡下面配置 CRS。您可以配置为在 CRS 之前(CRS 之前的规则)或在 CRS 之后(CRS 之后的规则)执行自定义规则。
使用异常检测等功能时,必须启用 CRS 组 CRS_901_Initialization,否则所需的异常阈值不会配置为默认值。通常建议保持该组处于启用状态。
自动更新 CRS 规则
从 NSX Advanced Load Balancer 22.1.3 开始,支持自动更新 CRS 规则。在 NSX Advanced Load Balancer 中引入了以下两个用于自动更新 CRS 的复选框。
启用 CRS 自动更新 - CLI 的对应标记为 auto_update_crs。
在检测模式下启用所有新规则 - CLI 的对应标记为 updated_crs_rules_in_detection_mode。
启用 CRS 自动更新
如果选中启用 CRS 自动更新选项,系统会将此策略中使用的 CRS 版本保持为最新。如果在控制器上有较新的 CRS 对象可用,系统将启动该 WAF 策略的 CRS 升级过程。如果将当前 CRS 版本设置为 CRS-VERSION-NOT-APPLICABLE,则不会更新策略。启用 CRS 自动更新复选框位于 下面,如下所示。
![](images/GUID-EE48D10E-0096-4070-B158-EE94FC7F321A-low.png)
您可以登录 NSX Advanced Load Balancer 控制器,然后使用 show wafpolicy <policy name>
命令检查 auto_update_crs 标记的状态。
[admin:controller]: > show wafpolicy Test-1 | grep crs | waf_crs_ref | CRS-2022-2 | | auto_update_crs | False | | updated_crs_rules_in_detection_mode | True | [admin:controller]: >
在检测模式下启用所有新规则
更新 CRS 时,默认情况下将在“检测”模式下添加新规则。从 NSX Advanced Load Balancer 22.1.3 开始,仅当策略处于“实施”模式时,CRS 更新才会以不同的方式处理新规则。
在这种情况下,更新将通过为新规则添加 CRS 覆盖,将新规则设置为“检测”模式。如果未设置 updated_crs_rules_in_detection_mode 标记或策略模式为“检测”,则将添加不含新 CRS 覆盖的规则。此标记将用于 auto_update_crs (CLI) 和基于 Ul 的 CRS 更新工作流。
在检测模式下启用所有新规则位于 下面,如启用 CRS 自动更新部分中的屏幕截图所示。
您可以登录 NSX Advanced Load Balancer 控制器,然后使用 show wafpolicy <policy name>
命令检查 updated_crs_rules_in_detection_mode 标记的状态。
[admin:controller]: > show wafpolicy Test-1 | grep crs | waf_crs_ref | CRS-2022-2 | | auto_update_crs | False | | updated_crs_rules_in_detection_mode | True | [admin:controller]: >