通过反向代理进行 SSH

通过反向代理进行 SSH

好吧,我有一个奇怪但希望简单的问题。我已经查过 SSH 隧道,并且熟悉“ssh -r”命令。但这种情况不同。

这是设置。我有 1 个网关反向代理/负载均衡器/防火墙服务器,它接受 http 请求并将其交给 3 个后端服务器。只有网关具有可公开访问的 IP 地址。所有后端服务器都限制为 VPN 内的私有 IP。我无法物理访问任何这些服务器(VPS 托管)。所有服务器都是 Ubuntu,代理是 Pound。

我需要能够做的是,使用 SSH 通过网关连接到任何“盒子”进行维护、更新等。就像从我的家用机器调用“ssh user@gateway -p [BACKEND PORT]”并让网关以标准 SSH 方式将该端口号路由到正确的机器。我该如何实现这一点?

答案1

如果 Pound 服务器是防火墙,我假设它将运行 iptables,设置 iptables 以从外部端口 X 转发到内部端口 Y。Pound 旨在代理 http 和 https,非 Web 流量的端口转发应由适当的软件完成,在本例中不是 Pound。

类似这样的方法可能会有用

iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 222 -j DNAT --to 192.168.1.2:22
iptables -A FORWARD -p tcp -d 192.168.1.2 --dport 22 -j ACCEPT

iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 223 -j DNAT --to 192.168.1.3:22
iptables -A FORWARD -p tcp -d 192.168.1.3 --dport 22 -j ACCEPT

等等,根据您的情况进行调整等等。

相关内容