如何在 fail2ban 监狱中指定多个日志文件模式?
how to specify multiple log files pattern in fail2ban jail?
I have log files on my server as follows
vpn_20191007.log
vpn_20191008.log
vpn_20191009.log
vpn_20191010.log
vpn_20191011.log
vpn_20191012.log
vpn_20191013.log
vpn_20191014.log
vpn_20191015.log
vpn_20191016.log
Is it possible to add log files pattern in fail2ban jail config?
[application]
enabled = false
filter = example
action = iptables
logpath = /var/log/vpn_%D.log
maxretry = 1
嗯,有条件的可以...
虽然目前基本允许通配符,所以:
logpath = /var/log/vpn_*.log
会完成这项工作,但你的情况有点难看:
- fail2ban 仅在服务启动时累积文件列表,因此该列表仍然在 fail2ban 中获得(除非它被重新加载)-这意味着您应该通知 fail2ban 日志文件名已更改(请参阅 https://github.com/fail2ban/fail2ban/issues/1379, 工作进行中).
- 因为只有一个文件会收到新消息,所以不需要监视其他文件,尤其是在使用轮询后端的情况下。
所以最好为此创建一些 logrotate
规则:
- 为了 rename/compress 所有以前的日志文件(避免匹配过时的文件);
- 为具有固定名称的 last/active 文件创建 hard- 或 sym-link(因此 fail2ban 始终能够找到具有相同名称的文件,并且您不需要通配符全部);
- 或者如果日志文件名被更改,则通知 fail2ban 重新加载 jail
(fail2ban-client reload vpn
).
这里是logrotate修改的例子:
postrotate
nfn="/var/log/vpn_$(date +%Y%m%d).log"
touch "$nfn"
ln -fs "$nfn" /var/log/vpn.log
I have log files on my server as follows
vpn_20191007.log
vpn_20191008.log
vpn_20191009.log
vpn_20191010.log
vpn_20191011.log
vpn_20191012.log
vpn_20191013.log
vpn_20191014.log
vpn_20191015.log
vpn_20191016.log
Is it possible to add log files pattern in fail2ban jail config?
[application]
enabled = false
filter = example
action = iptables
logpath = /var/log/vpn_%D.log
maxretry = 1
嗯,有条件的可以...
虽然目前基本允许通配符,所以:
logpath = /var/log/vpn_*.log
会完成这项工作,但你的情况有点难看:
- fail2ban 仅在服务启动时累积文件列表,因此该列表仍然在 fail2ban 中获得(除非它被重新加载)-这意味着您应该通知 fail2ban 日志文件名已更改(请参阅 https://github.com/fail2ban/fail2ban/issues/1379, 工作进行中).
- 因为只有一个文件会收到新消息,所以不需要监视其他文件,尤其是在使用轮询后端的情况下。
所以最好为此创建一些 logrotate
规则:
- 为了 rename/compress 所有以前的日志文件(避免匹配过时的文件);
- 为具有固定名称的 last/active 文件创建 hard- 或 sym-link(因此 fail2ban 始终能够找到具有相同名称的文件,并且您不需要通配符全部);
- 或者如果日志文件名被更改,则通知 fail2ban 重新加载 jail
(fail2ban-client reload vpn
).
这里是logrotate修改的例子:
postrotate
nfn="/var/log/vpn_$(date +%Y%m%d).log"
touch "$nfn"
ln -fs "$nfn" /var/log/vpn.log