我有两个fail2ban
jail 处理postfix
:一个叫postfixsasl
,另一个叫postfixauth
。它们各自寻找不同的正则表达式匹配来触发禁令。它们都可能由来自同一 IP 地址的活动触发,这种情况有时会发生。
如果其中一项禁令先于另一项禁令到期,则看起来该 IP 地址似乎被解除了禁令,即使第二项禁令仍然有效。
例如,假设我运行fail2ban-client get postfixauth banip --with-time
并在其输出中获得以下行(实际 IP 地址被虚拟出来):
aaa.bbb.ccc.ddd 2020-09-28 10:58:24 + 86400 = 2020-09-29 10:58:24
...假设我运行fail2ban-client get postfixsasl banip --with-time
并得到以下输出。相同的 IP 地址以相同的方式被虚拟出来:
aaa.bbb.ccc.ddd 2020-09-28 20:00:37 + 3600 = 2020-09-28 21:00:37
显然,第二个禁令会比第一个禁令更早到期。但是,似乎一旦第二个禁令被解禁,aaa.bbb.ccc.ddd
IP 地址似乎也会被解禁,甚至比第一个禁令的到期时间还早。
我希望aaa.bbb.ccc.ddd
IP 地址保持被阻止状态直到最新的禁令到期,但这并没有发生在我身上。
f2b-postfixauth
在2020-09-29 21:00:37之前,输出部分出现如下一行iptables -L
:
REJECT all -- aaa.bbb.ccc.ddd anywhere reject-with icmp-port-unreachable
f2b-postfixsasl
...输出部分中出现以下行iptables -L
:
REJECT all -- aaa.bbb.ccc.ddd anywhere reject-with icmp-port-unreachable
2020-09-29 21:00:37 之后,两条行都从输出中消失iptables -L
。
这是预期的行为吗?还是说我的fail2ban
配置中存在一些完全不相关的错误,导致这种情况发生?如果这不是预期的行为,那么我将fail2ban
进一步调查我的配置。
非常感谢。
答案1
我正在使用csf
“正常的”非fail2ban
防火墙处理,我发现csf
并以不兼容的方式fail2ban
进行交互iptables
,这就是导致我的问题的原因。
我正在使用iptables-multiport
来fail2ban
进行禁止,并且同时存在csf
作为我的防火墙服务导致先前被禁止的(通过fail2ban
)IP 地址仍然可以通过防火墙。
iptables-multiport
我没有使用,而是更改了我的fail2ban
监狱配置,仅通过进行禁止和取消禁止csf
,如下所述:
https://github.com/fail2ban/fail2ban/issues/2340
由于iptables-multiport
不再在我的csf
启用fail2ban
设置中执行操作,因此所有禁止和取消禁止尝试现在都按预期工作。