配置内容筛选策略

要实施内容筛选,必须至少配置一个策略,告诉 Citrix ADC 设备如何区分要筛选的连接。您必须首先配置至少一个筛选操作,因为在配置策略时,您需要将其与操作关联。

内容筛选策略检查以下一个或多个元素的组合,以选择要筛选的请求或响应:

  • URL: HTTP 请求中的 URL。

  • URL 查询: 只有 URL 的查询部分,这是查询之后的部分 (?) 符号。

  • URL 令牌: 只有 URL 中的令牌(如果有),它们是以 & 符号 (&) 开头并由令牌名称组成的部分,后跟等号 (=),后跟令牌值。

  • HTTP 方法: 请求中使用的 HTTP 方法,通常是 GET 或 POST,但可以是八种定义的 HTTP 方法中的任何一种。

  • HTTP 版本: 请求中的 HTTP 版本,通常是 HTTP 1.1。

  • 标准 HTTP 标头: HTTP 1.1 规范中定义的任何标准 HTTP 标头。

  • 标准 HTTP 标头值: HTTP 标头的值部分,即冒号和空格 (:) 之后的部分。

  • 自定义 HTTP 标头: 由您的网站发布或显示在用户请求中的非标准 HTTP 标头。

  • 自定义标头值: 自定义 HTTP 标头的值部分,它(与标准 HTTP 标头一样)是冒号和空格 (:) 之后的部分。

  • 客户端源 IP: 发送客户端请求的 IP。

内容筛选策略使用简单的两种 Citrix ADC 表达式语言(称为经典表达式)。有关经典表达式的完整描述、它们的工作方式以及如何手动配置它们,请参阅策略和表达式

注意: 在 Citrix ADC 命令行配置策略方面没有经验的用户通常会发现使用配置实用程序更容易。

使用 CLI 配置内容筛选策略

在命令提示符处,键入以下命令以配置内容筛选策略并验证配置:

-  add filter policy <name> -rule <expression> (-reqAction <action> | -resAction <string>
-  show filter policy <name>

示例:

> add filter policy cf-pol -rule "REQ.HTTP.URL CONTAINS http://abc.com" -reqaction DROP
 Done
> show filter policy cf-pol
1)      Name: cf-pol    Rule: REQ.HTTP.URL CONTAINS http://abc.com
        Request action: DROP
        Response action:
        Hits: 0
 Done

