WordPress安全防护
最近发现服务器CPU占用略微比平常高,今天登上服务器top一下,看到php-fpm不时的有负载,可是我的网站有没几个人看,看一下NGINX的访问日志,发现博客站点一直有POST 请求 到我的 /xmlrpc.php 页面,搜了一下,发现这个是对word-press的一种攻击方式,xmlrpc.php 原本是Wordpress 程序留给手机APP用的一个API页面。被攻击者用来爆破后台管理密码。本来觉得,问题不大,他也不知道我用户名,任他去搞就是了,加一个Fail2ban防爆破程序,守护一下得了。结果发现word-press竟然还有泄露用户名的风险,直接访问 http://你的域名/wp-json/wp/v2/users/ 就会得到一些用户名等敏感信息,这可不得了,暴力破解的可能性一下子大了好多,在这里在提醒一下,密码一定要设置的足够复杂。解决方案
1、WordPress在账号未登录时禁用wp-json/wp/v2/,防止泄露信息
在word_press安装目录下的/wp-includes/functions.php
文件里添加以下代码:
|
|
这样在未登录时就不会泄露用户名信息了。
2、查看攻击信息
导出NGINX日志分析,一开始是固定几个ip:162.213.248.98;121.5.28.65;52.17.76.233。。。后来升级成了动态ip,从21年3月到现在21年9月11,总计66000条攻击记录,分别来自11000个不同的ip地址,普通的Fail2ban已经防不住了。
3、最后解决方案:禁用 xmlrpc.php
直接删除对应文件,或者NGINX禁止访问都可以。至于有人说的封ip,这个不太靠谱,攻击者有太多的ip了,根本防不住。
2021.09.27 更新
过了一段时间又发现,wp-login.php有频繁的请求,哎,又在这暴力破解密码呢。。。给他干掉这个请求
4、防止wp-login暴力破解
在word_press安装目录下的/wp-includes/functions.php
文件里添加以下代码:
|
|
这样子直接访问wp-login.php就会被重定向到网站的首页啦,这样就给我们的登录页加了一层保护。上述代码中的"xxx"和"1234567890"都可以自定义,可以设置的尽量复杂一些。我们自己登录的时候,访问 “域名/wp-login.php?xxx=1234567890’’ 就可以啦
5、上传路径禁止PHP执行
别人破解我的word-press密码,肯定不是为了上来帮我写文章啦,一般来讲都是要利用文件上传,上传一个PHP木马文件,然后执行木马文件,获取服务器部分权限,word-press已经阻止了直接上传PHP文件,但是攻击者可以上传带有PHP代码的图片,在通过一些web服务器的漏洞,将图片文件当成PHP文件来执行。可以禁止上传路径执行php文件来防止入侵。将下面代码加在nginx站点配置文件内,必须在匹配PHP解析的location语句的前面添加
|
|