Heyo,
我使用Ubuntu 15.10和fail2ban 0.9.3。 Apache设置了一堆Apache虚拟主机。
我有我的Apache2日志文件位于子目录中,每个本地主机,例如'/var/log/apache2/vwww_example_vhost_com/和日志文件作为error.log或access.log (或ssl_error.log和ssl_access.log )。
主要的apache2日志文件(localhost和default)位于/var/log/apache2 。
理想情况下,我希望能够通配该子目录,并在该子目录下的任何日志文件中读取fail2ban。
jail.local联机帮助页指出,为了指定多个日志文件,必须在每个日志文件之间放置换行符和空格。 这似乎不适用于通配目录。
以下是其中一个jail的默认configuration:
[apache-auth] port = http,https logpath = %(apache_error_log)s enabled = true
目前我已经尝试过:
[apache-auth] port = http,https logpath = %(apache_error_log)s /var/log/apache2/*/*error.log enabled = true
带有前导空格的换行符上的辅助日志文件path。 此错误和service fail2ban restart失败,出现一个神秘的(和无用的)错误消息。
这失败了:
[apache-auth] port = http,https logpath = /var/log/apache2/*/*error.log enabled = true
试图覆盖%(apache_error_log)s的%(apache_error_log)svariables也失败:
[DEFAULT] apache_error_log = /var/log/apache2/*error.log /var/log/apache2/*/*error.log apache_access_log = /var/log/apache2/*access.log /var/log/apache2/*/*access.log
使用空格指定日志文件掩码会在/var/log/fail2ban.log给我“头部或尾部”错误,但服务将启动。 但是,它根本不使用日志文件。 用分号分隔日志文件掩码可以防止fail2ban重新启动。
我的结论是,我将不得不在jail.local手动定义虚拟主机的目录名称,但是我还没有find任何具体说明你不能使用通配符子目录的东西。
有没有人有这方面的见解或解决方法?
编辑:我只是试图指定多个日志文件目录(与目录名称拼写),并在paths-overrides.local相同的通配文件名掩码,这也导致fail2ban不启动。
目前看来,目录glob没有任何作用。
我find的唯一解决scheme是为每个子目录创build一个单独的条目。
我的每个虚拟主机都在/ var / log / httpd的子目录中有各自的错误/访问日志。
要获取错误日志列表(例如),我使用了:
(ls -F /var/log/httpd/ | awk '/\// {print "/var/log/httpd/"$1"*error.log"}') | \ while read line; do \ sed -i "/apache_error_log/a \\\t$line" /etc/fail2ban/paths-overrides.local ; done
当然,重复相同的命令,将“错误”更改为“访问”。
(ls -F /var/log/httpd/ | awk '/\// {print "/var/log/httpd/"$1"*access.log"}') | \ while read line; do \ sed -i "/apache_access_log/a \\\t$line" /etc/fail2ban/paths-overrides.local ; done
检查fail2ban,文件列表按预期显示
# fail2ban-client status apache-auth Status for the jail: apache-auth |- Filter | |- Currently failed: 0 | |- Total failed: 0 | `- File list: /var/log/httpd/error_log /var/log/httpd/myvhost/error_log `- Actions |- Currently banned: 0 |- Total banned: 0 `- Banned IP list:
不是你正在寻找什么,或许,但我希望有所帮助。
〜克拉洛·阿达拉安