仅允许来自 2 个 ips 的连接

仅允许来自 2 个 ips 的连接

我需要阻止端口 30000 上的所有连接。我已经这样做了,使用如下命令

iptables -I INPUT ! -s IP_HERE -p tcp --dport 30001 -j DROP

但是现在我需要 2 个 ips,我该怎么做?

我需要允许的 ips 包括:localhost 和其他 ip。比如说 google.com 的 ips

答案1

反转 iptables 规则中的逻辑(如果...则接受,而不是如果不...则丢弃)并使用两个规则:

iptables -A INPUT -s FIRST_IP_HERE -p tcp --dport 30001 -j ACCEPT
iptables -A INPUT -s SECOND_IP_HERE -p tcp --dport 30001 -j ACCEPT
iptables -A INPUT -p tcp --dport 30001 -j DROP

答案2

要丢弃所有流量但允许两个特定的 IP 地址,您需要按此顺序使用三个规则(iptables 规则按顺序处理,因此顺序很重要):

  • 允许 IP 1
  • 允许 IP 2
  • 全部删除

如果多个 IP 位于同一子网,则可以使用 CIDR 或 IP/掩码表示法。

您还可以做一些更花哨的事情,例如创建链条,请参见此链接

相关内容