因为已经修改了后台地址感觉算是相对比较安全吧,所以自从建站以来就没怎么关注过网站被非法登陆的日志。
今天因为华为云报警说是内存低,经过优化和排查之后问题已经解决,但是根据以往的经验来说网站会不会是被扫描/暴力破解了,结果一看日志,吼吼吼,非法登陆状态已经刷屏了好几百页好吗!!!(如下图)
好吧,那么这次我们集中处理一下这个问题。
思路与排查:
既然已经修改了登录地址,那么这帮无聊的人是怎么进行登录暴力破解的呢?
既然有登录失败记录,那就先尝试用IP代入系统日志进行匹配吧:
进入到相应日志目录,然后直接选个IP进行匹配,执行grep命令
grep "68.66.216.53" access.log
看到日志显示对方使用浏览器Agent信息是使用Windows(估计伪造的)下的Firefox浏览器以POST的方式访问了文件/xmlrpc.php (如图)
进一步使用命令追查xmlrpc.php文件出现次数,执行grep管道wc命令
grep "xmlrpc.php" access.log | wc -l
显示截至到今天22点,已经被批量探测了57090次了 (如图)
遇到这样的问题,我们可能想到的直接锁定这个IP段,但这样永久解决这样的攻击(对方的IP可能仅仅是台肉鸡),我们需要禁止xmlrpc文件的访问功能才可以彻底的解决。
解决方案:
既然追查到问题所在,那么解决起来就比较简单了,但是保险起见还是bing搜索了一下前辈们的经验:
已知1:如果网站程序使用pingback功能的话,屏蔽xmlrpc.php将导致功能无法使用
已知2:使用JetPack之类的插件,再删除xmlrpc.php后将导致网站异常
已知3:旧版本Wordpress部分组件依赖于xmlrpc.php,删除后将导致一些很奇怪的问题
目前本站在以上3条都不沾边,所以我打算斩草除根,永久解决这个问题。
我总结了几个有效的办法:
1、用rm -rf xmlrpc.php
命令或者mv
命令 删掉/移动 这个xmlrpc.php文件,好吧我认为这个是最简单的,但是作为合格的运维工程师,就不要动不动使用rm
命令,太危险了是吧?
2、使用chmod禁用所有xmlrpc.php权限,让其变成无法访问状态(操作如下图)
chmod 000 xmlrpc.php
3、Apache服务器可以设定配置文件-301跳转访问:
《IfModule mod_alias.c> Redirect 301 /xmlrpc.php http://baidu.com 《/IfModule>
4、Nginx服务器可以设定配置文件-禁止访问:
location ~* /xmlrpc.php { deny all; }
以上。。。操作完成后目前测试网站没什么问题。。。
(END)
原创文章AndyX.Net
若需转载本文,请标注来源与链接:https://andyx.net/wordpress_optimized_xmlrpc_to_prevent_brute-force_cracking/