利用Apache的X-Forwarded-For配置屏蔽IP

线上站点更新了登录方式,从验证码变成了拼图,但是不知道为什么引发了一个漏洞,导致有人不停的刷登录页面,尝试破解什么的,还好这个人发出的请求频率较高,但是访问源都是一个ip,log如下:
219.146.239.138 - - [18/Mar/2015:10:44:12 +0800] 0 "POST /signin"
219.146.239.138 - - [18/Mar/2015:10:44:12 +0800] 0 "POST /signin"
219.146.239.138 - - [18/Mar/2015:10:44:12 +0800] 0 "POST /signin"
219.146.239.138 - - [18/Mar/2015:10:44:12 +0800] 0 "POST /signin"
219.146.239.138 - - [18/Mar/2015:10:44:12 +0800] 0 "POST /signin"
219.146.239.138 - - [18/Mar/2015:10:44:12 +0800] 0 "POST /signin"
219.146.239.138 - - [18/Mar/2015:10:44:12 +0800] 0 "POST /signin"

一秒钟你刷好几十次这还是一台服务器,判断为非正常,先用Iptables屏蔽掉!
iptables -I INPUT -s 219.146.239.138 -j DROP
看看效果,哎?怎么还访问的那么欢实,突然想起来,这些服务器是 haproxy 转过来的,日志格式里的ip地址是X-Forwarded-For,我总不能跑haproxy上去加iptables吧!
<Directory /data/vhosts/htdocs/>
SetEnvIf X-Forwarded-For "^(219\.146\.239\.138)" Deny1
Options None
AllowOverride None
Order deny,allow
Deny from all
Allow from env=Deny1
</Directory>
好了,再看看全部403,这种方法防护小规模的刷洗还是可以的,但是大规模的需要做自动发现和自动添加防护!

0 个评论

要回复文章请先登录注册