使用 iptables 进行 tcp/ip 路由的特定需求

使用 iptables 进行 tcp/ip 路由的特定需求

我想做以下事情:

  • 1.2.3.4一台具有公共IP(例如)和内部IP(例如192.168.1.1)的服务器
  • 多个 VPN 路由器连接(IPSEC 和 OPENVPN)(端口 500/1194/4500)
  • 内部 VPN Linux 服务器(192.168.1.2->192.168.1.100例如)

我想要这个:

  • 来自特定 IP(例如5.6.7.8)的连接到达 IPSEC 和 OPENVPN 传入端口,数据包被重定向到 -> 192.168.1.2(也许到其他端口?)
  • 来自另一个IP(例如)的连接8.9.10.11到达IPSEC和OPENVPN传入端口,并且数据包被重定向到-> 192.168.1.3 (也许到其他端口?)

等等...

  1. 可行吗?我搜索了很多,但没有找到答案。
  2. 如果是的话,该怎么做iptables

答案1

这是可行的。我不知道您是否已经运行了具有所有策略的 iptables 等。因此,我将只编写将您要查找的内容添加到位于 Intranet 和 Internet 之间的工作路由站的行。仅靠这两行是不行的。

尝试这样的事情:

iptables -t nat -A PREROUTING -s 5.6.7.8 -i eth0 -p tcp --dport 500 -j DNAT --to-destination 192.168.1.2:500
iptables -t nat -A POSTROUTING -s 5.6.7.8 -i eth0 -p tcp --dport 500 -j SNAT --to-source <ip of iptables computer>

第一行将目标更改为内部服务器,以便数据包发送到正确的目标。第二行更改源,以便服务器知道将数据包发回何处。

相关内容