Ubuntu

通過反向代理的 SSH

  • April 4, 2013

好的,我有一個奇怪但希望很簡單的。我已經查過 SSH Tunneling 並且我熟悉“ssh -r”命令。但這種情況不同。

這是設置。我有 1 個網關反向代理/負載平衡器/防火牆伺服器,它接受 http 請求並將它們交給 3 個後端伺服器。只有網關具有可公開訪問的 IP 地址。所有後端伺服器都僅限於 VPN 內的私有 IP。我沒有對任何這些伺服器(VPS 主機)的物理訪問權限。所有伺服器都是 Ubuntu,代理是磅。

我需要做的是,使用 SSH 通過網關連接到任何“盒子”進行維護、更新等。就像從我的家用機器呼叫“ssh user@gateway -p

$$ BACKEND PORT $$" 並讓網關以標準的 SSH 方式將該埠號路由到正確的機器。我該如何做到這一點?

如果磅伺服器是防火牆,我假設它將執行 iptables,將 iptables 設置為從外部埠 X 轉發到內部埠 Y。磅旨在代理 http 和 https,應該完成非 Web 流量的埠轉發通過適當的軟體,在這種情況下不是磅。

像這樣的東西可能會起作用

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

等等,適應你的情況等等。

引用自:https://serverfault.com/questions/496041