Coraza WAF
简单来说,Coraza WAF 是一个由 OWASP(开放 Web 软件安全项目)维护的开源、高性能 Web 应用程序防火墙(WAF)引擎。
由于你最近在折腾 Lucky 反代,你可能会在 Lucky 的设置或者相关的网络安全讨论中看到它。
1. 它到底是做什么的?
如果说你家路由器的防火墙是“大门保安”(只管端口开没开),那么 Coraza WAF 就是“安检员”。
它会扫描进入你家网络(比如访问你的 Home Assistant 或飞牛)的每一条 HTTP 流量。如果流量里夹杂着恶意代码,Coraza 会直接把它拦下。
- 防御 SQL 注入:防止黑客通过输入框探测你的数据库。
- 防御 XSS 攻击:防止恶意脚本在你访问页面时运行。
- 扫描恶意爬虫:自动识别并封禁那些扫你端口的机器人。
2. 为什么它现在很火?(对比 ModSecurity)
在 Coraza 出现之前,全世界最流行的 WAF 是 ModSecurity。但 ModSecurity 比较老旧,且主要针对 Apache 服务器。
- 现代语言(Go)编写:Coraza 是用 Go 语言写的(和你用的 Lucky 一样),所以它运行速度极快,内存占用很低,非常适合跑在路由器或 NAS 这种设备上。
- 完全兼容:它 100% 支持 ModSecurity 的规则语法(SecLang),可以无缝加载工业级的 OWASP Core Rule Set (CRS) 规则库。
3. 在你的 Lucky 环境中如何使用?
Lucky 内置了对 Coraza WAF 的支持(通常是通过插件或特定的 WAF 管理模块)。
- 它的位置:它位于你的域名和内网服务(HA/飞牛)之间。
用户请求 阿里云解析 你的服务
- 核心优势:因为你现在是“直连”模式(不用 CF 代理),你失去了 CF 提供的云端防护。在 Lucky 里开启 Coraza WAF,就相当于在你家门口自己装了一套高性能的安检系统,弥补了直连带来的安全隐患。
4. 优缺点对比
| 性能 | 极高,几乎不影响你访问 NAS 的速度。 | 规则加载过多时会占用一定 CPU。 |
| 安全 | 防护等级非常专业,能防住针对漏洞的攻击。 | 配置不当时,可能会把正常的访问当成攻击(误杀)。 |
| 成本 | 完全开源免费。 | 需要学习简单的规则配置。 |
在 Lucky 中使用 Coraza WAF,本质上是给你的反向代理规则加了一层“实时安检”。由于 Lucky 已经高度集成了这个功能,你不需要写复杂的代码,只需要按步骤开启即可。
以下是针对你当前 “直连 + Lucky” 环境的操作指南:
第一步:在 Lucky 中启用 WAF 模块
- 登录 Lucky 后台。
- 在左侧菜单栏找到 “安全管理” 或直接进入 “反向代理” 页面。
- 点击你已经配好的规则(比如
fn.raythalis.cn或ha.raythalis.cn)后面的 “编辑”。 - 在弹出的窗口中向下滚动,找到 “Web 应用防火墙 (WAF)” 开关并打开。
第二步:配置规则集 (Rule Sets)
WAF 只是一个引擎,它需要“规则”才知道什么是坏人。Coraza 最强大的地方在于支持 OWASP CRS (核心规则集)。
- 加载内置规则:Lucky 通常会内置几个开关(如:SQL 注入防护、XSS 防护、本地文件包含防护)。
- 设置动作:
- 建议初期选择:
Log Only (仅记录)。这样即使触发了规则,它也只是在日志里提醒你,不会真的拦截。等运行一两天发现没有误报,再改为Deny (拒绝)。
- 建议初期选择:
- 敏感度:初次使用建议设为 中或低。设置太高可能会导致你正常上传大文件或同步照片时被当成“异常流量”拦截。
第三步:针对具体服务进行微调
不同的服务对 WAF 的敏感度不同:
- Home Assistant (HA):由于 HA 频繁使用 WebSocket 且有大量的 POST 请求,WAF 规则如果太严,可能会导致手机 APP 连接断断续续。如果发现 APP 报错,尝试在 WAF 设置里将 HA 的 IP 或域名加入 白名单。
- 飞牛 (fnOS):视频流传输通常不会触发 WAF,但如果你在外面登录管理页面,WAF 可以有效拦截针对登录接口的“暴力破解”。
🛡️ 为什么直连模式下“它”很重要?
因为你现在是 直连,没有 Cloudflare 的云端防火墙挡在前面。黑客可以通过自动化工具(如 sqlmap 或 nmap)直接扫描你的域名。
- 没有 WAF:攻击报文直接到达飞牛或 HA。如果这些软件本身有漏洞(如未授权访问),你家里的数据就危险了。
- 开启 WAF (Coraza):攻击报文在 Lucky 这一层就会被匹配出特征,直接丢弃,根本摸不到后面的服务。
⚠️ 注意事项(避坑指南)
- 性能消耗:每开启一条规则,Lucky 都会对每个请求进行扫描。如果你的运行设备是老旧路由器,开启全部规则可能会导致网速变慢。建议只开启“SQL注入”和“XSS防护”这两项最核心的。
- 误杀排查:如果开启后发现飞牛打不开了,第一时间去看 Lucky 的 “运行日志”。如果看到类似
WAF Intercepted...的字样,说明是误杀。 - 上传限制:有些 WAF 规则会限制请求体的大小。如果你发现大文件传不上去,检查 WAF 设置里的
RequestBodyLimit(请求体限制)。
从你发来的截图看,你已经成功开启了 Lucky 中的 CorazaWAF 实例,并且正在配置 OWASP 核心规则集 (CRS)。这步操作非常棒,直接给你的直连环境装上了“防弹衣”。
看到那一长串 .conf 文件了吗?它们代表了不同维度的防御。针对你的家庭场景,我建议按以下逻辑来操作:
1. 核心规则建议(不要全部无脑开启)
虽然你勾选了“全选”,但我建议先重点关注以下几类关键规则,以防拦截太严导致你自己也打不开网页:
- REQUEST-941-APPLICATION-ATTACK-XSS.conf:防止跨站脚本攻击(黑客在你的登录框里输入代码)。
- REQUEST-942-APPLICATION-ATTACK-SQLI.conf:防止 SQL 注入(这是针对数据库最常见的攻击)。
- REQUEST-930-APPLICATION-ATTACK-LFI.conf:防止本地文件包含攻击(防止别人偷看你 NAS 里的系统文件)。
- RESPONSE-951/952/953-DATA-LEAKAGES-xxx.conf:防止敏感信息泄露(如果你的服务器报错,它会拦截包含数据库信息的错误页面,不让外人看到)。
2. 实战配置步骤
既然你已经勾选了这些规则,接下来的关键是**“应用到反向代理”**:
- 保存 WAF 实例:点击右下角的“修改实例”或“保存”。
- 关联反代规则:
- 回到 Lucky 的 “反向代理” 菜单。
- 找到你的
ha.raythalis.cn或fn.raythalis.cn的规则,点击“编辑”。 - 在规则设置里,找到 “WAF 实例” 选项,选择你刚才创建的这个名为
base的实例。 - 保存反代规则。
3. 特别注意:如何防止“误杀”?
由于 Home Assistant (HA) 和飞牛在正常使用时也会发送很多复杂的 API 请求,WAF 有时会误以为是攻击。
- 观察日志:点击截图上方那个黄色的 “日志” 按钮。如果你发现自己登录不上了,日志里会显示是哪条规则(比如
941xxx)拦截了你的 IP。 - 白名单设置:如果你发现某条规则总是拦截你的正常操作,可以在 WAF 实例里把那条特定的规则删掉,或者在 Lucky 的“IP 地址库”里把你的常用办公 IP 设为白名单。
🛡️ 现在的防御等级
配置完这一步后,你的家庭网络安全已经超过了 90% 的普通用户:
- HTTPS 加密(防止嗅探)
- 直连高速(无 CF 延迟)
- WAF 实时审计(防止黑客漏洞利用)