12月30日下午,宝贝回家论坛一台服务器(server4)开始出现异常的高负载情况。首先是自动触发了自动扩容
机制,增加了新服务器进来分担压力,保障了服务的持续可用,给问题解决争取了时间窗口。
随后手机收到告警短信,登录腾讯云控制台,首先排除了DDOS,因为外网入带宽和出带宽都正常。异常的是内网出带宽和入带宽。难道有内网的服务器发起攻击?
登录到服务器上来看,top没有看出什么异常,没有特别高的进程,php-fpm进程确实多了一些,每个进程的cpu时间也确实长了一些,但是也不说明什么问题。看access_log也没有看到ip聚集的请求。
怀疑服务器本身有异常,把服务器重启了一下,问题没解决。
把出现问题的服务器(server4)从负载均衡中踢出,问题立刻消失。加回到负载均衡集群中,问题没有再出现了。
随后发现,另一台原来没有问题的服务器(server1)现在变成高负载了。一样从负载均衡中踢出来再加回去,这下两台都高负载了。
没有什么头绪,只好继续分析access_log。这次看出来问题了。
有一批来自世界各地的肉鸡(也可能是伪造的ip)在根据用户ID一个一个的访问用户资料。这些ip都来自哪里的呢?
所以问题很清晰了,这是一个CC攻击,并且攻击ip是分散的,不能通过封ip来化解。
攻击者借助代理服务器生成指向受害主机的合法请求,实现DDOS和伪装就叫:CC(ChallengeCollapsar)。
对于CC攻击,discuz是有对应的设计的,可以在config_global.php中配置,不过对抗手段都会或多或少的影响到正常访问。针对这次攻击我启用了 $_config['security']['attackevasive']=4
也就是要求每个用户第一次访问的时候都要看一个2秒的等候页面,然后自动进入原来的访问地址,这是目前对于用户访问体验伤害最小的方式(用户什么都不用做,只要第一次等2秒就一切正常了)。如果CC攻击没有继续升级对抗这个策略的话,这次攻击应该就到此为止了。
相关推荐
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。