Linux
通過雙 SSH 隧道路由 telnet/23 連接(SSH 代理伺服器)
我有一個承包商正在使用公司網路之外的 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 伺服器上使用公鑰身份驗證來代替密碼。前面的設置工作要多一些,但比使用密碼更安全。