在CentOS 7上安装fail2ban


15

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

这是我在此步骤中得到的结果:

[root@remotecentosserver.com ~]# 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生成可以跟踪的日志吗?


您检查文件权限了吗?我浪费时间不止一次,只是发现权限是问题所在。
codewaggle 2014年

1
fail2ban现在位于EPEL仓库中。尝试从那里安装。卸载当前版本,并确保没有残留的配置文件等。然后从EPEL安装。我已经在CentOS 7机器上运行了它,没有任何问题。
garethTheRed 2014年

我在最后一条评论中说了一个小谎言-我忘记了我不得不在不久前修复它。下面的长答案...
garethTheRed 2014年

Answers:


32

尝试fail2banEPEL安装。它是为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 曾经存在一个已知的错误,该错误会阻止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

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

如果您的服务器位于Internet上,则进行监视 fail2ban-client status sshd。如果您已解决所有SELinux问题,它将很快开始显示失败和被禁止的计数。

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


非常感谢。我应该采取特定步骤先卸载fail2ban吗?还是在您上面提供的步骤中自动处理了?
CodeMed 2014年

我首先要从Fedora 20卸载该版本,并确保目录/etc/fail2ban已删除。
garethTheRed 2014年

enabled = true部分起作用了。我到处都读到ssh是默认配置和启用的,但是事实并非如此。
拉希尔·瓦兹尔
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.