apache防止暴力破解wp-login.php

做为空间商每天都能从日志中发现有人频繁使用破解工具对wordpress的统一登录文件wp-login.php进行暴力破解,如果用户密码设置过为简单,而且用的默认用户名admin,更为容易破解。一旦被破解可能就会被黑,对外发包之类的攻击事件,严重影响了服务器的稳定。之前发现后都是使用csf -d 屏蔽掉的。现在有了更为简单自动的方法。就是使用mod_security2规则进行限制。

如果您还没有安装mod_security2请参考这里:安装mod_security2教程

加入mod_security2破解规则

编辑httpd.conf

vim /etc/httpd/conf/httpd.conf

在载入mod_security模块后加上如下的配置文件


SecAction phase:1,nolog,pass,initcol:ip=%{REMOTE_ADDR},initcol:user=%{REMOTE_ADDR},id:5000134
<Locationmatch "/wp-login.php">
# Setup brute force detection.
# React if block flag has been set.
SecRule user:bf_block "@gt 0" "deny,status:401,log,id:5000135,msg:'ip address blocked for 5 minutes, more than 10 login attempts in 3 minutes.'"
# Setup Tracking. On a successful login, a 302 redirect is performed, a 200 indicates login failed.
SecRule RESPONSE_STATUS "^302" "phase:5,t:none,nolog,pass,setvar:ip.bf_counter=0,id:5000136"
SecRule RESPONSE_STATUS "^200" "phase:5,chain,t:none,nolog,pass,setvar:ip.bf_counter=+1,deprecatevar:ip.bf_counter=1/180,id:5000137"
SecRule ip:bf_counter "@gt 10" "t:none,setvar:user.bf_block=1,expirevar:user.bf_block=300,setvar:ip.bf_counter=0"
</locationmatch>

效果如下图

20141213225839

重启apache

service httpd restart

验证!从服务器上找个wordpress站,然后频繁故意输错密码,大概十几次后。不一会儿应该会出现如下提示

20141213232613

或者

20141213225015总之不能正常访问wp-login.php即为安装成功,3分钟内输入密码错误10次以上会被禁止访问wp-login.php,大概5分钟会自动恢复。

 

此条目发表在笔记分类目录,贴了标签。将固定链接加入收藏夹。

1 Response to apache防止暴力破解wp-login.php

  1. 安全,有效,如果有更简单的方法就更好了

发表评论

电子邮件地址不会被公开。 必填项已用*标注