使用 NetScaler GUI 进行手动配置
如果您需要手动配置 Web App Firewall 功能,Citrix 建议您使用 NetScaler GUI 程序。
创建和配置签名对象
在配置签名之前,必须从相应的默认签名对象模板创建签名对象。为副本分配一个新名称,然后配置副本。您无法直接配置或修改默认签名对象。以下过程提供有关配置签名对象的基本说明。有关更多详细说明,请参阅 手动配置签名功能。
- 导航到安全 > NetScaler Web App Firewall > 签名。
-
在详细信息窗格中,选择要用作模板的签名对象,然后单击“添加”。
选项包括:
- 默认签名。包含签名规则、SQL 注入规则和跨站点脚本编写规则。
- XPath 注入。包含默认签名中的所有项目,此外还包含 XPath 注入规则。
- 在“添加签名对象”对话框中,键入新签名对象的名称,单击“确定”,然后单击“关闭”。名称可以以字母、数字或下划线符号开头,可以由 1 到 31 个字母、数字和连字符 (-)、句点 (.) 磅 (#)、空格 ()、at (@)、等于 (=) 和下划线 (_) 符号组成。
- 选择您创建的签名对象,然后单击“打开”。
-
在“修改签名对象”对话框中,设置左侧的“显示筛选条件”选项,以显示要配置的筛选项目。
修改这些选项时,您指定的结果将显示在右侧的“筛选结果”窗口中。有关签名类别的详细信息,请参阅 签名。
- 在“筛选结果”区域中,通过选中并清除相应的复选框来配置签名的设置。
- 完成后,单击“关闭”。
使用 GUI 创建 Web App Firewall 配置文件
创建 Web App Firewall 配置文件只需要指定一些配置细节。
- 导航到安全 > NetScaler Web App Firewall > 配置文件。
- 在详细信息窗格中,单击“添加”。
-
在 创建 Web App Firewall 配置文件对话框中,键入您的配置文件的名称。
名称可以以字母、数字或下划线符号开头,可以由 1 到 31 个字母、数字以及连字符 (-)、句点 (.) 英镑 (#)、空格 ()、at (@)、等于 (=)、冒号 (:) 和下划线 (_) 符号组成。
- 从下拉列表中选择配置文件类型。
- 单击“创建”,然后单击“关闭”。
使用 GUI 配置 Web App Firewall 配置文件
- 导航到安全 > NetScaler Web App Firewall > 配置文件。
- 在详细信息窗格中,选择要配置的配置文件,然后单击 编辑。
- 在“配置 Web App Firewall 配置文件”对话框的“安全检查”选项卡上,配置安全检查。
- 要启用或禁用检查操作,请在列表中选中或清除该操作的复选框。
-
要为具有这些参数的校验配置其他参数,请在列表中单击该校验最右侧的蓝色 V 形图标。在出现的对话框中,配置参数。这些因支票而异。
您也可以选择一个校验,然后在对话框底部单击“打开”以显示该校验的“配置放宽”对话框或“配置规则”对话框。这些对话框也因选中而异。其中大多数都包含“检查”选项卡和“常规”选项卡。如果校验支持放宽或用户定义的规则,则“检查”(Checks) 选项卡将包含一个“添加”(Add) 按钮,该按钮将打开另一个对话框,您可以在其中为校验指定放宽或规则。(放宽是免除特定流量检查的规则。)如果已配置放宽,则可以选择一个放宽,然后单击“打开”进行修改。
-
要查看已知的异常或检查规则,请选择该校验,然后单击已 知的违规。在“管理学习规则”对话框中,依次选择每个学习的异常或规则。
- 要编辑例外或规则,然后将其添加到列表中,请单击“编辑和部署”。
- 要接受例外或规则而不作修改,请单击“部署”。
- 要从列表中删除例外或规则,请单击“跳过”。
- 要刷新要查看的例外或规则的列表,请单击“刷新”。
- 要打开 学习可视化工具 并使用它来查看学习到的规则,请单击“可视化工具”。
- 要查看与支票匹配的连接的日志条目,请选择该支票,然后单击“日志”。您可以使用此信息来确定哪些检查与攻击相匹配,以便对这些检查启用拦截功能。您还可以使用此信息确定哪些检查与合法流量匹配,以便您可以配置适当的豁免以允许这些合法连接。有关日志的更多信息,请参阅 日志、统计信息和报告。
- 要完全禁用检查,请在列表中清除该检查右侧的所有复选框。
- 在 设置 选项卡上,配置配置文件设置。
-
要将配置文件与您之前创建和配置的签名集相关联,请在“通用设置”下的“签名”下拉列表中选择该组签名。
注意:
您可能必须使用对话框右侧的滚动条向下滚动才能显示“常用设置”部分。
-
要配置 HTML 或 XML 错误对象,请从相应的下拉列表中选择该对象。
注意:
您必须先在“导入”窗格中上载要使用的错误对象。
-
要配置默认 XML 内容类型,请直接在“默认请求”和“默认响应”文本框中键入内容类型字符串,或单击“管理允许的内容类型”来管理允许的内容类型列表。
-
-
如果要使用学习功能,请单击“学习”,然后配置配置文件的学习设置。有关详细信息,请参阅 配置和学习功能。
- 单击“确定”保存更改并返回“配置文件”窗格。
配置 Web App Firewall 规则或放宽
您可以在此对话框中配置两种不同类型的信息,具体取决于您正在配置的安全检查。在大多数情况下,您可以为安全检查配置例外(或放宽)。如果您正在配置“拒绝 URL”检查或“字段格式”校验,则需要配置附加项(或规则)。其中任何一个的过程都是一样的。
使用 NetScaler GUI 配置放松规则
- 导航到安全 > NetScaler Web App Firewall > 配置文件。
- 在“配置文件”窗格中,选择要配置的配置文件,然后单击“编辑”。
- 在“配置 Web App Firewall 配置文件”页面中,单击“高级设置”部分中的“放松规则”。放松规则 部分包含 Web App Firewall 放松规则的完整列表。
- 单击要配置的安全规则,然后单击“编辑”。
- URL 放松规则页面包含操作列表,您可以为此规则配置这些操作以及现有放松或规则的列表。如果您既没有手动添加任何放松措施,也没有批准学习引擎推荐的任何放松措施,则列表可能为空。列表下方是一排按钮,允许您添加、修改、删除、启用或禁用列表中的放松功能。
-
要添加或修改放松或规则,请执行以下操作之一:
- 要添加新的放松方式,请单击“添加”。
- 要修改现有放松,请选择要修改的放松,然后单击“打开”。
屏幕上将显示“开始 URL 放宽规则”页面。除了标题外,这些对话框是相同的。
-
按如下所述填写对话框。每个复选框的对话框都不同。下面的列表涵盖了可能出现在任何对话框中的所有元素。
- 启用复选框-选择将此放松或规则置于活动状态;清除则将其禁用。
- 附件内容类型-XML 附件的内容类型属性。在文本区域中,输入与允许的 XML 附件的 Content-Type 属性相匹配的正则表达式。
- 操作 URL-在文本区域中,输入 PCRE 格式的正则表达式,该正则表达式定义输入到 Web 表单的数据将传送到哪个 URL。
- Cookie—在文本区域中,输入用于定义 Cookie 的 PCRE 格式正则表达式。
- 字段名称— Web 表单字段名称元素可以标记为“字段名称”、“表单字段”或其他类似名称。在文本区域中,输入 PCRE 格式的正则表达式,用于定义表单字段的名称。
- 来自原始 URL—在文本区域中,输入 PCRE 格式的正则表达式,用于定义托管 Web 表单的 URL。
- 来自操作 URL-在文本区域中,输入 PCRE 格式的正则表达式,该正则表达式定义输入到 Web 表单的数据将传送到哪个 URL。
- 名称—XML 元素或属性名称。在文本区域中,输入 PCRE 格式的正则表达式,用于定义元素或属性的名称。
- URL —URL 元素可以标记为“操作 URL”、“拒绝 URL”、“表单操作 URL”、“Form Origin URL”、“开始 URL”,也可以简单地标记为 URL。在文本区域中,输入用于定义 URL 的 PCRE 格式正则表达式。
-
格式-格式部分包含多个设置,包括列表框和文本框。可能会出现以下任何内容:
- 类型—在类型下拉列表中选择字段类型。要添加新的字段类型定义,请单击“管理—”
- 最小长度—如果要强制用户填写此字段,请键入一个正整数,该正整数表示以字符为单位的最小长度。默认值:0(允许字段留空。)
- 最大长度—要限制此字段中数据的长度,请键入一个以字符为单位表示最大长度的正整数。默认值:65535
-
位置—从下拉列表中选择您的放松所适用的请求元素。对于 HTML 安全检查,选项有:
- 表单域-Web 表单中的表单字段。
- 标头—请求标头。
- Cookie — 设置 Cookie 标题。
对于 XML 安全检查,选项有:
- 元素-XML 元素。
- 属性-XML 属性。
- 最大附件大小-XML 附件允许的最大大小(以字节为单位)。
- 注释—在文本区域中,键入注释。可选。
注意:对于任何需要正则表达式的元素,您可以键入正则表达式,使用正则表达式菜单将正则表达式元素和符号直接插入文本框,或者单击 Regex 编辑器 打开“添加正则表达式”对话框,然后使用它来构造表达式。
- 要删除放松或规则,请将其选中,然后单击“删除”。
- 要启用放松或规则,请将其选中,然后单击“启用”。
- 要禁用放松或规则,请将其选中,然后单击“禁用”。
-
要在集成交互式图形显示中配置所有现有放宽的设置和关系,请单击可视化工具,然后使用显示工具。
注意:
“可视化工具”按钮不会出现在所有选中放松对话框中。
- 要查看此检查的学习规则,请单击学习,然后执行 要配置和使用学习功能中的步骤
- 单击确定。
使用 NetScaler GUI 配置学习规则
- 导航到安全 > NetScaler Web App Firewall > 配置文件。
- 在“配置文件”窗格中,选择配置文件,然后单击“编辑”。
- 在 NetScaler Web App Firewall 配置文件 页面中,单击“从 高级 设置中 学到的规则”。在“学习规则”部分中,您可以看到当前配置文件中可用且支持学习功能的安全检查列表。
- 要配置学习阈值,请选择安全检查,然后单击“设置”。
-
在“动 态分析和学习规则设置”页中,可以设置设置。有关详细信息,请参阅 动态配置文件
-
最小数量阈值。根据您配置的安全检查的学习设置,最小数量阈值可能是指在生成学习放松之前必须观察的最小用户会话总数、必须观察的最小请求数或必须观察特定表单字段的最小次数。默认值:1
-
次数阈值的百分比。根据您正在配置的安全检查的学习设置,次数阈值的百分比可能是指违反安全检查的观察到的用户会话总数的百分比、请求的百分比或表单字段匹配特定字段类型的次数百分比,然后再执行学到的放松是产生的。默认值:0
-
- 要删除所有学习的数据并重置学习功能,使其必须从头开始重新开始观察,请选择“移除所有学习数据”操作。
注意:
此按钮仅删除尚未审核、批准或跳过的学习建议。它不会删除已被接受和部署的学习放松。
- 要将学习引擎限制为来自特定 IP 集的流量,请单击 受信任的学习客户端,然后将要使用的 IP 地址添加到列表中。
- 要将 IP 地址或 IP 地址范围添加到“受信任的学习客户端”列表中,请单击“添加”。
- 在 AppFirewall 配置文件到可信客户端绑定页面中,单击“添加”。
- 选中“启用”复选框以启用该功能。
- 在“可信学习客户端**”框中,键入 IP 地址或 CIDR 格式的 IP 地址范围。
- 在“注释”文本区域中,键入描述此 IP 地址或范围的注释。
- 单击创建和关闭。
- 要修改现有 IP 地址或范围,请单击 IP 地址或范围,然后单击“编辑”。除名称外,出现的对话框与“添加可信学习客户端”对话框相同。
- 要禁用或启用 IP 地址或范围,但将其保留在列表中,请单击 IP 地址或范围,然后根据需要单击“禁用”或“启用”。
-
要完全删除 IP 地址或范围,请单击 IP 地址或范围,然后单击“删除”。
- 单击“关闭”返回 NetScaler Web App Firewall 配置文件页面 。
使用 NetScaler GUI 创建 NetScaler Web App Firewall 策略
- 导航到“安全”>“NetScaler Web App Firewall”>“策略”。
- 在“策略”页面中,单击 NetScaler Web App Firewall 策略链接 。
- 在 NetScaler Web App Firewall 策略页面中,单击“添加”。
-
在创建 NetScaler Web App Firewall 策略页面中,设置以下参数。
- 名称。 名称可以以字母、数字或下划线符号开头,可以由一到 128 个字母、数字以及连字符 (-)、句点 (.)、英镑 (#)、空格 ()、at (@)、等于 (=)、冒号 (:) 和下划线 (_) 符号组成。
- 个人资料。从配置文件下拉列表中选择要与此策略关联的配置文件。您可以通过单击“新建”来创建与您的策略关联的配置文件,也可以通过单击“修改”来 修改现有配置文件。
- 表达式。在表达式文本区域中,为策略创建规则。
- 记录操作。添加日志操作或者您可以修改现有的日志操作。
- 评论。有关该策略的简要描述。
- 单击 Create(创建)或 OK(确定),然后单击 Close(关闭)。
创建或配置 Web App Firewall 规则(表达式)
策略规则也称为表 达式,定义 Web App Firewall 使用与策略关联的配置文件过滤的 Web 流量。与其他 NetScaler 策略规则(或 表达式)一样,Web App Firewall 规则使用 NetScaler 表达式语法。这种语法功能强大、灵活且可扩展。在这组说明中完全描述太复杂了。您可以使用以下过程创建简单的防火墙策略规则,也可以将其作为策略创建过程的概述来阅读。
-
如果您尚未这样做,请导航到 Web App Firewall 向导或 NetScaler GUI 中的相应位置以创建您的策略规则:
- 如果您在 Web App Firewall 向导中配置策略,请在导航窗格中单击 NetScaler Web App Firewall 向导,然后在详细信息窗格中单击 NetScaler Web App Firewall 向导,然后导航到“指定 规则”选项卡页面。
-
在“指定规则”页面中,从下拉列表中选择表达式的前缀。选项包括:
- HTTP。HTTP 协议。如果要检查与 HTTP 协议有关的请求的某些方面,请选择此选项。
- SYS。一个或多个受保护的网站。如果要检查请求中与请求收件人有关的某些方面,请选择此选项。
- 客户端。发送请求的计算机。如果要检查请求发件人的某些方面,请选择此选项。
- 服务器。请求发送到的计算机。如果您想检查请求收件人的某些方面,请选择此选项。
选择前缀后,Web App Firewall 将显示一个由两部分组成的提示窗口,在顶部显示可能的下一个选项,并在底部简要说明所选选择的含义。
-
选择您的下一个学期。
如果您选择 HTTP 作为前缀,则唯一的选择是 REQ,它指定了请求/响应对。(Web App Firewall 将请求和响应作为一个单元而不是单独运行。)如果您选择了另一个前缀,您的选择会更加多样化。有关特定选择的帮助,请单击该选项一次以在下方的提示窗口中显示有关该选项的信息。
当您决定想要哪个术语后,双击它将其插入到“表达式”窗口中。
-
在刚刚选择的期限之后键入一个期间。然后,系统会提示您选择下一个术语,如上一步所述。当术语要求您键入值时,请填写适当的值。例如,如果选择 HTTP.REQ.HEADER (“”),请在引号之间键入标题名称。
-
继续从提示中选择术语并填写所需的任何值,直到表达式完成。
以下是用于特定目的的表达式的一些示例。
- 特定的网络主机。要匹配来自特定 Web 主机的流量:
HTTP.REQ.HEADER("Host").EQ("shopping.example.com")
对于 shopping.example.com,替换您想要匹配的虚拟主机的名称。
- 特定的 Web 文件夹或目录。要匹配来自 Web 主机上特定文件夹或目录的流量:
HTTP.REQ.URL.STARTSWITH("https//www.example.com/folder")
对于 www.example.com,请替换网络主机的名称。对于文件夹,将文件夹或路径替换为要匹配的内容。例如,如果您的购物车位于名为 /解决方案/订单的文件夹中,则可以将该字符串替换文件夹。
- 特定类型的内容:GIF 图片。要匹配 GIF 格式的图像:
HTTP.REQ.URL.ENDSWITH(".gif")
要匹配其他格式图像,请替换另一个字符串代替 .gif。
- 特定类型的内容:脚本。要匹配位于 CGI-BIN 目录中的所有 CGI 脚本:
HTTP.REQ.URL.STARTSWITH("https//www.example.com/CGI-BIN")
要将所有 JavaScript 与 .js 扩展名匹配,请执行以下操作:
HTTP.REQ.URL.ENDSWITH(".js")
有关创建策略表达式的详细信息,请参阅 策略和表达式。
注意:
如果您使用命令行配置策略,请记住避开 NetScaler 表达式中的任何双引号。例如,如果在 GUI 中输入以下表达式是正确的:
HTTP.REQ.HEADER("Host").EQ("shopping.example.com")
但是,如果在命令行输入,则必须改为键入以下内容:
HTTP.REQ.HEADER("Host").EQ("shopping.example.com")
![Policy expression configuration](/en-us/citrix-adc/media/waf-rule.png)
使用添加表达式对话框添加防火墙规则(表达式)
添加表达式 对话框(也称为表达式编辑器)可帮助不熟悉 NetScaler 表达式语言的用户构建与他们想要筛选的流量相匹配的策略。
- 如果您尚未这样做,请导航到 Web App Firewall 向导或 NetScaler GUI 中的相应位置:
- 如果您要在 Web App Firewall 向导中配置策略,请在导航窗格中单击 Web App Firewall,在详细信息窗格中单击 Web App Firewall 向导,然后导航到“指定规则”屏幕。
- 如果要手动配置策略,请在导航窗格中,依次展开 Web App Firewall、策略和防火墙。在详细信息窗格中,要创建策略,请单击 添加。要修改现有策略,请选择该策略,然后单击 打开。
- 在 指定规则 屏幕、 创建 Web App Firewall 配置文件 对话框或 配置 Web App Firewall 配置文件 对话框中,单击 添加。
- 在“添加表达式”对话框的“构造表达式”区域的第一个列表框中,选择以下前缀之一:
- HTTP。HTTP 协议。如果要检查与 HTTP 协议有关的请求的某些方面,请选择此选项。默认选择。
- SYS。一个或多个受保护的网站。如果要检查请求中与请求收件人有关的某些方面,请选择此选项。
- 客户端。发送请求的计算机。如果要检查请求发件人的某些方面,请选择此选项。
- 服务器。请求发送到的计算机。如果您想检查请求收件人的某些方面,请选择此选项。
- 在第二个列表框中,选择下一个学期。根据您在上一步中所做的选择,可用术语的不同,因为对话框会自动调整列表,以便仅包含对上下文有效的术语。例如,如果您在上一个列表框中选择了 HTTP,则对于请求,唯一的选择是 REQ。由于 Web App Firewall 将请求和关联的响应视为单个单元并对其进行过滤,因此您无需单独进行特定响应。选择第二个学期后,第二个学期的右侧将显示第三个列表框。“帮助”窗口显示第二个术语的说明, 预览表达式 窗口将显示您的表达式。
- 在第三个列表框中,选择下一个术语。右侧将显示一个新的列表框,“帮助”窗口将发生变化以显示新术语的描述。“预览表达式”窗口将更新以按照您指定的表达式显示该表达式。
- 继续选择术语,并在系统提示填写参数时,直到表达式完成。如果您犯了错误或想在选择术语后更改表达式,您可以简单地选择另一个术语。表达式已修改,并且您在修改的术语之后添加的所有参数或更多术语都将被清除。
- 构建完表达式后,单击“确定”关 闭“添加表达式”对话框。您的表达式将插入到 表达式 文本区域。
使用 NetScaler GUI 绑定 Web App Firewall 策略
- 执行以下操作之一:
- 导航到 安全 > Web App Firewall,然后在详细信息窗格中单击应用程序策略管理器。
- 导航到“安全”>“NetScaler Web App Firewall”>“策略”>“防火墙”,然后在“NetScaler Web App Firewall 策略”窗格中,单击“策略管理器”。
- 在 应用程序防火墙策略管理器 对话框中,从下拉列表中选择要将策略绑定到的绑定点。选项有:
- 覆盖全局。绑定到此绑定点的策略会处理来自 NetScaler 设备上所有接口的所有流量,并在任何其他策略之前应用。
- LB 虚拟服务器。绑定到负载平衡虚拟服务器的策略仅应用于该负载平衡虚拟服务器处理的流量,并在任何默认全局策略之前应用。选择 LB Virtual Server 后,还必须选择要将此策略绑定到的特定负载平衡虚拟服务器。
- CS 虚拟服务器。绑定到内容交换虚拟服务器的策略仅应用于该内容交换虚拟服务器处理的流量,并在任何默认全局策略之前应用。选择 CS Virtual Server 后,还必须选择要将此策略绑定到的特定内容交换虚拟服务器。
- 默认全局。绑定到此绑定点的策略会处理来自 NetScaler 设备上所有接口的所有流量。
- 策略标签。绑定到策略标签的策略会处理策略标签路由给他们的流量。策略标签控制策略应用于此流量的顺序。
- 无。不要将策略绑定到任何绑定点。
- 单击继续。将显示现有 Web App Firewall 策略的列表。
- 单击要绑定的策略,将其选中。
- 对装订进行任何其他调整。
- 要修改策略优先级,请单击字段将其启用,然后键入新的优先级。您也可以选择“重新生成优先级”以均 匀地重新编号优先级。
- 要修改策略表达式,请双击该字段打开“配置 Web App Firewall 策略”对话框,可以在其中编辑策略表达式。
- 要设置 Goto 表达式,请双击 Goto 表达式 列标题中的字段以显示下拉列表,您可以在其中选择表达式。
- 要设置调用选项,请双击“调用”列标题中的字段以显示下拉列表,您可以在其中选择表达式。
- 重复步骤 3 到 6,添加您想要全局绑定的任何其他 Web App Firewall 策略。
- 单击确定。状态栏中将显示一条消息,指出该策略已成功绑定。