如何使用systemd journal配置fail2ban?


10

我已经安装fail2ban在Debian Jessie LXC容器上,当前由于以下原因而失败:

Starting authentication failure monitor: fail2ban
ERROR  No file(s) found for glob /var/log/auth.log
ERROR  Failed during configuration: Have not found any log file for ssh jail

系统上没有syslogrsyslog,因此/var/log/auth.log不会生成。有没有办法告诉fail2ban使用输出journalctl _COMM=sshd

Answers:


11

对于系统系统:

您必须指定后端/etc/fail2ban/jail.confsystemd按以下方式使用:

backend = systemd

然后重启fail2ban:

systemctl restart fail2ban

编辑:

我是CentOS / RHEL / Fedora的重担,所以您可能不得不适应我的说法。就此答案而言,您可能必须将fail2ban软件包更新为支持systemd作为后端的版本,或者必须安装rsyslog以下内容并将其添加到您的/etc/rsyslog.conf

authpriv.*      /var/log/auth.log

这将确保sshd身份验证日志正在记录,fail2ban中/var/log/auth.log的默认pyinotify后端将读取该记录:


systemd该选项似乎不受以下支持fail2ban 0.8.13fail2banERROR NOK: ("Unknown backend systemd. Must be among ['pyinotify', 'gamin', 'polling'] or 'auto'",)
Tombart

@Tombart您正在运行什么版本的Debian?看来您需要一个支持systemd后端的更新的fail2ban软件包,或者可以安装rsyslog并将正确的配置添加到rsyslog.conf中

这是Debian 8 Jessie的最新版本,带有systemd支持。
Tombart

@MatthewSanabria,为什么have to install rsyslog是centos?
kittygirl

2

您将需要能够支持systemd的fail2ban版本0.9.0,而Debian Jessie在存储库中具有0.8.3。

尝试从源代码下载和安装,或者寻找替代的存储库。

问候。


1

我也有同样的问题。我没有弄清楚它,而是最终重新安装了syslogd来生成日志文件。

apt-get install inetutils-syslogd

安装后可能需要花费几分钟才能创建日志文件-添加日志条目后即会创建该日志文件。

我不建议您长期使用它(因为它实际上并不能解决问题),但是如果您希望fail2ban立即工作,那就可以了。


0

配置文件存在问题。

我有jail.conf和 jail.d/defaults-debian.conf

后者的内容是:

[sshd]
enabled = true

由于此处未设置后端,因此将使用默认值代替中的默认值jail.conf。问题专家在这里详细描述:https : //github.com/fail2ban/fail2ban/issues/1372

添加backend = systemd就可以了。

defaults-debian.conf

[sshd]
enabled = true
backend = systemd
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.