蓝易云CDN:使用开源免费WAF防火墙,接入保护你的网站

开源免费WAF:自己搭一道防线,能做到什么程度 🔧

不是所有站点都需要花钱买商业 WAF。个人博客、内部系统、中小型业务站,用开源方案配合 CDN,一样能把常见攻击挡在门外。前提是你得知道每种方案的脾气,以及它们各自管不了什么。

几个真正能用的开源方案 📦

ModSecurity + OWASP CRS

这是最经典的组合。ModSecurity 是跨平台的 Web 应用防火墙引擎,2024 年由 Trustwave 捐赠给 OWASP 基金会维护,支持 Nginx、Apache、IIS。引擎本身不带任何规则,真正干活的是 OWASP 核心规则集(CRS),目前主线是 4.x 分支,独立在 coreruleset 项目下维护。

CRS 的机制值得了解:它不是命中一条就拦,而是异常评分。每条规则命中加分,累计超过阈值才触发动作。配合 4 个偏执等级(PL1–PL4),等级越高检测越严,误报也越多。生产环境一般从 PL1 起步。

Coraza

用 Go 重写的 WAF 库,同属 OWASP 项目,兼容 SecLang 规则语法,可以直接跑 CRS。好处是没有 C 库依赖,编译部署省心,能嵌进 Caddy,也能通过 SPOA 方式接 HAProxy。对于不想折腾 Nginx 动态模块编译的人,这条路更顺。

Naxsi

Nginx 模块,思路和上面两个不同——它不维护庞大的攻击特征库,而是对请求里的可疑字符打分,再用白名单排除正常业务。规则量小、性能开销低,代价是需要先跑学习模式积累白名单,冷启动麻烦一点。

雷池 SafeLine

国内团队做的,社区版免费,Docker 一键部署,带 Web 管理界面。检测引擎走语义分析而不是纯正则匹配,对变形绕过的抵抗力比传统规则库好一些,中文文档也省心。适合不想啃配置文件的人。

CrowdSec

严格说不算 WAF,它靠分析日志识别恶意行为,再通过各种 bouncer 执行封禁,并且把社区共享的恶意 IP 情报拉下来用。适合和上面任意一款搭配,负责"把反复作案的 IP 长期关在门外"这一层。

部署在哪一层,决定了它的上限 ⚖️

嵌入式(ModSecurity 编译进 Nginx):和业务共用一台机器,链路最短,但 WAF 消耗的 CPU 直接吃业务的份额。攻击量一大,两边一起卡。

独立反代(SafeLine、单独一台 Nginx+Coraza):WAF 单独一台机器,前面接流量后面转源站。资源隔离干净,可以横向扩,但多一跳延迟,也多一个故障点——记得做健康检查和降级方案。

边缘防护(CDN 节点侧):拦截发生在离用户最近的地方,恶意请求根本不进你的机房。

三种不冲突,实际生产里常见的是边缘做粗筛,源站前置一层开源 WAF 做细粒度规则,互为补充。

接入 CDN 后最容易踩的坑:真实 IP ⚠️

这个坑几乎人人都踩过一次。

流量走 CDN 之后,到达源站的 TCP 连接源地址是节点 IP,不是访客 IP。如果 WAF 没做处理,它看到的所有请求都来自那几十个节点地址。后果有两个:

一是频率限制完全失效——正常用户的请求被算到同一个"IP"头上,阈值秒破;二是一旦触发封禁,等于把整个 CDN 节点拉黑,那个节点覆盖范围内的所有用户全部访问不了。

Nginx 侧的处理方式是配置 set_real_ip_from 指定信任的回源网段,real_ip_header 指定取 X-Forwarded-ForX-Real-IP,多层代理再开 real_ip_recursive信任网段一定要写具体范围,不能图省事写 0.0.0.0/0,否则任何人伪造一个 XFF 头就能冒充任意 IP,绕过你所有的黑名单。

蓝易云CDN 接入时按同样思路处理:确认回源携带的真实 IP 字段名,在源站 WAF 里正确取值,再把安全组限制成只放行节点回源,配合自定义 Header 做回源鉴权,链路才算闭合。

误报怎么调 🩹

开源 WAF 上线第一周基本都在处理误杀。几条实操经验:

先跑检测模式,只记录不拦截,把正常业务的请求形态摸清楚。富文本编辑器提交的 HTML、带特殊符号的密码、JSON 里的长字符串,这些是误报重灾区。

确认无误之后,用排除规则针对具体路径和参数放行,比如某个接口的某个字段跳过特定规则 ID。别图省事直接调低整体等级,那等于把门全开了。

日志一定要留,并且定期翻。被拦的请求里既能看出新的攻击方向,也能捞出被冤枉的正常用户。

开源 WAF 管不了的两件事 🚫

流量型 DDoS。 几十 G 的 SYN Flood 打过来,带宽先被塞满,你机器上的 WAF 再聪明也收不到包。这一层只能靠分布式节点分摊和上游清洗。

源站 IP 暴露。 WAF 装在源站,前提是攻击者得走你的域名。IP 一旦泄露,人家直连过来,前面的所有配置形同虚设。

这两件事正是 CDN 补位的地方。开源 WAF 负责规则精细化和业务定制,CDN 负责隐藏源站、扛量、边缘粗筛——分工清楚了,这套组合的性价比相当可观。

THE END