我配置了我的Ubuntu 14.04,Nginx 1.6.2服务器fail2ban来阻止noscript请求。该服务器运行两个WordPress站点。
当我正在做wp-admin区域工作时,随机我被禁止了。当我查看fail2ban日志时,我可以看到fail2ban.actions: WARNING [nginx-noscript] Ban xxx.xxx.xxx.xx
。我已启用电子邮件,通知,但我没有收到有关此禁令的任何电子邮件通知。但SSH禁止我收到电子邮件通知。
我想知道有没有办法阻止这种错误/不正确的禁止行为? 另外,我如何获取每个IP禁止操作电子邮件警报?
jail.local文件: - http://pastebin.com/4ThbnzKD
jail.conf: - http://pastebin.com/zPZ0975W
答案 0 :(得分:1)
nginx-noscript
过滤器旨在完全阻止对脚本的直接访问权限,例如以.php
结尾的网址。由于Wordpress管理面板依赖于许多此类网址(例如/wp-login.php?...
),因此此过滤器与其完全不兼容,并将禁止任何用户登录或使用管理面板。该站点的前端可能运行良好,因为虽然它使用PHP文件,但由于URL重写,其URL不包含“.php”。
要解决此问题,您可以:
nginx-noscript
过滤器ignoreregex
部分下添加例外,从(wp-admin|wp-login)
默认nginx-noscript.conf
:
# Noscript filter /etc/fail2ban/filter.d/nginx-noscript.conf:
#
# Block IPs trying to execute scripts such as .php, .pl, .exe and other funny scripts.
#
# Matches e.g.
# 192.168.1.1 - - "GET /something.php
#
[Definition]
failregex = ^<HOST> -.*GET.*(\.php|\.asp|\.exe|\.pl|\.cgi|\scgi)
ignoreregex =