Linux

通過雙 SSH 隧道路由 telnet/23 連接(SSH 代理伺服器)

  • June 9, 2011

我有一個承包商正在使用公司網路之外的 Windows PC。但是,我們允許通過防火牆連接到某些主機/埠。不允許從承包商的 PC 到特定的 AS400 (iSeries) 伺服器的 Telnet/23。

我想在企業網路中使用 Linux 機器創建一對 SSH 隧道。

這是我建議的設置:

OutsideWindowsPC <-> { Internet } <-> InsideLinuxServer <-> InsideAS400Server

我們可以授予對公司網路內 Linux 伺服器上某些埠的訪問權限。

我知道可以做到這一點,但我不能自己縫合完整的解決方案。為了安全起見,該解決方案需要擴展到大約 10 個承包商,每個承包商都有自己的 PC。

最後,我們希望從承包商的 Windows PC telnet/23 到公司網路上的 AS400 伺服器。

最後,我意識到,在理想情況下,我們會直接通過隧道連接到 AS400 伺服器,或者使用安全協議連接到 AS400 伺服器。然而,政治阻止了這種解決方案!

目前尚不清楚您所說的“雙隧道”是什麼意思。聽起來您只是在談論使用 SSH 埠轉發來允許承包商通過“InsideLinuxServer”電腦訪問 AS/400。

  • 確保允許從 Internet 到“InsideLinuxServer”的 SSH
  • 在“InsideLinuxServer”上創建一個憑證供承包商使用。(您可能想要更深入地了解並阻止承包商對該 Linux 機器的 shell 訪問,關閉 SFTP 等)
  • 讓承包商配置他們的 SSH 客戶端以將某個本地埠隧道連接到 AS/400 的埠 23。在“PuTTY”中,這是在設置的Connection節點的**SSH節點的Tunnels節點中完成的。他們會添加一個源埠作為他們機器上的一些未使用埠(例如“2300”)、IP 地址的目標或 AS/400 的名稱,並在其後附加一個“:23”並將其添加到轉發的埠列表。

在承包商連接到帶有 SSH 的“InsideLinuxServer”機器後,他們將能夠通過 TELNET 連接到他們自己的埠 2300(在我的範例中)。PuTTY 將響應 TCP 連接嘗試並將流量轉發到“InsideLinuxServer”,後者將與 AS/400 上的埠 23 建立 TCP 連接並轉發流量。

至於使其“可擴展”,對於這麼多客戶,我只需為他們編寫有關如何配置 PuTTY 並在途中發送它們的說明。

為了使事情更安全,您可能需要考慮在 SSH 伺服器上使用公鑰身份驗證來代替密碼。前面的設置工作要多一些,但比使用密碼更安全。

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