早上醒来发现网站DOWN了,ssl连进来发现apache的CPU占用100%,重启了apache也不管用,登到aws重启实例也是一样.一开启apache,CPU就很快耗尽.
一开始怀疑apache出问题了,先改了连接数限制到3,仍然是同样的问题.而且看aws的metrics从凌晨开始就突然有大量入站数据,可能网站被攻击.只能看日志了.
检查/etc/httpd/logs/access.log,从昨天开始就是大量的
51.15.49.10 - - [28/Feb/2017:02:55:13 +0000] "POST /xmlrpc.php HTTP/1.0" 200 394 "-" "Mozilla/4.0 (compatible: MSIE 7.0; Windows NT 6.0)"
Google一下有人在利用wordpress的xmlrpc 的pingback的漏洞穷举网站密码(这个漏洞是不是还存在暂时不清楚),密码应该穷举不出来,但是ec2的微型服务器可是经不起这个DDOS一样的的访问.
暂时的办法,iptables禁止了这个IP,以及禁用了xmlrpc的pingback.
sudo iptables -I INPUT -s 51.15.49.10 -j DROP
后续有时间再处理,浪费了早上的上班时间.
—
05/13/2018 updated
最近偶尔还有IP攻击,虽然已经填了漏洞,还是一会就直接报告服务器DOWN了,要么利用mod_evasive自动封禁,要么禁止对文件的访问来减少服务器负载。
暂时是在apache配置文件里增加文件禁止
<Files xmlrpc.php> order deny,allow deny from all </Files>
但是实际发现apache不认这段语句,因为网上找到的是2.2版本的命令,2.4版本后改格式了。。
2.2 configuration: Order deny,allow Deny from all 2.4 configuration: Require all denied
所以在/etc/httpd/conf.d/新建xmlrpc.conf,内容为
<Files xmlrpc.php> Require all denied </Files>
结束