如何使用 Iptables 允许本地 IP 的所有端口(两个特定端口除外)

如何使用 Iptables 允许本地 IP 的所有端口(两个特定端口除外)

我正在寻找一种方法,允许我的 Debian 服务器上所有端口的连接仅针对本地 IP(192.168.2.*),但两个特定端口 X 和 Y 除外,这两个端口应该允许任何 IP。如果 IP 不是本地 IP,则应阻止除端口 X 和 Y 之外的所有端口的所有连接。

我该如何使用 Iptables 处理这种情况?

答案1

我不确定我是否理解得很好,但是下面是具体方法。

要允许本地 IP 范围 192.168.2.0/24 的所有端口(除两个端口(X 和 Y)之外),您可以使用如下规则:

iptables -A INPUT -s 192.168.2.0/24 -p tcp --dport X -j DROP
iptables -A INPUT -s 192.168.2.0/24 -p tcp --dport Y -j DROP
iptables -A INPUT -s 192.168.2.0/24 -p tcp -j ACCEPT

对于其他非本地 IP,仅允许连接到 X 和 Y,您可以使用:

iptables -A INPUT -p tcp --dport X -j ACCEPT
iptables -A INPUT -p tcp --dport Y -j ACCEPT
iptables -A INPUT -p tcp -j DROP

您没有指定协议(TCP 或 UDP),我假设是 TCP,因为上面已经说得很清楚了。您需要按照这个特定的顺序插入规则,我假设没有其他预定义规则。

相关内容