帮一个独立站站长防CC攻击,从评论区聊到凌晨三点

2026/4/4 · 阿幻 · 约 7 分钟 · - 次阅读

刷抖音的时候刷到一个做海外独立站的姐们发视频,说被同行CC了,服务器CPU拉满,网站打不开。

评论区一堆人推销CDN,报价3800的有,60的也有,她说自己是外行搞不明白。

我点进去看了一眼她贴的攻击日志——同一个UA都是Chrome/120,带随机参数绕缓存,不同IP在同一秒集中打443。很典型的CC。这种Cloudflare免费计划就能挡,没人提大概是因为免费的没人赚钱。

我在评论区回了一句分析,她主动加了微信,一开始就发了句”谢谢你愿意帮忙”。后来聊着聊着开始叫我老师,我说别别别,就是懂一点而已。

然后就开始了。

 

说一下,全程是微信远程指导,我告诉她该操作什么,她自己在服务器上执行。没有远程桌面,没有一对一实操——那种要收费的,我这就是顺手帮忙。

她的情况是WordPress商城站,两台欧洲VPS,宝塔面板管,7个域名。之前没接任何CDN,服务器IP裸奔。

也不是没找过人。淘宝闲鱼花了几百块,人家帮她装了宝塔WAF。但被打的时候CPU半小时降不下来。原因很简单——宝塔WAF是在服务器上拦的,请求到了服务器才开始处理,CPU已经被吃了。相当于人都冲进你家了你才开始查身份证。

 

第一天

先让她把所有域名接了Cloudflare。改NS、加A记录、开代理,接完之后外面只能看到CF的IP,真实服务器IP藏起来了。SSL证书顺手也解决了,CF源服务器证书有效期15年,不用每三个月续一次Let’s Encrypt。

然后指导她配CF的WAF规则。免费计划有5条自定义规则,够用。把CC攻击常见的特征拦了:查询字符串带 t= 的(攻击用的随机参数)、/xmlrpc.php(WordPress老漏洞)、/wp-json/wp/v2/users(枚举用户名)、/.env(扫配置文件),全部Block。速率限制也加了一条,同一IP十秒超100次请求触发质询。

光接CF还不够。她的IP之前暴露过,攻击者可以直接打IP绕过CF。所以让她在服务器上用iptables把80和443端口锁死,只放行CF的IP段,其他全部DROP。

配完本来以为差不多了——CPU从99%降到42%,内存从3.6GB降到420MB。结果第二天她又来消息了。

 

第二天:换IP翻车

换IP的时候出了问题。

换IP是有操作顺序的:先在新服务器上配好iptables,再去CF改A记录。这样新IP从一开始就是锁死的,DNS传播过程中不会暴露。但她之前不知道这个,直接换了IP就改了A记录,iptables还没配上,新IP就这么裸着挂在DNS上了。对面一直在扫,几乎是立刻就找到了新IP,又开始打。

我后来把完整的操作步骤发给她了,先做什么后做什么写得很清楚。她照着做了一遍,这次没问题。但前面那次等于白换了,多浪费了一天。

不光CC,对面同时还在扫网站源文件里有没有现成的木马可以利用——这是标准的入侵流程,先用CC打瘫你,同时扫后门看能不能进一步渗透拿权限。CF的WAF日志里能看到一堆扫webshell路径的请求,全被拦了。可惜啊,没有。

所以第二天基本都在重新来——指导她重新换IP、重新配iptables、把宝塔面板端口也从默认改成随机5位数防Shodan扫描。

 

过程中踩的坑

宝塔面板的防火墙白名单,加了CF的IP但没加”其他IP拒绝”,等于白加。最后直接让她用iptables替代了,比在面板里点来点去靠谱。

PHP-FPM的服务名折腾了好一会。宝塔装的PHP服务名是 php-fpm-74,不是 php7.4-fpm,她那边重启了好几次才对上。远程指导的时候这种小问题最耗时间,我又看不到她的屏幕。

清空iptables规则的时候,默认策略已经是DROP了,iptables -F 一执行规则全没了,所有连接直接断开。她跟我说突然连不上了,我当时就知道怎么回事了——先改默认策略再清空,这个我之前说了但她可能漏看了。还好VPS后台有VNC控制台能救回来。

CF的五秒盾也被绕过了。开了Under Attack Mode之后,452万次请求里有442万次穿透到了源站。攻击那边用了无头浏览器能过JS验证。后来换成滑块验证,攻击立刻归零。

换完IP发现新旧IP还在相邻网段,从.166.x变成.167.x,扫两个C段几分钟就找到了。不过iptables配好了,扫到也没用,得不到任何响应。

 

第三天:稳了

她发消息说网站跑了一整天没掉过一次,CPU稳定在个位数。然后又发了一句”谢谢老师”,我说真别叫老师,我就是一个搞技术的碰巧刷到了你的视频。

三天断断续续搞下来,从评论区随手回了一句,到最后真的把她整套防御体系搭好——CF接入、WAF规则、iptables锁源站、换IP、清木马,全套弄完,看着攻击流量打过来全被挡在外面,成就感是真的有的。中间因为操作顺序的问题多花了一天,但想想人家本来就不是搞技术的,能跟着文字步骤一步步把这些做下来,其实已经很不错了。

 

几个感受

WAF拦在哪一层差别很大。宝塔WAF在应用层拦,请求已经到了你服务器,CPU已经被吃了。CF在边缘节点拦,请求根本到不了你服务器。

CC和DDoS是两回事。CC是伪装成正常用户的HTTP请求洪水,iptables可以拦。DDoS是网络层流量轰炸,数据包到了网卡内核就要处理,那种只能从上游过滤或者换IP。

源站IP隐藏不是接个CDN就完事的。DNS记录、邮件头、面板端口、SSL证书指纹、DNS切换的窗口期,任何一个环节泄露都白搭。而且对面会一直扫,你换了IP不第一时间锁好,几分钟就被找到。

CF免费计划比大多数人想的强。这次吃了452万次请求和22.78GB攻击流量,一分钱没花。

 

技术这个东西本身是免费的,网上资料都有,Cloudflare也不收钱。那些报价几千块的,做的事情其实和我指导她做的一模一样。真正的门槛不是信息差,是遇到问题的时候能不能自己一步一步查、一步一步试。

希望大家保持自学的能力吧。遇到问题先搜,先看文档,实在搞不定再找人。大部分情况比你以为的简单。

有问题可以留言。

分享这篇文章

💬

留言板

( ´▽` )ノ 来聊聊吧~
载入中...
幻之空
0:00
0:00