将传入端口转发到我现有设置 IPTABLES 上的另一个专用 IP

将传入端口转发到我现有设置 IPTABLES 上的另一个专用 IP

在我的 Debian 8 网关上:我想将传入端口 9000 转发到 192.168.4.10:3389,将传入端口 9001 转发到 192.168.4.11:3389。

DHCP - WAN - eth0 -----> eth2 - LAN - 192.168.4.1

我将下面的rules.v4 与 iptables-restore 一起使用。我对 iptables 没有太多经验,而且网络上的所有教程我都无法将其实现到我现有的规则中。

我正在使用 Debian 8 和 iptables v1.4.21

我现有的 iptables 规则如下。

# Generated by iptables-save v1.4.21 on Sat Jul 25 12:31:07 2020
*nat
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT

*filter
-A INPUT -i lo -j ACCEPT
# allow ssh, so that we do not lock ourselves
# allow ping from WAN side
--append INPUT --protocol icmp --icmp-type any --src [REDACTED_IP] --jump ACCEPT


# open ports for gateway services
-A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i eth2 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i bond0 -p tcp -m tcp --dport 22 -j ACCEPT

-A INPUT -i eth0 -p tcp -m tcp --dport 9091 -j ACCEPT
-A INPUT -i eth2 -p tcp -m tcp --dport 9091 -j ACCEPT

-A INPUT -i bond0 -p tcp -m tcp --dport 8200 -j ACCEPT

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

-A INPUT -i eth0 -j DROP

COMMIT

我正在恢复这些规则 iptables-restore < /etc/iptables/rules.v4

任何帮助将不胜感激。谢谢。

答案1

假设网关有两个 NIC(eth0面向 WAN,eth2面向 LAN)。第一条规则将启用数据包转发(也称为路由)。来自互联网的传入流量将到达eth0,然后根据规则 #2 和 #3 转换到远程目标主机。这称为目标 NAT (DNAT)。第四条规则启用 NAT(伪装)。

$ sudo echo 1 > /proc/sys/net/ipv4/ip_forward
$ sudo iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 9000 -j DNAT --to-destination 192.168.4.10:3389
$ sudo iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 9001 -j DNAT --to-destination 192.168.4.11:3389
$ sudo iptables -t nat -A POSTROUTING -j MASQUERADE

如果一切顺利的话,然后考虑永久性的改变。

相关内容