在 CentOS 7 上安装fail2ban

在 CentOS 7 上安装fail2ban

我正在使用 @GarethTheRed 的答案这个问题在远程 CentOS 7 服务器上安装fail2ban。我能够完成直到 为止的所有步骤tail -f /var/log/fail2ban.log,此时我得到的结果与他在答案中得到的结果不同。

这是我在这一步得到的结果:

[[email protected] ~]# tail -f /var/log/fail2ban.log
2014-12-02 16:55:53,548 fail2ban.server.server[6667]: INFO    Changed logging target to /var/log/fail2ban.log for Fail2ban v0.9.0
2014-12-02 16:55:53,550 fail2ban.server.database[6667]: INFO    Connected to fail2ban persistent database '/var/lib/fail2ban/fail2ban.sqlite3'
2014-12-02 16:55:54,239 fail2ban.server.database[6667]: WARNING New database created. Version '2'  

在最后一行之后,我只会看到一个光标,但没有命令提示符,除非我输入Ctrl-C

当我输入 时systemctl status fail2ban,它告诉我它fail2ban处于活动状态。当我退出系统并稍后重新登录时,sshd告诉我自上次登录以来已有多次登录尝试失败。所以应该有fail2ban日志。但我似乎找不到他们。

有人可以告诉我如何进行此设置以便fail2ban生成我可以跟踪的日志吗?

答案1

尝试fail2ban从以下位置安装EPEL。它是针对 CentOS 7 打包的,您将在更新发布时获得更新。安装rpm另一个存储库的形式可能会起作用(在本例中确实如此),但这并不是最好的方法。

首先,通过发出以下命令(以 root 身份)安装 EPEL 存储库:

yum install epel-release

以上应该安装 EPEL 并让您可以访问许多新包。这些软件包之一是fail2ban,因此通过运行以下命令来安装它:

yum install fail2ban

默认情况下没有配置监狱,因此要配置基本sshd监狱:

创建/编辑文件/etc/fail2ban/jail.local并添加:

[sshd]
enabled = true

开始:

systemctl start fail2ban

让它在启动时启动:

systemctl enable fail2ban

曾经有一个已知错误SELinux 会阻止fail2ban访问完成其工作所需的日志文件。这似乎在最新版本的 CentOS 7 中得到了修复;您不需要进行以下更改。

如果您确实遇到此问题,症状是日志中没有出现任何内容,并且 的输出中没有显示任何失败或阻止的内容fail2ban-client status sshd

要检查 SELinux 错误,请阅读以下日志:

journalctl -lfu fail2ban

留意他们的消息,例如:

SELinux is preventing /usr/bin/python2.7 from getattr access on the file .
       *****  Plugin catchall (100. confidence) suggests   **************************
       If you believe that python2.7 should be allowed getattr access on the  file by default.
       Then you should report this as a bug.
       You can generate a local policy module to allow this access.
       Do 
       allow this access for now by executing:
       # grep fail2ban-server /var/log/audit/audit.log | audit2allow -M mypol
       # semodule -i mypol.pp

因此,按照建议执行并运行:

grep fail2ban-server /var/log/audit/audit.log | audit2allow -M mypol
semodule -i mypol.pp

然后,为了安全起见,重新启动fail2ban

systemctl restart fail2ban

您甚至可能必须重复上述过程,直到日志中不再出现错误消息。

如果您的服务器位于互联网上,则进行监视 fail2ban-client status sshd。如果您发现了所有 SELinux 问题,它很快就会开始显示失败和禁止的计数。

请注意,您必须密切关注 SELinux 策略更新。如果selinux-policy出现软件包更新,它可能会覆盖上面的内容,您可能需要再次运行上面的命令。如果是这种情况,您就会知道,因为fail2ban将再次停止工作!

相关内容