对传入连接进行全面 NAT,同时保持伪装功能正常运行

对传入连接进行全面 NAT,同时保持伪装功能正常运行

您将如何进行以下操作: NAT

注意:使用 nat 表的 POSTROUTING 链中的经典 MASQUERADE 操作,Internet 访问应该始终有效。

现在的挑战是:

  • 对于从外部(右侧)通过某个端口访问路由器(中间)的所有连接(1)
  • 将这些请求发送到内部主机(左),同时使其看起来好像请求来自路由器(中)(2)
  • 对于答复(3&4),请逆向该过程。

我不知道如何调用该特定方法进行 NAT,而且我也不知道这是否可行(或使用 netfilter)。

(不要问为什么。但如果你这样做:它与 192.168.1.2 主机上的路由表有关,该主机在我在此处显示的接口上没有默认路由,但我想从任何地方使用它,我相信这是唯一的方法;通过将互联网访问映射到直接连接的连接/网络,从而覆盖路由表。我希望。)

请记住:使用经典伪装后互联网访问仍可继续进行。

答案1

因此,192.168.1.2 上没有默认网关,并且可能无法指定。因此,从此处传出的流量到互联网上的随机主机将不知道要去哪里。

我认为,实现纯粹想要做的事情的方法iptables是在 192.168.1.2 和 192.168.1.44 之间设置第二个 NAT。

如果可能的话,使用代理或 VPN 隧道之类的操作可能会更容易,也不会那么麻烦。

进入 VPN 路由 - 在 192.168.1.44 上运行 OpenVPN 服务器,创建一个虚拟“tun0”接口。在 192.168.1.2 上设置一个连接到它的客户端 - 这也会在其端设置一个虚拟“tun0”。

然后,您将这些虚拟接口放在它们自己的网络上(如 192.168.99.0/24)。服务器端的“tun0”将默认为 192.168.99.1,而另一端可能默认为 192.168.99.6 - 但您可以使用“客户端配置指令”为其分配一个固定 IP。告诉任何需要在 Internet 上可见的服务在 192.168.99.6 上监听。PREROUTING 表中的简单 REDIRECT 目标应该将特定端口重定向到 192.168.99.6。

为了解决性能问题,如果您不担心 LAN 的安全性,则不必启用加密 - 您可以将身份验证设置为包含在启动脚本中的密码(尽管您至少需要服务器证书)并使其成为一条直隧道。

如果您的服务可以放在 LAN 端“仅限内部”代理后面,那么您也许能够在这种情况下获得该代理来工作。

相关内容