2012-03-28 44 views
3

我有4个web服务器在cloudflare和loadbalancer后面,nginx是web服务器,php-fpm管理php页面。我不知道如何阻止一个简单的DoS攻击......如何通过解析nginx日志文件自动拒绝ip地址

我能够通过使用http_limit_req模块从nginx的 http://wiki.nginx.org/HttpLimitReqModule

检测到这种攻击但这并不阻止攻击,是的,这可以缓解,但网络服务器被击中和再次击中,并且php-fpm达到80%,一分钟内网站无法访问。

我试图找到一种方法来阻止这种请求。

我知道如何使用nginx阻止某个ip地址或某个useragent,但我想自动执行此操作。我认为我不能用iptables阻止ip,因为请求来自负载均衡器(但是我仍然能够使用set_real_ip_from和real_ip_header X-Forwarded-For用nginx检测正确的ip地址。

我有日志文件(error.log)填写正确的IP地址,你可以看到:

2012/03/27 18:34:02 [错误] 31234#0:* 1283限制连接按区域“分段”,客户端:XX.XX.XX.XXX,服务器:www.xxxxxxx.com,请求:“HEAD/it HTTP/1.1”,主机:“www.xxxxxxx.com”

有人有一个想法,可以教我如何自动阻止此ip?

回答

5

为此使用fail2ban。它是许多不同服务的日志文件解析器,可以检测登录失败等,然后阻止IP地址。

http://www.fail2ban.org

问候

+0

是的,我认为这是一个很好的解决方案,我试图建立的fail2ban这个提示:http://forum.nginx.org/read.php?11,223078我会让你知道:)谢谢 – ilmetu 2012-03-28 08:47:26

+0

它工作得很好。谢谢 !!!! – ilmetu 2012-03-29 06:03:50

+0

是否可以用CSF代替Fail2Ban? – cgiacomi 2014-06-16 14:39:46