iptables-添加其他允许的 IP

iptables-添加其他允许的 IP

这是我用来作为参考的:https://unix.stackexchange.com/a/145933

如果我这么做:

iptables -I INPUT -p tcp -s MY IP --dport 21 -j ACCEPT
iptables -I INPUT -p tcp -s 0.0.0.0/0 --dport 21 -j DROP

我知道只能MY IP连接到端口 21。但是有没有办法向该端口添加另一个可接受的 IP?

我曾尝试过这样做:

iptables -I INPUT -p tcp -s MY OTHER IP --dport 21 -j ACCEPT

但它仍然被阻止,但我认为这是因为 DROP 是在之前。我可以在不删除 DROP 规则的情况下附加吗?

答案1

您的方法存在几个问题。首先,您-I插入所有规则。如果不指定索引,则意味着它将被插入到顶部。这不是您想要的。如果不插入,请使用-Append 来阐明您正在做什么。这样,新规则将最终位于底部。

一切都与顺序有关:规则从上到下进行处理,直到结束处理的规则匹配。类似于ACCEPTDROP

你想要的是这样的:

iptables -A INPUT -p tcp -s MY IP --dport 21 -j ACCEPT
iptables -A INPUT -p tcp -s 0.0.0.0/0 --dport 21 -j DROP
iptables -I INPUT 2 -p tcp -s MY OTHER IP --dport 21 -j ACCEPT

它首先重新创建您最初的状态。然后,它插入另一条规则,因此它将最终位于位置 2,从而将其他规则移开。这意味着结果相当于这样做:

iptables -A INPUT -p tcp -s MY IP --dport 21 -j ACCEPT
iptables -A INPUT -p tcp -s MY OTHER IP --dport 21 -j ACCEPT
iptables -A INPUT -p tcp -s 0.0.0.0/0 --dport 21 -j DROP

相关内容