1. WAF 规则

介绍

WAF (Web Application Firewall) 规则用于控制进入域名的流量,通过基于 IP 地址、User-Agent、请求 URL 等条件筛选请求,以提高网站安全性并防御攻击。

本文将会介绍 WAF 规则管理的相关操作,包括规则创建、筛选、日志查看和规则配置。

1. WAF 规则概述

主要功能

① WAF 规则列表

在 WAF 规则页面,用户可以查看、筛选和管理已配置的 WAF 规则。

② 规则筛选与搜索

用户可以通过筛选条件快速查找特定的 WAF 规则。

  • 群组:选择规则所属的域名群组。

  • 规则名称:输入规则名称进行精确搜索。

  • 模糊搜索:开启后可输入部分关键字进行匹配。

  • 高级搜索:支持按详细过滤条件规则内容进行筛选。

③ 查看 WAF 规则日志

点击 [查看] 按钮,可检视该 WAF 规则的历史记录。

选项
说明

提交时间

规则变更的时间

用户名

执行规则操作的用户

操作名称

变更的操作类型 (如 createWafRule、editWafRule)

变更数据

规则的修改详情日志

查看 WAF 规则被应用次数

点击右方 [] 按钮,将 [使用状况] 点选并打勾,您将会看到每一条 WAF 的使用状况,可以得知该条 WAF 被套用在多少个回源应用上。

2. 如何创建或编辑 WAF 规则

① 特征 (选填)

在此步骤,用户可以指定规则匹配的条件。

栏位
说明

来源 IP

请依照“A.B.C.D/netmask”格式输入“IP、或是一整组网段”。如果有多个 IP、网段,请按“回车”键切换至下一行后,输入其他 IP。

请求 URI

请以正则表达式输入“URI”。如果有多个 URI,请按“回车”键切换至下一行后,输入其他 URI。

请求表头

请输入“请求表头”以对具有特定表头的请求采取行动。

Request Headers Not Exist

请输入“必须显示的”的请求表头,通常与“动作:Deny”并用,如果设置在 Deny,未携带此表头的就会遭禁止访问。

来源国家

欲选择请求的来源国家时,请单击该栏位,并从下拉列表中选择国家。或者,您可以单击”选择所有国家,单击”反转选择已选的国家,或单”删除所有已选国家。

线路商

输入线路商名称,对来自特定线路商的请求采取动作。例如:您可以将使用特定线路商的请求重新导向到不同的域名以进行流量分配。单击此处arrow-up-right可查询线路商名称。

Proxy Type

欲针对特定代理服务器 IP 类型的请求采取行动时,请单击该栏位,并从 IP2Proxy™数据库列表中进行选择。

请求方法

欲对指定 http 请求方法采取行动,请单击该栏位,并从列表中选择方法。也可以单击”选择所有方法,单击”反转选择已选方法,或单击”删除所有已选方法。

请求速率

欲检测请求速率异常的请求并对其采取行动,请输入速率值(点击数/秒),例如:每秒 200 个请求,请输入“200/1”。

Proxy Type IP 类型说明

选项
说明

VPN

虚拟专用网络 (Virtual Private Network) 流量

TOR

来自 Tor 网络的出口节点

DCH

数据中心 (Data Center Hosting)

PUB

开放式代理伺服器 (Public Proxy)

WEB

网页代理伺服器

SES

搜索引擎蜘蛛

② Exclusion (选填)

用户可选择排除特定 IP、URI 或请求表头,使其不受当前规则限制。

例如,用户可以设定一个阻挡所有来自美国的 IP 地址,但如果有特定的需求 (如某些美国的 IP 地址或特定 URI),用户可以在这里填写并排除这些请求,使其不会受到“deny”规则的影响。

栏位
说明

Not Source IP

欲从 WAF 规则的定义中排除指定的来源 IP,请输入想要排除的来源 IP,例如:A.B.C.D/netmask。如果有多个 IP,请按“回车”键切换至下一行后,输入其他 IP。

