Debian 10中Fail2Ban运行正常但未添加f2b-sshd等iptables链规则问题
Fail2Ban 未生成iptables规则排查方案
- 首先确认核心服务与配置加载状态
执行systemctl status fail2ban确认服务无异常退出、无启动报错,再执行fail2ban-client status验证sshd等需要启用的jail已处于激活状态,排除配置错误导致jail未实际加载的问题。 - 排查防火墙后端兼容性问题
Debian 10 默认将nftables作为防火墙底层框架,自带的iptables命令实际是nftables兼容层,Fail2Ban默认的iptables-multiport封禁动作无法在该兼容层下正常写入规则。
执行iptables -V,如果输出包含nf_tables字段即可确认该问题,两种解决方案可选:- 适配当前启用的UFW防火墙,修改
jail.local中的banaction值为ufw,重启fail2ban服务验证 - 切换iptables为传统legacy后端,执行以下命令后重启fail2ban服务:
update-alternatives --set iptables /usr/sbin/iptables-legacy update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
- 适配当前启用的UFW防火墙,修改
- 查看运行日志定位具体错误
执行tail -n 100 /var/log/fail2ban.log,筛选ERROR级别的日志,可直接定位规则写入失败的具体原因,比如权限不足、iptables命令调用失败、日志路径匹配错误等问题。 - 手动触发封禁验证动作有效性
执行测试命令手动触发封禁:fail2ban-client set sshd banip 192.168.255.255,测试完成后可执行fail2ban-client set sshd unbanip 192.168.255.255解除测试封禁,执行完成后立即查看iptables规则,确认是否生成对应的f2b链与规则条目。
内容的提问来源于stack exchange,提问作者Don Matteo
相关产品推荐
相关产品推荐

