《谈如何在服务器端停止恶意扫描》提到了主机保护,主要是防止不法分子进行批量攻击。本网站使用的WordPress,为了防止他人通过wp-login.php入口暴力,修改了文件并将请求重定向到CentOS的图片下载页面。但是,由于WordPress默认打开自动更新功能,新版本发布后,wp-login.php的修改被抹掉,成为登录入口文件。修改主题也有类似的缺点。
WordPress防止密码爆炸
今天早上收到大量邮件,提示人们多次尝试用密码登录博客网站。邮件让我很恼火,我觉得有点内疚,所以我想出了一个办法,一劳永逸地解决了。然后我想我可以在Nginx中重定向它!WordPress更新覆盖文件的缺点已经没有了。
只要启动它,并在Nginx的服务器配置块中添加配置项:
server {
...
location = /wp-login.php {
redirect ^ http://www.zhanceo.com/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-DVD-1810.iso permanent;
}
...
}
重启Nginx,尝试用curl请求“http://zhanceo.com/WP-log in . PHP”和“https://www.zhanceo.com/”,提示重定向到CentOS的镜像下载地址。不出所料,非常好!
以上配置解决了wp-login.php的烦恼,但我还是收到了一封又一封提示暴力的邮件。打开Nginx的日志,发现暴力的入口不是wp-login.php,而是xmlrpc.php。Xmlrpc.php是一个对外开放的rpc接口。比如app发布文章、管理网站时会用到。为了防止此门户被恶意访问,解决方案也可以是重定向:
server {
...
location = /wp-login.php {
redirect ^ https://www.zhanceo.com/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-DVD-1810.iso permanent;
}
location = /xmlrpc.php {
redirect ^ http://zhanceo.com/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-DVD-1810.iso permanent;
}
...
}
Ping Back功能也使用xmlrpc.php的页面,上述配置会导致其他站点Ping失败。有没有平对我来说没那么重要,关机对我没有影响。