Not Request URI

欲从 WAF 规则的定义中排除指定的请求 URI,请以正则表达式输入“URI”。如果有多个 URI,请按“回车”键切换至下一行后,输入新 URI。

Not Request Headers

欲从 WAF 规则的定义中排除指定的请求表头,请输入“请求表头”以对具有特定表头的请求采取行动。

③ 基础设置

选项
说明

群组

选择规则适用的域名群组

规则名称

规则的唯一标识名称

动作

规则匹配后执行的操作 [1][2]

敘述

规则的简要说明

[1] WAF 规则可选动作

动作
说明

Allow (允许)

允许与指定条件匹配的请求,例如:特定的 IP、URI、请求表头、国家/地区等。

Deny (阻挡)

拒绝与指定条件匹配的请求,例如:特定的 IP、URI、请求表头、国家/地区等。[4]

Speed Limit (限速)

当请求与指定条件(情况)匹配时,如“请求速率”等条件,内容的加载速度会变慢,以防止恶意攻击。

Block Period (阻挡时间)

当请求与指定条件匹配时,会被阻挡一段时间并显示“拒绝页面”以避免可能的攻击。通常与“请求速率”条件并用。

Cookie/JS challenge (Cookie/Javascript 有效性验证)

当请求与指定条件匹配时,通过向可疑的最终用户发送挑战 JavaScript 响应,以验证对方是否使用合法浏览器。当发送给最终用户的挑战 JavaScript 被执行时,伴随着 cookie 生成,原始 HTTP 请求带有 JavaScript 生成的 cookie 时,请求会被重新发送。

Gesture Challenge (图形验证)

当请求与指定条件匹配时,通过向最终用户发送图形验证,以判定请求是否来自真实的客户端。当最终用户成功回答收到的图片验证时,请求将被允许。

Smart Captcha (图形验证)

当请求与指定条件匹配时,通过向最终用户发送 Smart Captcha,以判定请求是否来自真实的客户端。当最终用户成功回答收到的图片验证时,请求将被允许。

Set Request Headers (设定请求表头)

设置从 CDN 边缘到源站的请求表头,可获取最终用户信息,例如,使用 $rip 获取客户端 IP。

Set Response Headers (设定回应表头)

设置从 CDN 边缘到最终用户的响应表头。特别适合使用 CORS 的场景,例如,access-control-allow-origin:mydomain.com。

Log Only (行为记录)

记录与指定条件匹配的请求,以观察是否为可疑攻击。匹配的请求将记录在域名管理下的“事件概览”中。

Origin Policy (回源政策)

当请求与指定条件匹配时,可于专案套用“回源策略”。通过适当的布局,此设置可以让您观测可能的攻击。

Redirect (重新导向)

当请求与指定条件匹配时,将请求重新导向,达到隐私保护与导航等目的。

Custom Page (自定义页面)

当请求与指定条件匹配时,向最终用户显示自定义页面。[4]

[2]与动作搭配的栏位

栏位
说明
相关动作

阻挡页面

与“动作:Deny”和“动作:Block Period”并用,向被 Deny 或 Block Period 的请求端显示 html 页面。[5]

Deny, Block Period

触发 Period 阻挡

与“动作:Deny”并用,可以在某一访问者 (以 IP 为依据),多次触发该 Deny 规则发后改成阻挡該 IP 一段时间才放行。

Deny

触发 Period 阻挡頻率

与“选项:触发 Period 阻挡”并用,用以指定触发阻挡条件的频率,例如 200/1 就是一秒钟触发该条件 200 次以上才会进到 Period 阻挡。

Deny

在阻挡时间内,限制来源 IP 访问群组域名

在封锁期间,所有与应用此 WAF 规则的域名属于同一组的域名将阻止该请求者的 IP 地址访问。

Deny, Block Period

限速

与“动作:Speed Limit”并用,降低内容的加载速度。请输入每秒流量(KB/S)值以限制速度。

Speed Limit

阻挡时间

