Linux iptables如何仅为几个IP指定端口转发

Linux iptables如何仅为几个IP指定端口转发,linux,iptables,Linux,Iptables,我继承了一个复杂的iptables脚本作为我们的网关/路由器。它处理一切都很好,包括纳特和哈宾·纳特。它还进行端口转发。但是,源IP无法指定端口转发。因此,如果端口25被转发,每个IP都可以连接到该端口 转发链策略是接受。我试着把它改成DROP,并建立了一些规则。似乎有太多关于为每个允许场景指定规则的内容 我想要的是指定如下内容: iptables-A FORWARD-p tcp-i$WAN_IFACE-dport 25-s(!(1.1.1.1和 1.1.1.2))-j下降 但是iptables

我继承了一个复杂的iptables脚本作为我们的网关/路由器。它处理一切都很好,包括纳特和哈宾·纳特。它还进行端口转发。但是,源IP无法指定端口转发。因此,如果端口25被转发,每个IP都可以连接到该端口

转发链策略是
接受
。我试着把它改成
DROP
,并建立了一些规则。似乎有太多关于为每个允许场景指定规则的内容

我想要的是指定如下内容:

iptables-A FORWARD-p tcp-i$WAN_IFACE-dport 25-s(!(1.1.1.1和 1.1.1.2))-j下降

但是iptables不支持


有什么方法可以实现这一点吗?

您可以为所有到端口25的数据包创建一个新链,然后在那里执行更具体的过滤:

iptables -N port25
iptables -A FORWARD -p tcp -i $WAN_IFACE --dport 25 -j port25
iptables -A port25 -s 1.1.1.1 -j ACCEPT
iptables -A port25 -s 1.1.1.2 -j ACCEPT
iptables -A port25 -j DROP
创建用户定义的链是实现
以及
规则的方法