我正在使用 @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
将再次停止工作!