与“动作:Block Period”、“选项:触发 Period 阻挡”并用,阻挡请求一段时间并显示阻挡页面,以 IP 为依据。选择阻挡页面后,请输入阻挡时间(以秒为单位)。

Deny, Block Period

群组设定

与“动作:Block Period”、“选项:触发 Period 阻挡”并用,开启后该 IP 只要触发任一条域名的 Period 阻挡规则,接下来的阻挡时间内都不能够访问您在这个群组内的所有域名。

Deny, Block Period

设定请求表头

与“动作:Set Request Headers”并用,以获取最终用户的信息。请根据您的策略,输入请求表头。[1][3]

Set Request Headers

设定回应表头

与“动作:Set Response Headers”并用,例如可用以满足 CORS 需求的场景。请根据您的策略,输入回应表头。[2][3]

Set Response Headers

跳转 Url

与“动作:Redirect”并用,将与指定条件匹配的请求重新导向到不同的 URL。请输入要重新导向到的 URL。[3]

Redirect

跳转 Http 码

与“动作:Redirect”并用,将与指定条件匹配的请求重新导向到不同的 URL。请输入重新导向的 Http 码。[3]

Redirect

HTML 页面

与“动作:Custom Page”并用,向匹配的请求显示此页面。请从已建立的 HTML 页面列表中选择 HTML 页面。[5]

Custom Page

叙述

为 WAF 规则添加叙述。

Optional

[1] 以下参数不能够透过填写 Set Request Headers 进行变更

"x-forwarded-for", "x-forwarded-proto", "true-client-ip", "rid" "c-type", "host", "connection", "if-modified-since", "if-unmodified-since", "if-match", "if-none-match", "user-agent", "referer", "content-length", "content-range", "content-type", "range", "if-range", "transfer-encoding", "te", "expect", "upgrade", "accept-encoding", "via", "authorization", "keep-alive", "x-real-ip", "accept", "accept-language", "depth", "destination", "overwrite", "date", "cookie"

[2] 以下参数不能够透过填写 Set Response Headers 进行变更

"Status", "Content-Type", "Content-Length", "Date", "Last-Modified", "ETag", "Server", "WWW-Authenticate", "Location", "Refresh", "Set-Cookie", "Content-Disposition", "Cache-Control", "Expires", "Accept-Ranges", "Content-Range", "Connection", "Keep-Alive", "Vary", "Link", "X-Accel-Expires", "X-Accel-Redirect", "X-Accel-Limit-Rate", "X-Accel-Buffering", "X-Accel-Charset", "Transfer-Encoding", "Content-Encoding"

[3] 跳转 URL、请求 URI、请求表头的变数

变数
说明

$host

domain

$rootdomain

root domain

$request_uri

uri after domain

$rip

user IP

$dstport

requested port

$scheme

user protocol http or https

[4] Deny 与 Custom Page 的差异

两者之间差异在于 Deny 会在页面上显示错误信息 (rid、时间轴、日期、IP、错误 http 码等等),Custom Page 则不会显示这些,此外 Deny 用户会收到 403 状态码,Custom Page 则是 200 状态码。

[5] 请从已建立的 HTML 页面列表中选择 HTML 页面

详情请查看 HTML 页面。

3. 管理 WAF 规则

在 WAF 规则列表页面,用户可以对现有规则进行管理,点击编辑按钮 [] 可调整已经设定好的 WAF 规则,修改规则的匹配条件或执行动作等,点击更多选项 [] 可进行另存为、删除。

选项
说明

编辑

编辑已存在的 WAF 规则,提醒 : 规则名称无法被更改,如果您要更改规则名称请使用[另存为] 的选项并改成您要的名称后储存。

另存为

当用户需要创建一个类似配置的 WAF 时规则,可以复制现有的设置修改另存以创建新规则。

删除

移除不再需要的 WAF 规则。[1]

[1] 删除前请先确认是否被套用于回源应用内

只有没有被套用于回源应用内的 WAF 规则可以被删除。

Last updated