JavaScript is required
帮助文档

WAF防护

Fastdun v6 的 WAF(Web 应用防火墙)在节点上通过 OpenResty + 自研检测引擎实现,可防御 SQL 注入、XSS、命令注入、文件上传等常见 Web 攻击,并支持自定义规则库和在线订阅更新。

WAF 相关的配置分三处:

1.jpg

网站级 WAF 防护

在网站编辑的"WAF防护"选项卡中配置,实际执行顺序为:放行规则 → 规则库防护 → 内置模块防护

  • 2.jpg
  • 站点 WAF 总开关 - 关闭后该站点跳过放行规则、规则库防护和内置模块防护,配置保留。开启需要网站所用套餐具有 WAF 防护权限,否则提示"当前网站使用的套餐没有WAF防护权限"
  • WAF 攻击自动封禁 - 统计内置模块、自定义规则和 N-day 规则的实际拦截,同一 IP 在统计窗口(默认 60 秒)内达到命中阈值(默认 20 次)后,自动临时封禁该 IP(默认 600 秒)
  • 内置模块防护 - 10 个检测模块,每个可单独设为 禁用 / 仅观察 / 防护(默认全部防护,可批量配置): SQL 注入检测、XSS 检测、文件上传检测、文件包含检测、命令注入检测、JAVA 代码注入检测、JAVA 反序列化检测、PHP 代码注入检测、PHP 反序列化检测、SSTI 模板注入检测。 "仅观察"只记录不拦截,可用于先观察误报情况再决定是否开启防护

规则库防护与放行规则

"WAF防护"选项卡下方是规则库防护和放行规则两个区域:

3.jpg


  • 规则库防护 - 把"WAF规则"页创建的规则库应用到本站。左侧"可添加规则库"选择规则库点"应用",右侧"当前生效规则库"显示已生效的规则库,可添加多个并拖动调整顺序,靠前的先执行
  • 放行规则 - 命中后跳过后续所有 WAF 检测(内置模块和规则库都不再检查),用于处理业务误报。放行规则的条件写法与自定义规则相同,例如大文件上传接口可按"路径URI 前缀匹配 /upload/"放行

典型用法:先在"WAF规则"页建好规则库(如下文的"拦截后台路径"),再到各网站的"规则库防护"中按需应用,实现一处维护、多站复用。

全局 WAF 规则库

进入"网站管理 → WAF规则",管理可复用的规则库。如图:

4.jpg

点击"新增规则库"创建规则库:

  • 5.jpg
  • 名称 / 备注 - 规则库名称与说明
  • 范围 - "用户"仅指定用户可用;"全局"(仅管理员可建)所有用户可用
  • 订阅更新 - 全局规则库可开启订阅:填写订阅地址(返回 JSON 格式的规则,最大 8 MB)和更新间隔(5–10080 分钟,默认 360 分钟),系统按周期自动拉取更新;也可在列表页点"立即更新订阅"手动触发
  • 系统预置规则库 - 安装时自带"已知漏洞防护"(N-day)规则库,默认从官方源在线更新,无需手工维护

规则库内每条规则的组成:

  • 执行动作 - 直接放行 / 观察记录 / 防护处理;防护处理可自定义响应:返回 403、返回 404、返回 444 或 301/302/307 跳转
  • 匹配条件组 - 同一条件组内的条件为"且"关系,不同条件组之间为"或"关系
  • 匹配项 - 支持客户端IP、Host、请求协议、请求方法、完整URI、路径URI、请求头、请求参数、Cookie、请求Body、国家/地区码、省份、城市、运营商、ASN、TLS指纹、日期、时间、星期等
  • 操作符 - 等于/不等于、包含/不包含、前缀/后缀匹配、正则匹配/正则不匹配、存在/不存在、大于/小于、在列表中、在IP段等(按字段类型不同)
  • 转换 - 匹配前可对取值做 小写、URL解码、长度计算 等转换

数量限制:手动规则每库最多 50 条,订阅规则最多 5000 条;每条规则最多 10 个条件组、每组最多 10 个条件。

规则编辑器

在规则库中新增/编辑规则时打开规则编辑器,依次设置规则名称、执行动作和匹配条件组:

6.jpg

执行动作三选一:

a3.jpg

