Cod*_*Med 15 ssh centos openssh sshd fail2ban
我正在使用 @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'
Run Code Online (Sandbox Code Playgroud)
在最后一行之后,我只得到一个光标,但没有命令提示符,除非我输入Ctrl-C
.
当我输入时systemctl status fail2ban
,它告诉我它fail2ban
处于活动状态。当我退出系统并稍后重新登录时,sshd
告诉我自上次登录以来有很多登录尝试失败。所以应该有fail2ban
日志。但我似乎无法找到它们。
有人可以告诉我如何设置此设置以便fail2ban
生成我可以跟踪的日志吗?
gar*_*Red 33
尝试fail2ban
从EPEL安装。它是为 CentOS 7 打包的,您将在它们发布时获得更新。安装rpm
另一个 repo的表单可能会起作用(在这种情况下确实如此),但不是最好的做事方式。
首先,通过发出以下命令(以 root 用户身份)安装 EPEL 存储库:
yum install epel-release
Run Code Online (Sandbox Code Playgroud)
以上应该安装 EPEL 并让您访问许多新包。其中一个包是fail2ban
,因此通过运行安装它:
yum install fail2ban
Run Code Online (Sandbox Code Playgroud)
默认情况下没有配置 jails,因此要配置一个基本的sshd
jail:
创建/编辑文件/etc/fail2ban/jail.local
并添加:
[sshd]
enabled = true
Run Code Online (Sandbox Code Playgroud)
从以下开始:
systemctl start fail2ban
Run Code Online (Sandbox Code Playgroud)
让它在启动时启动:
systemctl enable fail2ban
Run Code Online (Sandbox Code Playgroud)
曾经有一个已知的错误,即 SELinux 会阻止fail2ban
访问它完成工作所需的日志文件。这似乎在最新版本的 CentOS 7 中得到修复;您不需要进行以下更改。
如果您确实遇到此问题,则日志中不会出现任何症状,fail2ban-client status sshd
.
要检查 SELinux 错误,请阅读以下日志:
journalctl -lfu fail2ban
Run Code Online (Sandbox Code Playgroud)
观察他们的消息,例如:
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
Run Code Online (Sandbox Code Playgroud)
因此,按照建议执行并运行:
grep fail2ban-server /var/log/audit/audit.log | audit2allow -M mypol
semodule -i mypol.pp
Run Code Online (Sandbox Code Playgroud)
然后,为了安全起见,重新启动fail2ban
:
systemctl restart fail2ban
Run Code Online (Sandbox Code Playgroud)
您甚至可能必须重复上述过程,直到日志中不再出现错误消息。
如果您的服务器在 Internet 上,则监视 fail2ban-client status sshd
. 如果您发现了所有 SELinux 问题,它很快就会开始显示失败和禁止计数。
请注意,您必须密切关注 SELinux 策略更新。如果出现selinux-policy
包更新,它可能会覆盖上述内容,您可能需要再次运行上述命令。你会知道是否是这种情况,因为fail2ban
它将再次停止工作!
归档时间: |
|
查看次数: |
29740 次 |
最近记录: |