由于 noscript nginx,fail2ban 经常禁止我进入 WordPress 管理员

fail2ban frequently bans me from WordPress admin due to noscript nginx

我配置了 Ubuntu 14.04,Nginx 1.6.2 服务器 fail2ban 来阻止 noscript 请求。此服务器运行两个 WordPress 站点。

当我在做 wp-admin 区域工作时,我随机被禁止了。当我查看 fail2ban 日志时,我可以看到 fail2ban.actions: WARNING [nginx-noscript] Ban xxx.xxx.xxx.xx。我启用了电子邮件、通知,但我没有收到任何关于此禁令的电子邮件通知。但是 SSH 禁止我收到电子邮件通知。

我想知道有什么方法可以阻止这种false/incorrect 禁止行动吗? 另外,我如何获得每个 IP 禁止操作电子邮件警报?

jail.local 文件:- http://pastebin.com/4ThbnzKD

jail.conf :- http://pastebin.com/zPZ0975W

nginx-noscript 过滤器旨在完全阻止对脚本的直接访问,例如以 .php 结尾的 URL。由于 Wordpress 管理面板依赖于许多这样的 URL(例如 /wp-login.php?...),此过滤器与其完全不兼容,并且会禁止任何用户登录或使用管理面板。该站点的前端可能运行良好,因为尽管它使用 PHP 文件,但由于 URL 重写,其 URL 不包含“.php”。

要解决这个问题,您可以:

  1. 完全禁用 nginx-noscript 过滤器
  2. ignoreregex 部分下添加例外,以类似 (wp-admin|wp-login)
  3. 的内容开头

默认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 =