Citrix ADC

绑定 Web App Firewall 策略

配置 Web App Firewall 策略后,将其绑定到全局或绑定点以使其生效。绑定后,与 Web App Firewall 策略相匹配的任何请求或响应将由与该策略关联的配置文件进行转换。

绑定策略时,您将为其分配优先级。优先级决定了您定义的策略的评估顺序。您可以将优先级设置为任何正整数。在 Citrix ADC 操作系统中,策略优先级的工作顺序相反-数值越高,优先级越低。

由于 Web App Firewall 功能仅实现请求匹配的第一个策略,而不实现它可能也匹配的任何其他策略,因此策略优先级对于实现您想要的结果非常重要。如果您将第一个策略赋予较低优先级(例如 1000),则将 Web App Firewall 配置为仅在优先级较高的其他策略与请求不匹配时执行该策略。如果将第一个策略赋予高优先级(例如 1),则可以将 Web App Firewall 配置为首先执行该策略,并跳过可能匹配的任何其他策略。您可以在绑定策略时为每个策略之间的间隔设置 50 或 100 的优先级,以便按任意顺序添加其他策略,而无需重新分配优先级。

有关 Citrix ADC 设备上绑定策略的更多信息,请参阅 “策略和表达式。“

使用命令行界面绑定 Web App Firewall 策略

在命令提示符下,键入以下命令:

  • bind appfw global <policyName>
  • bind appfw profile <profile_name> -crossSiteScripting data

示例

以下示例绑定名为 pl-blog 的策略,并为其分配优先级 10。

bind appfw global pl-blog 10
save ns config

配置日志表达式

发生冲突时,绑定 Web App Firewall 的日志表达式支持将添加到日志 HTTP 标头信息中。

日志表达式绑定在应用程序配置文件中,绑定包含在发生冲突时需要评估并发送到日志记录框架的表达式。

将记录带有 http 标头信息的 Web App Firewall 冲突日志记录。您可以指定自定义日志表达式,并且在为当前流(请求/响应)生成冲突时有助于分析和诊断。

示例配置

bind appfw profile <profile> -logexpression <string> <expression>
add policy expression headers "" HEADERS(100):"+HTTP.REQ.FULL_HEADER"
add policy expression body_100 ""BODY:"+HTTP.REQ.BODY(100)"
bind appfw profile test -logExpression log_body body_100
bind appfw profile test -logExpression log_headers  headers
bind appfw profile test -logExpression ""URL:"+HTTP.REQ.URL+" IP:"+CLIENT.IP.SRC"

示例日志

Dec 8 16:55:33 <local0.info> 10.87.222.145 CEF:0|Citrix|NetScaler|NS12.1|APPFW|APPFW_LOGEXPRESSION|6|src=10.217.222.128 spt=26409 method=POST request=http://10.217.222.44/test/credit.html msg= HEADERS(100):POST /test/credit.html HTTP/1.1^M User-Agent: curl/7.24.0 (amd64-portbld-freebsd8.4) libcurl/7.24.0 OpenSSL/0.9.8y zlib/1.2.3^M Host: 10.217.222.44^M Accept: /^M Content-Length: 33^M Content-Type: application/x-www-form-urlencoded^M ^M  cn1=58 cn2=174 cs1=test cs2=PPE1 cs4=ALERT cs5=2017 act=not blocked
Dec 8 16:55:33 <local0.info> 10.87.222.145 CEF:0|Citrix|NetScaler|NS12.1|APPFW|APPFW_LOGEXPRESSION|6|src=10.217.222.128 spt=26409 method=POST request=http://10.217.222.44/test/credit.html msg=BODY:ata=asdadasdasdasdddddddddddddddd cn1=59 cn2=174 cs1=test cs2=PPE1 cs4=ALERT cs5=2017 act=not blocked
Dec 8 16:55:33 <local0.info> 10.87.222.145 CEF:0|Citrix|NetScaler|NS12.1|APPFW|APPFW_LOGEXPRESSION|6|src=10.217.222.128 spt=26409 method=POST request=http://10.217.222.44/test/credit.html msg=URL:/test/credit.html IP:10.217.222.128 cn1=60 cn2=174 cs1=test cs2=PPE1 cs4=ALERT cs5=2017 act=not blocked
Other violation logs
Dec 8 16:55:33 <local0.info> 10.87.222.145 CEF:0|Citrix|NetScaler|NS12.1|APPFW|APPFW_STARTURL|6|src=10.217.222.128 spt=26409 method=POST request=http://10.217.222.44/test/credit.html msg=Disallow Illegal URL. cn1=61 cn2=174 cs1=test cs2=PPE1 cs4=ALERT cs5=2017 act=not blocked
Dec 8 16:55:33 <local0.info> 10.87.222.145 CEF:0|Citrix|NetScaler|NS12.1|APPFW|APPFW_SAFECOMMERCE|6|src=10.217.222.128 spt=26409 method=POST request=http://10.217.222.44/test/credit.html msg=Maximum number of potential credit card numbers seen cn1=62 cn2=174 cs1=test cs2=PPE1 cs4=ALERT cs5=2017 act=not blocked

