fail2ban是否仅仅因为端口而不能匹配这些行?

我希望fail2ban参与这些行,并阻止包含的示例IP地址:

[Tue Dec 08 12:17:13.622175 2015] [:error] [pid 30390] [client 62.210.88.201:38139] script '/var/www/html/httptest.php' not found or unable to stat [Tue Dec 08 13:22:25.363614 2015] [:error] [pid 30386] [client 62.210.88.201:54141] script '/var/www/html/httptest.php' not found or unable to stat [Tue Dec 08 14:36:01.790899 2015] [:error] [pid 28831] [client 62.210.88.201:42431] script '/var/www/html/httptest.php' not found or unable to stat 

Fail2ban已成功configuration为保护此机器上的其他服务,但我似乎无法得到它对这些线路运行。

 [apache-noscript] enabled = true port = http,https filter = apache-noscript logpath = /var/log/apache*/*error.log maxretry = 2 

仅仅因为“port = http,https”而应该是“ports = all”?

相关的filter“apache-noscript.conf”被修改如下。

 ^%(_apache_error_client)s script '/\S*httptest\S*(\.php|\.asp|\.exe|\.pl)\S*' not found or unable to stat\s*$ 

没有port部分不是问题。 port用于定义正则expression式规则匹配后应用于哪个端口。

我想你的正则expression式不是应该的方式。 您可以使用fail2ban-regex命令来查看它是否真正起作用,并在必要时进行更正。 这是一个示例命令:

 fail2ban-regex '/var/log/apache*/*access.log' /etc/fail2ban/filter.d/apache-noscript.conf 

您也可以使用以下命令来查看监狱状态:

 fail2ban-client status