我遇到的问题是 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 all 显然是问题所在,所以我的问题是为什么?为什么fail2ban会给出错误的命令,以及如何纠正它?
编辑:在没有网络计划的情况下运行 Ubuntu 服务器 20.04.3。
操作
iptables-multiport
并不适合禁止所有端口,您可以使用其他禁止操作。只需将
banaction
jail 设置为您选择的所有端口操作(例如iptables-allports
),或使用已在(也由您的发行版维护者设置或覆盖)中可用的插值变量“banaction_allports” ,也可以在您的.jail.conf
jail.local