记部署在腾讯云的discuz论坛遭受了一次 CC 攻击

10月1日下午,discuz论坛一台服务器(server4)开始出现异常的高负载情况。首先是自动触发了自动扩容机制,增加了新服务器进来分担压力,保障了服务的持续可用,给问题解决争取了时间窗口。

随后手机收到告警短信,登录腾讯云控制台,首先排除了DDOS,因为外网入带宽和出带宽都正常。异常的是内网出带宽和入带宽。难道有内网的服务器发起攻击?

登录到服务器上来看,top没有看出什么异常,没有特别高的进程,php-fpm进程确实多了一些,每个进程的cpu时间也确实长了一些,但是也不说明什么问题。看access_log也没有看到ip聚集的请求。

怀疑服务器本身有异常,把服务器重启了一下,问题没解决。

记部署在腾讯云的discuz论坛遭受了一次 CC 攻击插图

把出现问题的服务器(server4)从负载均衡中踢出,问题立刻消失。加回到负载均衡集群中,问题没有再出现了。

记部署在腾讯云的discuz论坛遭受了一次 CC 攻击插图1

随后发现,另一台原来没有问题的服务器(server1)现在变成高负载了。一样从负载均衡中踢出来再加回去,这下两台都高负载了。

没有什么头绪,只好继续分析access_log。这次看出来问题了。

记部署在腾讯云的discuz论坛遭受了一次 CC 攻击插图2

有一批来自世界各地的肉鸡(也可能是伪造的ip)在根据用户ID一个一个的访问用户资料。这些ip都来自哪里的呢?

记部署在腾讯云的discuz论坛遭受了一次 CC 攻击插图3

所以问题很清晰了,这是一个CC攻击,并且攻击ip是分散的,不能通过封ip来化解。

攻击者借助代理服务器生成指向受害主机的合法请求,实现DDOS和伪装就叫:CC(ChallengeCollapsar)。

对于CC攻击,discuz是有对应的设计的,可以在config_global.php中配置,不过对抗手段都会或多或少的影响到正常访问。针对这次攻击我启用了 $_config['security']['attackevasive']=4

也就是要求每个用户第一次访问的时候都要看一个2秒的等候页面,然后自动进入原来的访问地址,这是目前对于用户访问体验伤害最小的方式(用户什么都不用做,只要第一次等2秒就一切正常了)。如果CC攻击没有继续升级对抗这个策略的话,这次攻击应该就到此为止了。

稍晚的时候服务器CPU又满了,对方使用了使用了更多的肉鸡,大量代理IP涌入了服务器,导致论坛再次无法打开,怎么办呢?

只能购买防火墙了,买腾讯云防火墙的话不现实,价格太贵,一个论坛,又不盈利没必要。再三思考下,只有用百度云加速了,百度云加速是百度与国外知名DDOS防护厂CloudFlare合作的一款集成网站加速、安全防护的产品,价格还算符合大众,官方最便宜的版本也就2490元/年,我是直接找他们代理主机吧购买,价格便宜将近一半。

接入后直接启用强力防护模式,

记部署在腾讯云的discuz论坛遭受了一次 CC 攻击插图4

观察将近1小时左右,终于彻底解决了!

记部署在腾讯云的discuz论坛遭受了一次 CC 攻击插图5

 

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
个人中心
购物车
优惠劵
搜索