You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Fail2Ban将封禁流量重定向至指定IP而非丢弃

如何配置Fail2Ban将封禁流量重定向至指定IP而非丢弃

Hey,你遇到的问题我之前也帮人解决过——REDIRECT确实只能修改目标端口,要把流量重定向到不同IP得用DNAT(目标网络地址转换),这是iptables里专门用来调整目标IP/端口的规则。下面一步步教你修改配置:

1. 调整Fail2Ban的Action配置文件

你当前使用的是iptables-multiport-24.conf(一般存放在/etc/fail2ban/action.d/目录下),需要把原有封禁规则替换为DNAT规则。打开这个文件,修改以下内容:

替换actionstart、actionban、actionstop指令

原来的规则是在filter表操作,而DNAT属于nat表的功能,所以我们要调整到nat表创建专属链并添加规则:

# 初始化nat表的Fail2Ban专属链,把指定端口的流量引到这个链
actionstart = iptables -t nat -N fail2ban-<name>
              iptables -t nat -I PREROUTING -p <protocol> -m multiport --dports <port> -j fail2ban-<name>

# 封禁时添加DNAT规则,将源IP段的流量重定向到你指定的目标IP(替换成实际IP,端口可保留原端口比如SMTP的25)
actionban = iptables -t nat -I fail2ban-<name> 1 -s <ip>/24 -j DNAT --to-destination 192.168.1.100:<port>

# 停止服务时清理nat表的链和规则
actionstop = iptables -t nat -F fail2ban-<name>
             iptables -t nat -X fail2ban-<name>
             iptables -t nat -D PREROUTING -p <protocol> -m multiport --dports <port> -j fail2ban-<name>

注意:把192.168.1.100换成你实际要重定向到的IP地址;如果目标端口和原端口不同,也可以修改<port>为新端口(比如原端口25,目标端口2525就写192.168.1.100:2525)

2. 开启服务器IP转发功能

DNAT规则生效的前提是服务器能转发流量到目标IP,所以需要开启IPv4转发:

# 临时开启(重启服务器后失效)
echo 1 > /proc/sys/net/ipv4/ip_forward

# 永久开启(编辑sysctl配置文件)
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p

3. 重启Fail2Ban使配置生效

修改完成后,重启Fail2Ban服务加载新配置:

systemctl restart fail2ban

验证规则是否生效

可以用以下命令查看nat表中是否已添加DNAT规则:

iptables -t nat -L fail2ban-SPAMTRAP -n

当有IP被封禁时,你会看到对应源IP段的DNAT规则条目。

备注:内容来源于stack exchange,提问作者BruceLeeRoy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 12:24:11