条件按"组"组织:同一条件组内多个条件为"且"关系,不同条件组之间为"或"关系。每条匹配条件由四部分组成:

  • 匹配项 - 分三类:
    • 请求类:Host、请求协议、请求方法、完整URI、路径URI、请求头、请求参数、Cookie、请求Body
    • 客户端类:客户端IP、国家/地区码、省份、城市、运营商、ASN、TLS指纹
    • 时间类:日期、时间、星期(按节点本地时间匹配,适合"工作时间才允许访问后台"这类场景)
  • 操作符 - 等于/不等于、包含/不包含、前缀匹配、后缀匹配、正则匹配/正则不匹配、存在/不存在、大于/小于、在列表中、在IP段等(按匹配项类型提供)
  • 转换 - 匹配前对取值做预处理:小写、URL解码、长度计算。例如匹配 Body 前先"URL解码",可避免攻击者用编码绕过
  • 匹配值 - 期望值;请求头/请求参数/Cookie 类匹配项还需填写字段名(如请求头 User-Agent

实用示例

示例一:拦截直接访问后台路径

新增规则,执行动作选"防护处理 → 返回 403",条件:

a4.png

如需放行公司出口 IP,可在同一规则中再加一个条件组(组间为"或"):第一组保持上述条件,再建一条"直接放行"规则置于其上,条件为"客户端IP 在IP段 203.0.113.0/24"。

示例二:放行 API 接口避免误拦

JSON API 的复杂参数容易被 SQL 注入模块误判。到网站编辑 → WAF防护 → 放行规则,新增放行规则:

a5.png

命中后该接口完全跳过 WAF 检测。

订阅规则格式

订阅地址需返回如下 JSON(可参考官方 N-day 库):

ScreenShot_2026-08-26_180942_206.png

要点:action 取值 pass(放行)/observe(观察)/protect(防护);matcher_groups 数组内各组为"或",组内 matcher 数组各条件为"且";整个响应不能超过 8 MB、规则不超过 5000 条。

WAF 全局配置

进入"全局配置 → 防火墙配置 → WAF全局配置"选项卡:

  • 7.jpg
  • WAF 防护开关 - 全局默认状态,"区域及节点配置"选项卡可按区域或节点单独反向覆盖
  • 单次请求处理上限 - 控制 WAF 检查单个请求的范围,避免复杂或恶意请求占用过多节点资源;请求超过任一限制会被直接拦截(返回 403)。数值越大能处理的请求越复杂,但 CPU 和内存消耗也越高。可点"恢复推荐值"还原:
  • a2.jpg


注意:开启 WAF 后,网站"高级设置"里的上传大小限制仍受"单次请求扫描大小"约束,大文件接口请到"WAF防护 → 放行规则"按请求路径单独放行。

区域及节点覆盖

"防火墙配置 → 区域及节点配置"选项卡可按区域或单个节点覆盖全局 CC/WAF 运行参数:

8.jpg

点"新增设置"选择覆盖范围(某区域或某节点),再勾选要覆盖的配置项(如 WAF 防护开关、单次请求处理上限)并填入新值。典型场景:

  • 个别节点配置较低,调小"单次请求扫描大小"等资源上限,避免 WAF 占用过多 CPU
  • 某区域需要临时关闭 WAF 排查问题,只对该区域覆盖关闭,不影响其他区域

未覆盖的配置项仍跟随全局配置。

套餐权限

套餐中有"WAF防护"权限开关(套餐管理 → 编辑套餐)。网站开启 WAF 总开关或攻击自动封禁时校验该权限;套餐关闭 WAF 权限时,系统会自动关闭该套餐下用户站点的 WAF 总开关。

拦截与日志

  • 内置模块或自动封禁拦截:返回 403,展示"WAF拦截页面"
  • 自定义规则拦截:按规则配置返回 403/404/444 或跳转

自定义拦截页面

进入"全局配置 → 错误页面",在"错误页面选择"中点"WAF拦截页面",可修改拦截时展示给访客的 HTML(留空则使用默认页面):

9.jpg

默认页面已包含拦截原因提示和请求标识,可在其基础上加公司品牌信息或申诉联系方式。同一页面的"区域及节点配置"选项卡也可按区域/节点使用不同的拦截页面。

WAF 日志

进入"统计分析 → WAF日志"。"安全概览"展示攻击总数、拦截次数、观察次数、自动封禁次数、独立客户端 IP 数,以及攻击趋势图和攻击类型分布:

10.jpg

"日志明细"列出每条拦截/观察记录,可按域名查询,也可点"高级搜索"按客户端 IP、URI、攻击类型等组合过滤:

11.jpg

日志明细字段说明:

啊.jpg

误报处理流程

业务正常请求被拦(如富文本提交、大文件上传)时,按以下步骤处理,避免直接关闭 WAF:

  1. 到"统计分析 → WAF日志 → 日志明细"按域名和时间找到该条记录,确认"模块"和"命中内容",判断是哪个模块/规则误判了什么内容
  2. 若命中的是自定义规则库,把对应规则改为"观察记录"或调整条件;若命中的是内置模块,可在网站编辑 → WAF防护 把该模块临时改为"仅观察"验证
  3. 确认无误后,优先用"放行规则"按最小范围放行(如只放行特定路径),而不是整站关闭模块;确属模块误判且影响面大的,再考虑将该模块长期设为"仅观察"

验证 WAF 是否生效

把内置模块保持默认"防护",对站点发起一个带 SQL 注入特征的测试请求:

curl -I "https://你的域名/?id=1'%20union%20select%201,2,3--"

WAF 正常工作时返回 403 并展示拦截页面,同时"WAF日志 → 日志明细"新增一条模块为"SQL 注入检测"的拦截记录;返回 200 则说明 WAF 未开启或该路径已被放行。

常见问题

开启 WAF 后大文件上传被拦(403) 上传内容会占用"单次请求扫描大小"(默认 16 MB),超限直接 403。处理方式:到网站编辑 → WAF防护 → 放行规则,按路径放行上传接口(推荐);或在"防火墙配置 → WAF全局配置"调大"单次请求扫描大小"(会增加节点 CPU/内存消耗)。

全站所有请求都返回 403 依次检查:网站编辑 → WAF防护 的总开关与放行规则是否配置错误(如放行条件写反);是否触发了"攻击自动封禁"(用其他 IP 访问对比);"WAF全局配置"的资源上限是否被调得过小导致正常请求超限。

订阅规则库没有更新 在"WAF规则"列表点该规则库的"立即更新订阅"手动触发并观察提示;检查节点到订阅地址的网络连通性(响应需为上述 JSON 格式、不超过 8 MB);更新间隔最短 5 分钟,频繁修改间隔不会立即生效。

套餐调整 WAF 权限后站点表现异常 套餐关闭"WAF防护"权限时,系统会自动关闭该套餐下所有站点的 WAF 总开关,重新开启权限后需要到各站点手动打开。

本篇对您有帮助吗?