1

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

当我在做 wp-admin area 工作时,我随机被禁止了。当我查看 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

4

1 回答 1

1

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

要解决此问题,您可以:

  1. 完全禁用nginx-noscript过滤器
  2. 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 =
于 2016-02-12T14:24:21.630 回答