注意

  1. 只有审核日志支持可用。将在未来的版本中添加对日志流和安全洞察中可见性的支持。

  2. 如果生成了审核日志,则每条日志消息只能生成 1024 字节的数据。

  3. 如果使用日志流,则限制基于日志流 /ipfix 协议大小限制支持的最大大小。日志流的最大支持大小大于 1024 字节。

使用 GUI 绑定 Web App Firewall 策略

  1. 执行以下操作之一:
    • 导航到安全 > Web App Firewall,然后在详细信息窗格中单击“Web App Firewall”策略管理器。
    • 导航到安全 > Web App Firewall > 略”>防火墙策 略”,然后在详细信息窗格中单击策略管理器
  2. Web App Firewall 策略管理器对话框中,从下拉列表中选择要将策略绑定到的绑定点。这些选择是:
    • 覆盖全局。绑定到此绑定点的策略处理来自 Citrix ADC 设备上所有接口的所有流量,并在任何其他策略之前应用。
    • LB 虚拟服务器。绑定到负载平衡虚拟服务器的策略仅应用于由负载平衡虚拟服务器处理的流量,并在任何默认全局策略之前应用。选择 LB 虚拟服务器后,还必须选择要绑定此策略的特定负载平衡虚拟服务器。
    • CS 虚拟服务器。绑定到内容交换虚拟服务器的策略仅应用于由该内容交换虚拟服务器处理的流量,并在任何“默认全局”策略之前应用。选择 CS 虚拟服务器后,还必须选择要绑定此策略的特定内容切换虚拟服务器。
    • 默认全局。绑定到此绑定点的策略处理来自 Citrix ADC 设备上所有接口的所有流量。
    • 策略标签。绑定到策略标签的策略处理策略标签路由到它们的流量。策略标签控制策略应用于此流量的顺序。
    • 没有。请勿将策略绑定到任何绑定点。
  3. 单击继续。此时将显示现有 Web App Firewall 策略的列表。
  4. 单击要绑定的策略,选择该策略。
  5. 对绑定进行任何其他调整。
    • 要修改策略优先级,请单击字段以启用它,然后键入新的优先级。也可以选择“重新生成优先级”以均匀地重新编号优先级。
    • 要修改策略表达式,请双击该字段以打开配置 Web App Firewall 策略对话框,您可以在其中编辑策略表达式。
    • 要设置转到表达式,请双击转到表达式列标题中的 字段 以显示下拉列表,您可以在其中选择一个表达式。
    • 要设置 Invoke 选项,请在 Invoke 列标题中双击字段以显示下拉列表,您可以在其中选择一个表达式
  6. 重复步骤 3 到 6 以添加要全局绑定的任何其他 Web App Firewall 策略。
  7. 单击确定。状态栏中将显示一条消息,指出该策略已成功绑定。

绑定 Web App Firewall 策略