起因

7月份的时候我的 CDN 被刷了一些流量,每天晚上8点多开始被刷到12点左右结束,非常有规律,感觉好像是一些新手拿我的站点当练手的靶子了,下班吃完饭之后没啥事了就攻击一下玩玩。我的站点使用的是腾讯云的 CDN,所以这篇就以 腾讯云的 CDN 为例来说下 CDN 被恶意刷流量时应该怎么办。给新手一个参考,老鸟略过。

我最初使用 CDN 的时候只设置了阈值,当日累计流量达到 2G80% 时提醒。不久,就收到了邮件提醒,进去一看,刷了几十G。

后面我大概做了 4 个步骤,解决了这个问题。

查找恶意 IP

只设置了阈值是远远不够的,顶多就是知道服务器可能受到攻击了,但如果真的出现攻击,达到 80% 的阈值之后瞬间就达到阈值了,然后 CDN 服务就关闭了。

受到攻击之后,我先将恶意 IP 加入到了 CDN 的 黑名单 中。查询恶意 IP 的方法在 CDN 控制台的 统计分析——数据分析 中,勾选 TOP 100 客户端 IP 可以查到恶意 IP。

在控制台的 日志服务 中也可以下载对应攻击时间的日志文件来看到攻击日志,例如我的相关日志记录如下:

1
20240707195122 221.xxx.xxx.xxx aa.xxx.cn /wp-content/uploads/2024/03/d2b5ca33bd97-10-1024x760.png 424383 146 26 200 https:// aa.xxx.cn/wp-content/uploads/2024/03/d2b5ca33bd97-10-1024x760.png 3 "NULL" "(null)" GET HTTPS hit 45820

将恶意 IP 加入到黑名单中

在管理控制台的 域名管理 中找到受攻击的域名,点 管理 进入(如果 CDN 已经关闭的话,需要开启之后才能编辑管理项)。

进入 访问控制 页面,在 IP 黑白名单配置中,新建规则,加入恶意 IP 或者恶意 IP 段。

恶意 IP 就是一行一个,如果想拉黑整个 IP 段,格式为:xxx.xxx.169.0/24

IP 访问限频配置

通过对单 IP 节点 进行 QPS 限制,可防御部分 CC 攻击。这项也是有必要设置的,如果有恶意攻击,超出 QPS 限制的请求会直接返回 514。QPS 的值按照网站的业务量大小进行设置,如果是小网站的话可以设置为 2030

配置下行限速

下行宽带我这边设置 2M ,这个也可以根据自己的需求设置。

关于下行限速,官网是这样解释的:

以上配置都完成之后,算是有了基础的防护。不过 CDN 是有延迟的,也不太好控制。如果有强烈攻击,可能还要上高防服务器了。

最后想说一下,腾讯云 的技术支持服务真的很好,出现攻击以后,我提交工单问了 3 个自己不太明确的问题,技术直接给我打电话针对我咨询的每个问题都给予了详细的回复,非常有耐心,态度非常好,这也让我更愿意使用腾讯云的产品。

在此过程中参考了两篇技术文章,对我的帮助非常大:
https://cloud.tencent.com/developer/article/2168582
https://cloud.tencent.com/developer/article/2395789

以上就是我解决问题的全过程,希望能够帮助到遇到同样问题的你。