Fail2ban 删除策略 使用firewalld

时间:2024-04-09 14:36:28

因为服务器受到登录攻击,安装了Fail2ban进行自动拦截攻击ip。 但是部署好后,发现无法查看禁用了那些IP,也不知道如何取消禁止策略,因此有了下文。

先表述一下环境:服务器版本  CENTOS 7.2 , 防火墙为:firewalld。

部署好之后,进行了恶意登录测试,发现在限定的登录失败次数后,再连接服务器时,已经无法连接了。看来fail2ban是成功禁止了攻击ip。但是查看firewalld的策略,却没有发现任何策略。如下图:

Fail2ban 删除策略 使用firewalldFail2ban 删除策略 使用firewalld

随后在网上搜索了很多资料,但是都是fail2ban和iptables的配合删除策略,但是没有与firewall配合删除策略的。

为此,翻看了,fail2ban的配置文件,发现一个重要的配置文件。

/etc/fail2ban/action.d/firewallcmd-ipset.conf

重要内容如下:

[Definition]

actionstart = ipset create fail2ban-<name> hash:ip timeout <bantime>

              firewall-cmd --direct --add-rule ipv4 filter <chain> 0 -p <protocol> -m multiport --dports <port> -m set --match-set fail2ban-<name> src -j <blocktype>

actionstop = firewall-cmd --direct --remove-rule ipv4 filter <chain> 0 -p <protocol> -m multiport --dports <port> -m set --match-set fail2ban-<name> src -j <blocktype>

             ipset flush fail2ban-<name>

             ipset destroy fail2ban-<name>

actionban = ipset add fail2ban-<name> <ip> timeout <bantime> -exist

actionunban = ipset del fail2ban-<name> <ip> -exist


通过配置文件的定义,可知,策略是使用了‘--direct’参数,添加到防火墙的临时策略中去了,因此,查看配置看不到,那应该怎么看呢,可以使用‘ firewall-cmd --direct  --get-all-rules’  查看临时策略集。如下图所示:

Fail2ban 删除策略 使用firewalldFail2ban 删除策略 使用firewalld


从上图可知,添加了两条阻止ssh登录的策略,但是对IP地址的限制是在一个fail2ban-sshd的集合中配置的。那这个集合又如何查看呢?

这个集合是用的ipset 配置的,因此要查看也需要ipset查看。命令为“ipset list”,如下图所示:

Fail2ban 删除策略 使用firewalldFail2ban 删除策略 使用firewalld

到这里,已经可以很清楚的看到了被禁用的ip地址了,如果需要增加或删除ip地址,就很简单了。

如果要删除172.20.20.51 这个地址,那么可以使用下面的命令:

ipset del fail2ban-sshd 172.20.20.51 -exist

然后再次查看集合,ip地址已经删除了,见下图:

Fail2ban 删除策略 使用firewalld

综上所述删除fail2ban的限制策略,可以有两种解决办法:

1.  修改临时策略中的ipset集合

2.  重启电脑(因此临时策略重启后会消失)