我在专用的ubuntu服务器上有一个防火墙(基于iptables)。 我有几个局域网客户端。与iptables转发端口到其他客户端,但与原始发件人ip识别
在我的一个LAN客户端上,我运行的软件可以根据IP来限制访问。 对我来说,重要的是我可以通过使用广域网IP而不是局域网IP来限制它。
我已经配置了我的防火墙,以便一个/一个端口被转发到一个工作良好的LAN客户端(在stackoverflow中找到解决方案)。到目前为止没有问题。
但是在LAN客户端,我没有看到外部发送者的IP地址,但是 - 我认为由于转发 - 客户端发现数据包来自我的LAN服务器。
问题是:如何将我的服务器上的端口转发到具有不同端口的另一个LAN IP,但是这样LAN客户端就能识别此数据包的外部IP。
让我们更清楚:
服务器LAN IP:192.168.1.10 服务器端口:8080
应该被转发到: 客户LAN IP:192.168.1.20 客户LAN端口:8000
用iptables的,我有:
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 8080 -d 192.168.1.10 -j DNAT --to 192.168.1.20:8000
iptables -A FORWARD -p tcp -d 192.168.1.20 --dport 8000 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -p tcp --dport 8000 -d 192.168.1.20 -j SNAT --to 192.168.1.10
书面的作品,但是当网络IP 88.77.66.55的人发送一个数据包,然后我的LAN客户端(192.168.1.20)发现数据包来自我的LAN服务器(192.168.1.10),而不幸的是不是来自88.77.66.55。
我可以修复...吗?
当我删除最后一条规则时,它不再工作。请记住,它是一个双向连接,所以还应该发回一个数据包。所以我觉得我需要冒险。 – 2013-02-14 21:12:01
然后通过接口拆分正在发送的SNAT规则,为传出的数据包做SNAT,但保留原来的srcIP。 – 2013-02-15 08:06:42