環境

環境

環境

小型企業(太小而無法證明終端服務閘道的合理性)希望某些使用者能夠在家中存取其 Windows 10 桌面。

為此,我很幸運地使用 Windows 遠端桌面,但最佳實踐建議不要直接公開 RDP 連接埠。這是建議透過 VPN 保護 RDP,但是過去我通常會為此目的設置 SSH 隧道,因為我對此更加熟悉。

我假設客戶端有一些可以運行 SSH 伺服器的計算機,並將其稱為SSH_SERVER.就我而言,通常本地已經有一台 Linux 或 BSD 計算機,要么作為文件伺服器,要么充當防火牆(例如 FreeNAS、pfSense),如果沒有,我通常會投入一台重建的 PC 專門來處理這項工作。

SSH連接埠轉送版本

在本節中,我詳細介紹如何為需要 Windows 遠端桌面存取的用戶端設定 SSH 連接埠轉送。

  1. 為 SSH 設定僅金鑰身份驗證,SSH_SERVER並開啟防火牆以在某些非標準連接埠上公開此身份驗證<EXT_SSH_PORT>。注意:這是僅有的我曾經打開過的外部端口,全部與網路的通訊是透過 SSH 上的連接埠轉送完成的。
  2. 對於每個想要遠端連線的客戶端,我會產生一個用戶,SSH_SERVER並將 shell 設定為/bin/false
  3. 新增 SSH 限制,允許使用者僅針對他們想要連接的連接埠和裝置進行連接埠轉送。例如,我將以下內容新增至/etc/sshd_conf文件:
Match User <USERNAME>
  AllowAgentForwarding no
  PermitOpen <USER'S_WINDOWS_DESKTOP_IP>:3389
  ForceCommand echo 'This account is restricted.'

(更深入的討論這裡)。

  1. 對於每個裝置當使用者想要連線時,我會產生一個金鑰對,並使用我提供給他們的密碼進行加密。然後,我 (a) 將公鑰新增至使用者的~/.ssh/authorized_keys檔案中,並 (b) 將私鑰安全地傳輸到使用者的裝置。
  2. 我創建了一些輕鬆設定 SSH 隧道的方法,可以使用僅運行的簡單腳本ssh -L 10000:<USER'S_WINDOWS_DESKTOP_IP>:3389 <OFFICE_EXTERNAL_IP> -p <EXT_SSH_PORT>,也可以使用幫助軟體(例如,蘋果系統, 為了視窗)。
  3. 我將 RDP 會話的快捷方式新增至localhost:10000.

這種方法已經很有效,但我總是覺得它不夠“專業”,有一天我應該將這些 SSH 隧道轉換為 VPN。

VPN 限制

我正在使用 L2TP/IPSEC(在 UniFi Dream Machine 上,儘管我認為這裡的限制並非特定於路由器)進行探索,並立即遇到了一些限制:

  1. 辦公室網路必須具有與客戶端子網路不同的 IP 子網路。這將是一個小煩惱,但假設我可以做到這一點。另一方面,我發現您基本上只是希望您選擇一個客戶端將選擇的子網,這相當令人不滿意絕不碰巧在 - 如果他們正在訪問其他公司並使用他們的 wifi,而您恰好從那裡選擇了與 IT 供應商相同的子網,該怎麼辦?
  2. 不清楚如何將每個用戶的通訊限制為單一 PC 的單一連接埠。我知道我可以進行設置,以便將 VPN 用戶置於單獨的 VLAN 中,然後添加防火牆規則,限制從該 VLAN 到特定 RDP 桌面上連接埠 3389 的連接,但這並不能阻止 USER_A 嘗試連接到 USER_B 的桌面。如果我出於某種原因還打開 RDP 以外的端口,那麼所有 VPN 用戶也都可以訪問這些端口,除非我將每個用戶在他們的自己的VLAN,對於我基本上已經透過 SSH「免費」擁有的功能來說,這似乎是額外的管理開銷。
  3. 沒有明確的每台設備的安全性。使用我上面提到的 SSH 方法,如果 USER_A 的筆記型電腦被盜,則無需擔心。一方面,私鑰是加密的,因此除非筆記型電腦在用戶主動連接時被盜,否則他們應該無法存取辦公室網路。此外,為了增加安全性,我可以從 刪除與被盜筆記型電腦關聯的金鑰~/.ssh/authorized_keys,並且客戶擁有的所有其他設備(例如個人桌上型電腦)將繼續工作,無需額外配置。

TL;DR:為什麼有人喜歡使用 VPN 而不是 SSH 連接埠轉送?

似乎唯一首選 VPN 的情況是當您需要時全部透過辦公室網路進行通信,並且您對遠端網路有一定程度的了解/控制。 (站點到站點 VPN 屬於此類。)

我在這裡錯過了什麼嗎? VPN 是否比 SSH 連接埠轉送提供更高的效能和/或安全性?

答案1

在我看來,您提出的 SSH 解決方案對於當前的問題來說過於複雜。

兩個建議:

  1. 將 VPN 與 2FA/MFA 解決方案(例如 Duo)結合使用。

  2. 如果 VPN 有問題,請結合 2FA/MFA 提供者(例如 Duo)使用不同的遠端存取解決方案(例如 Teamviewer、AnyDesk 等)。

您可以建立一個免費的 Duo 帳戶,最多可供 10 個使用者使用。

相關內容