fail2ban 过期的禁令不会从 iptables 中删除

fail2ban 过期的禁令不会从 iptables 中删除

我最近在 Ubuntu 16 上安装了 fail2ban,它正常工作,因为禁止/分配到 jail 可以正常工作,但是一旦 jail 分配到期,被禁止的 IP 仍作为 REJECT 保留在 iptables 中。我希望它在 bantime 到期后从 iptables 中删除。

下面的例子是一个非常基本的 DOS 监狱,禁止任何在 30 秒内加载 100 个页面的人,禁止他们 1 小时(3600 秒)。

注意:jail.conf 中的默认禁令时间为 600 秒

监狱.本地

 [http-get-dos]
 enabled = true
 port = http,https
 filter = http-get-dos
 logpath = /var/log/apache*/access.log
       /home/*/logs/access.log
 maxretry = 100
 findtime = 30
 bantime = 3600
 ignoreip = 127.0.0.1/8 ::1
 action = iptables[name=HTTP, port=http, protocol=tcp]

filter.d/http-get-dos

# Fail2Ban configuration file
[Definition]
failregex = ^<HOST> -.*"(GET|POST).*
ignoreregex =

我自己通过从其他三台服务器发送 1000 个连接进行了测试,并且它工作正常 - 所有三台服务器都被添加到监狱中,并且 iptables 规则:

iptables -L -n

Chain f2b-HTTP (2 references)
target     prot opt source               destination         
REJECT     all  --  xx.xx.xx.xx         0.0.0.0/0            reject-with 
REJECT     all  --  xx.xx.xx.xx         0.0.0.0/0            reject-with 
REJECT     all  --  xx.xx.xx.xx         0.0.0.0/0            reject-with 
icmp-port-unreachable

然而,已经过去了大约 2 个小时,iptables 中仍然存在三个 REJECT,并且服务器无法连接。

http-get-dos jail 上的实时状态(fail2ban-client status http-get-dos)正确返回了一些 IP被禁止,但目前没有。

Status for the jail: http-get-dos
|- Filter
|  |- Currently failed: 1
|  |- Total failed:     613
|  `- File list:        /var/log/apache2/access.log /home/*/logs/access.log 
`- Actions
|- Currently banned: 0
|- Total banned:     3
`- Banned IP list:

在安装 fail2ban 时,我运行:

 apt-get install iptables-persistent

在重启时继续禁止,但是这不会(??)忽略禁止时间。

我知道我可以手动从 iptables 中删除一个 IP,但我希望 fail2ban 能够在 bantime 过期后自动执行此操作。

我错过了什么?

相关内容