我继承了一个复杂的iptables脚本,充当我们的网关/路由器。它处理好一切,包括NAT和harpin nat。它还进行端口转发。但是,端口转发不能由源IP指定。因此,如果转发端口25,则每个IP都可以连接到该端口。
FORWARD链政策是ACCEPT
。我尝试将其更改为DROP
并制定了一些规则。似乎在为每个允许方案指定规则方面存在太多问题。
我要找的是指定这样的东西:
iptables -A FORWARD -p tcp -i $ WAN_IFACE --dport 25 -s(!(1.1.1.1和 1.1.1.2)) - j DROP
但iptables不支持and
和or
。
有没有办法实现这个?
答案 0 :(得分:1)
您可以为进入端口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
创建用户定义链是实施and
和or
规则的方法。