海外站被攻击,cloudflare 自定义防护规则创建策略

更新日期: 2025-11-29 阅读次数: 20 字数: 845 分类: CDN

周六的凌晨被一堆网站服务器宕机报警邮件吵醒。这两周刚经历了国内网站被广东电信日均 40 万 PCDN IP 轰炸攻击, 没想到海外站又被攻击了。查看 Cloudflare 仪表盘,发现流量暴增。

第一次遇到海外站的流量攻击,我感觉处理策略跟国内站有些不同,特此记录一下。 虽然大家都知道 cloudflare 很强大,但是对于非技术人员来说,要能梳理出来防护策略,我感觉还是有点难。 我这周也提交了阿里云 ESA 工单,我发现售后工程师也业余的不行,给出的策略都反逻辑的,如果是没有经验的客户直接使用,会导致正常流量被误封。这是没有办法的事情,处理攻击还是需要稍微了解一点开发和运维的知识。

首先确认流量特征

进入 cloudflare 管理后台的, 安全性 - 分析 - 流量

cloudflare 安全性 - 分析 - 流量

查看各种维度的流量情况,确认攻击流量的特征。 比如攻击流量的国家、ASN、URL 路径、User Agent 等等。

比如,如果我的大部分客户在欧洲,那么来自美国、中国、亚洲的异常流量大概率就是攻击流量。

而且,现实就是访问量排名的前几位的国家,确实就是攻击流量的来源国。 添加过滤条件之后,看到大部分都没有 referrer,且 user agent 也有一定的规律性。

添加自定义防护规则

所以,我决定,把排名前三的国家,全部封禁掉。只要不是欧洲的流量,且流量异常的,全部封禁掉。

同时,为了防止误伤来自美国的搜索引擎爬虫,可以添加一个 and 条件。即:

如果是来自中国、美国、新加坡(全是腾讯和华为云机房的流量)的请求,并且不在 cloudflare 的 known bots 列表中,则显示挑战页面。 即,那个 cloudflare 的真人验证页面。

cloudflare 挑战页面

不要直接 block,避免误伤正常用户。这个挑战页面的通过率还是挺高的,绝大部分正常用户都能通过验证。 反正我感觉,这个体验已经非常好了。而且日常访问好多国外的站,都会跳出这个挑战页面, 也不会感觉会怪异。

同时,我没法理解,为何阿里云 ESA 就不支持在自定义规则中设置挑战页面,只能 block 或者 JS challenge,真是太不人性化了。 只有那个 IP 规则支持滑块挑战。阿里云 ESA 在这点上负分。

不必关心流量超的问题

cloudflare 相对阿里云 ESA 国内版的一个好处是,即便免费版,也不需要担心流量超标的问题。

我购买了阿里云 ESA 基础套餐,一个月才 50G 流量,这简直就是开玩笑。随便一个攻击,估计我一年的流量额度都得报销。 也不知道国内全行业整天遥遥领先了什么,流量额度这么少,打法要饭的感觉。

关于作者 🌱

我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式