服务器被CC攻击后检查以及处理记录

发布于 2025-04-18  119 次阅读


注:本文没有多少图片,因为当时处理的急,就没截图,仅作为记录,为后续类似情况提供排查思路

一、起因

在某个阳光明媚的早晨,还没到公司就收到公司同事反馈站点进不去访问不了,到公司后第一时间查看阿里云监控,发现CPU跑满,以为就像之前那样,某个SQL语句卡死或者执行频繁导致CPU爆满,就打算重启服务器释放一下,重启之后发现CPU还是爆满,并且通过SSH也发现确实是MYSQL导致的CPU爆满,但是多次重启也就好一会,然后MYSQL又把CPU跑满了

二、排查以及处理

冷静下来之后,再次重启服务器,这次重启服务器之后,立马就直接把MYSQL进程关闭了,避免CPU爆满,然后进宝塔逐步排查

进宝塔之后发现CPU降下来了,但是储存空间已经99%了,公司隔段时间会检查,一般来说不会那么快占满,当时急着处理就没想占满原因(其实是cc攻击导致NGINX日志写满了内存),清理部分垃圾之后稍微好点了,然后查看MYSQL日志发现A网站在频繁操作,就在宝塔关闭A网站的情况下开启MYSQL,这样这个服务器上除了A网站,其他的网站就都运行正常了

再来进一步排查,在大部分网站都运行正常的情况下就可以慢慢排查原因了,在宝塔面板发现4M的带宽被拉满了,就先在阿里云平台升级服务器带宽到50M,但是即使升级之后发现带宽仍然接近跑满,但是不影响业务运行了,然后通过iftop以及netstat进一步确认了是NGINX的流量异常,其实大概率也就是这个

然后查看关闭的A站点的NGINX日志,发现以下内容

107.150.61.226 - - [10/Apr/2025:09:47:05 +0800] "GET / HTTP/1.1" 200 2744 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"
107.150.61.226 - - [10/Apr/2025:09:47:05 +0800] "GET / HTTP/1.1" 200 2744 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"
107.150.61.226 - - [10/Apr/2025:09:47:05 +0800] "GET / HTTP/1.1" 200 2744 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36"
107.150.61.226 - - [10/Apr/2025:09:47:05 +0800] "GET / HTTP/1.1" 200 2744 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"
107.150.61.226 - - [10/Apr/2025:09:47:05 +0800] "GET / HTTP/1.1" 200 2744 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36"
107.150.61.226 - - [10/Apr/2025:09:47:05 +0800] "GET / HTTP/1.1" 200 2744 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"
107.150.61.226 - - [10/Apr/2025:09:47:05 +0800] "GET / HTTP/1.1" 200 2744 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36"

但是我宝塔面板已经关闭了该站点,虽然宝塔的关闭站点并不是真的让别人无法访问,而是一个提示该站点已关闭的页面,但是这样的访问明显异常

临时处理办法就是在宝塔下载了fail2ban,然后设置了频率以及封禁时间之后,逐步封禁ip,并且在区域规则里面封禁国外ip,带宽流量才慢慢下来

三、后续处理

后续购买了宝塔企业版,升级了NGINX,从1.16-->1.18,启用了NGINX防火墙,使用更智能的防火墙来避免cc攻击以及假蜘蛛,目前我们服务器仍然有不少的假蜘蛛以及cc攻击在入侵,但是我们也只能被动防御了

其实在关闭了MYSQL以及A站点之后我是懵的,也是在deepseek和grok指导下判断流量来源、分析日志、使用fail2ban才解决这次问题。


公交车司机终于在众人的指责中将座位让给了老太太