监测已经3个月了。我观察到的fail2ban 的本质是,在几天的繁忙日程后,它会停止阻止ip。然后我重新启动它,它再次开始工作,阻止 IP。几个月来,事情都是这样,但几个月后,即使重新启动后,fail2ban 也不会阻止 IP。然后我必须重新安装fail2ban,然后它再次开始阻塞。
谁能说出fail2ban这种性质的原因吗?
如果没有任何配置文件或日志,很难知道发生了什么。不管怎样,这种行为可能是由于时钟同步问题造成的。
我不知道你的结构是否可以是:一台机器生成服务日志,另一台机器使用fail2ban读取并禁止。或者是带有fail2ban的主机和docker容器中的服务。在这些情况下,日期应该同步,包括时区。也许重新启动服务器后正在同步您的时钟并更改日期......我不知道。是有可能的。
Fail2ban 根据 /etc/fail2ban/jail.local 中设置的时间从列表中删除被禁止的主机
# "bantime" is the number of seconds that a host is banned.
bantime = 3600
对fail2ban的禁止不是永久的(除非通过某些配置修改完成),所以如果你用
重新启动sudo /etc/init.d/fail2ban restart
所有被封禁的ip都会自动收到解封。
为了重新启动服务而不丢失被禁止的 ip 列表,请输入
sudo fail2ban-client reload
最近在服务器上遇到了这种情况。 这就是我解决它的方法: 我发现在firewalld重新启动后,fail2ban停止并且不再启动。 所以我在firewalld.service文件中添加了一个ExecPost,以便在firewalld成功重新启动后重新启动fail2ban。
[root@server system]# cat /etc/*redhat*release*;uname -a
AlmaLinux release 8.10 (Cerulean Leopard)
Linux server.afk5.ro 4.18.0-425.19.2.el8_7.x86_64 #1 SMP Tue Apr 4 05:30:47 EDT 2023 x86_64 x86_64 x86_64 GNU/Linux
[root@server system]# grep Post /usr/lib/systemd/system/firewalld.service;cat /usr/bin/fail2ban-firewalld;ls -al /usr/bin/fail2ban-firewalld
ExecStartPost=/usr/bin/fail2ban-firewalld
#!/bin/bash
/usr/bin/systemctl restart fail2ban &
-rwxr-xr-x 1 root root 50 Nov 15 12:01 /usr/bin/fail2ban-firewalld
[root@server system]# systemctl daemon-reload;systemctl restart firewalld
似乎对我有用,我希望它也对你有用。