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

时间:2015-04-12 03:05:04

标签: php wordpress nginx ubuntu-14.04 fail2ban

我配置了我的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

1 个答案:

答案 0 :(得分:1)

nginx-noscript过滤器旨在完全阻止对脚本的直接访问权限,例如以.php结尾的网址。由于Wordpress管理面板依赖于许多此类网址(例如/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 =