
我們在 NAT 後面有一個集群(目前有 10 台機器)。專用網路和常規公司網路之間有一個 NAT 網關/跳轉主機。
使用者可以ssh
跳轉主機,然後進入 NAT 後面的任何其他電腦。
我想提供一個簡單的腳本,幫助他們將 NAT 後面的 Web 介面隧道連接到本機。
所以我的第一個建議是:使用 SSHocks 代理程式並將介面隧道連接到本機。
所以我的問題是:如果我創建這兩條隧道(一條從我同事的本地電腦到跳轉主機,一條從跳轉主機到 NAT 後面的相應電腦) - 這條隧道的安全性如何?
想像一下worker1
誰正在這樣做:
ssh -t [email protected] -L 10001:localhost:33388 ssh -t hostxyz.behindnat.tld
跳轉主機上有一個開放埠 33388,正在偵聽環回介面。如果worker2
只是登入跳轉主機並使用本地主機連接埠 33388 以及已經建立的隧道連接,他一定不會再向 進行身份驗證hostxyz.behindnat.tld
,對吧?
這對我來說似乎是一個巨大的安全漏洞,有更好的解決方案嗎?
答案1
我假設您的場景意味著 Jumphost 和 Hostxyz 之間預先存在 ssh 會話,該會話將對所有有權訪問 Jumphost 偵聽連接埠的人開放。
您提到了襪子和隧道,這在技術上是兩個不同的東西。
像這樣設定worker1的socks代理:
ssh [email protected] -D 127.0.0.1:10001
設定worker1的瀏覽器使用sockslocalhost:10001
透過jumphost.tld進行瀏覽
如果您想直接從worker1 ssh 到hostxyz,您可以執行以下操作。
ssh [email protected] -L localhost:10001:hostxyz:22
ssh user@localhost:10001
這就是我所做的。我使用 .ssh/config 檔案來保持一切井井有條。我建議閱讀以下內容以獲取有關配置文件和隧道的資訊。https://man.openbsd.org/ssh_config觀看 Michael W Lucas 關於 openssh 的演講,了解另一本不錯的入門書。