如何使用 iptables 为 INPUT 链中的特定目标 IP 打开端口?

如何使用 iptables 为 INPUT 链中的特定目标 IP 打开端口?

我有一台 Debian 7 Wheezy 服务器,分配了 2 个 IP。我在分配给 IP 的不同端口上提供了不同的服务。如何设置 iptables 规则,使其只对其中一个 IP 起作用?

例如:我有 2 个 IP:192.168.1.234 和 192.168.1.235 我只想为 192.168.1.234 开放端口 56,只想为 192.168.1.235 开放端口 80。

答案1

  • 定义链的默认策略INPUT

    iptables -P INPUT DROP

  • 允许连接到特定的 IP 地址和 UDP/TCP 端口组合(以 TCP 为例):

    iptables -A INPUT -d 192.168.1.234 -m tcp -p tcp --dport 56 -j ACCEPT iptables -A INPUT -d 192.168.1.235 -m tcp -p tcp --dport 80 -j ACCEPT

  • 由于默认策略,任何其他流量都将被丢弃,DROP因此在将规则投入生产之前将其记录下来以确保一切按定义运行是一种很好的做法:

    iptables -A INPUT -m limit --limit 2/min -j LOG --log-prefix "Dropped: "

  • 最后,您可以删除此日志记录规则

相关内容