使用 GUI 配置内容筛选策略

  1. 导航到“安全”>“防护功能”>“筛选器”。
  2. 导航到“保护功能”>“筛选器”。
  3. 在详细信息窗格中,要创建新策略,请单击“添加”。
  4. 如果要创建新策略,请在“创建筛选器策略”对话框的“筛选器名称”文本框中键入新策略的名称。
  5. 选择“请求操作”或“响应操作”以激活该商品右侧的下拉列表。
  6. 单击下拉列表右侧的向下箭头,然后选择要对请求或响应执行的操作。默认选项是“重置”和“删除”。您创建的任何其他操作也将显示在此列表中。 注意: 您还可以单击 “新建”以创建新的“内容筛选”操作,或单击 “修改”以修改现有“内容筛选”操作。您只能修改创建的操作;默认操作是只读的。
  7. 如果要使用预定义表达式(或命名表达式)来定义策略,请从“命名表达式”列表中选择一个。
    1. 单击第一个命名表达式下拉列表右侧的向下箭头,然后选择包含要使用的命名表达式的命名表达式类别。
    2. 单击第二个命名表达式下拉列表右侧的向下箭头,然后选择所需的命名表达式。选择命名表达式时,该命名表达式的正则表达式定义将显示在“预览表达式”窗格中的“命名表达式”列表框下方。
    3. 单击“添加表达式”以将该命名表达式添加到“表达式”列表中。 注意:您应执行此步骤或步骤 7,但不能同时执行这两个步骤。
  8. 如果要创建新表达式来定义策略,请使用表达式编辑器。
    1. 点击 添加 按钮。此时将显示“添加表达式”对话框。
    2. 在“添加表达式”对话框中,选择要筛选的连接类型。默认情况下,流程类型设置为 REQ,这会告诉 Citrix ADC 设备查看传入连接或请求。如果要筛选传出连接(响应),请单击下拉列表旁边的右箭头,然后选择 RES。
    3. 如果协议尚未设置为 HTTP,请单击协议下拉列表右侧的向下箭头,然后选择 HTTP。 注意:在 Citrix ADC 经典表达式语言中,“HTTP”也包括 HTTPS 请求。
    4. 单击“限定符”下拉列表右侧的向下箭头,然后为表达式选择一个限定符。选项包括:

      • METHOD: 请求中使用的 HTTP 方法。

      • URL: URL 标头的内容。

      • URLTOKENS: HTTP 标头中的 URL 标记。

      • VERSION: 连接的 HTTP 版本。

      • HEADER: HTTP 请求的标头部分。

      • URLLEN: URL 标头内容的长度。

      • URLQUERY: URL 标头内容的查询部分。

      • URLQUERYLEN: 查询部分的长度。 其余列表框的内容将更改为适合您选择的限定符的选项。例如,如果您选择“标题”,则标记为“标题名称 *”的文本字段将显示在“流量类型”列表框下方。

    5. 单击“运算符”下拉列表右侧的向下箭头,然后为表达式选择一个运算符。根据您在上一步中选择的协议,您的选择会有所不同。以下列表包括所有运算符:

      • ==: 完全匹配以下文本字符串。

      • !=: 与以下文本字符串不完全匹配。

      • >: 大于以下整数。

      • CONTAINS: 包含以下文本字符串。

      • CONTENTS: 指定标头、URL 或 URL 查询的内容。

      • EXISTS: 指定的标头或查询存在。

      • NOTCONTAINS: 不包含以下文本字符串。

      • NOTEXISTS: 指定的标头或查询不存在。

    6. 如果“值”文本框可见,请键入相应的字符串或数字。如果以任何方式测试字符串,请在“值”文本框中键入字符串。如果以任何方式测试整数,请在“值”文本框中键入整数。
    7. 如果选择标题作为协议,请在标题名称 * 文本框中键入所需的标题。
    8. 单击“确定”将表达式添加到“表达式”列表。
    9. 重复步骤 B 到 H,为您的配置文件创建您想要的任何其他表达式。
    10. 单击关闭以关闭表达式编辑器。
  9. 如果创建了新表达式,请在“表达式”框架中从“匹配任意表达式”下拉列表中选择一个选项。选项包括:
    • 匹配任何表达式。如果请求与“表达式”列表中的任何表达式匹配,则请求将匹配此策略。
    • 匹配所有表达式如果请求与“表达式”列表中的所有表达式匹配,则请求将匹配此策略。如果它不匹配它们,则与此策略不匹配。
    • 表格表达式将表达式列表切换为具有三列的表格格式。在第一列中,您可以放置 BEIN [(] 运算符。第二列包含已选择或创建的表达式。在第三列中,您可以将任何其他运算符放置在以下列表中,以创建复杂的策略组,其中每个组都可以配置为匹配任何表达式或匹配所有表达式。
    • AND [&&] 运算符告诉设备要求任务与当前表达式和以下表达式匹配。
    • OR [   ] 运算符告诉设备要求请求与当前表达式或以下表达式匹配,或两者匹配。只有当请求不匹配任何一个表达式时,它才会与策略不匹配。
    • END [)] 运算符告知设备这是此表达式组或策略中的最后一个表达式。 注意:“表格”格式允许您创建一个复杂的策略,其中包含“匹配任意表达式”和“匹配所有表达式”基于每个表达式。您不仅限于一个或另一个。
    • 高级自由格式完全关闭表达式编辑器并将表达式列表修改为文本区域。在文本区域中,您可以键入您选择的 PCRE 格式正则表达式来定义此策略。这是创建策略的最强大和最困难的方法,仅建议熟悉 Citrix ADC 设备和 PCRE 格式正则表达式的用户使用。 警告:如果切换到高级自由表单表达式编辑模式,则无法切换回任何其他模式。请勿选择此表达式编辑模式,除非您确定这是您想要的。
  10. 重复步骤 6 到 8,将您想要的任何其他表达式添加到“表达式”列表中。您可以混合在表达式编辑器中创建的命名表达式和表达式。对于 Citrix ADC 设备,它们都是相同的。
  11. 单击创建以创建新策略。您的新策略将显示在“策略”窗格列表中。
  12. 单击关闭。要创建其他内容筛选策略,请重复上一步骤。要删除内容筛选策略,请在策略选项卡中选择该策略,然后单击删除