fail2ban 无法将 iptables 添加到规则

fail2ban 无法将 iptables 添加到规则

我在使用 fail2ban 时遇到问题,没有将被禁止的 IP 添加到 iptables 中。

这是错误;

2022-01-29 15:13:48,499 fail2ban.actions        [2608]: NOTICE  [man] Restore Ban 212.192.246.26
2022-01-29 15:13:48,513 fail2ban.utils          [2608]: ERROR   7f9281692660 -- exec: iptables -w -N f2b-man
iptables -w -A f2b-man -j RETURN
iptables -w -I INPUT -p tcp -m multiport --dports all -j f2b-man
2022-01-29 15:13:48,514 fail2ban.utils          [2608]: ERROR   7f9281692660 -- stderr: 'iptables: Chain already exists.'
2022-01-29 15:13:48,514 fail2ban.utils          [2608]: ERROR   7f9281692660 -- stderr: "iptables v1.8.4 (legacy): invalid port/service `all' specified"
2022-01-29 15:13:48,514 fail2ban.utils          [2608]: ERROR   7f9281692660 -- stderr: "Try `iptables -h' or 'iptables --help' for more information."
2022-01-29 15:13:48,514 fail2ban.utils          [2608]: ERROR   7f9281692660 -- returned 2
2022-01-29 15:13:48,514 fail2ban.actions        [2608]: ERROR   Failed to execute ban jail 'man' action 'iptables-multiport' info 'ActionInfo({'ip': '212.192.246.26', 'family': 'inet4', 'fid': <function Actions.ActionInfo.<lambda> at 0x7f9280d62e50>, 'raw-ticket': <function Actions.ActionInfo.<lambda> at 0x7f9280d63550>})': Error starting action Jail('man')/iptables-multiport: 'Script error'

所以 iptables 不喜欢;

iptables -w -I INPUT -p tcp -m multiport --dports all -j f2b-man

--dport全部 显然是问题所在,所以我的问题是为什么?为什么fail2ban会给出错误的命令,以及如何纠正它?

编辑:运行没有 netplan 的 Ubuntu 服务器 20.04.3。

答案1

iptables-multiport禁止所有端口的操作并不真正合适,您可以使用其他禁止操作。

只需将banaction监狱设置为您选择的所有端口操作(例如iptables-allports),或使用插值变量“banaction_allports”已经在中可用jail.conf(也由您的分发维护者设置或覆盖),也可以在您的默认部分中设置jail.local

[man]
# banaction = iptables-allports
banaction = %(banaction_allports)s

[other-allports-jail]
banaction = %(banaction_allports)s

相关内容