面板登入:只靠一組密碼不算防禦

密碼的強度,只有在猜測代價高昂時才有意義。而代價最高的假設,就是認為身在區域網路裡就很安全。

AtlasPVE ·

本條目涵蓋以下問題

  • proxmox 登入 安全性
  • proxmox 防止暴力破解
  • proxmox 雙重驗證 設定
  • proxmox 更改 root 密碼
  • proxmox 管理介面 安全嗎

面板設好密碼,大家就以為事情到此為止。但密碼只是單一道防線,而它的強度無法驗證,只能假設。

真正會改變結果的,有三件事。

一:嘗試次數限制

密碼的強度,只有在猜測代價高昂時才有意義。若可以無限次嘗試,任何密碼都只是時間問題,差別只在於要花多久。

嘗試次數限制並不會讓密碼變得更強,而是讓猜測變得昂貴。這是兩回事,而後者掌握在管理員手中。

二:工作階段存放在哪裡

登入之後,代表使用者身分的不是密碼,而是工作階段。所以真正的問題是:這個工作階段存放在哪裡,誰能接觸到它?

工作階段應該放在瀏覽器中指令碼無法讀取的地方,並且加上標記,讓其他網站的頁面無法以使用者的名義送出請求。否則,一個沒有關掉的分頁就能以使用者的權限行事。

三:第二道步驟

這是唯一能讓外洩的密碼失去作用的措施。密碼可能被竊取、被猜中,或來自其他某個網站的資料外洩。第二道步驟無法阻止這些事情發生,它只確保光有密碼並不足夠。

可以變更內容的帳號應啟用它。只能檢視的帳號,則視偏好而定。

代價最高的假設:我在區域網路裡

這句話是安全領域中最常被重複、也最錯誤的一句。

數一數區域網路上有什麼:提供給訪客的無線網路、一台多年沒有更新的智慧裝置、孩子的電腦,以及在自己伺服器上執行的每一台虛擬機器。

最後這一項最常被忽略。在虛擬機器裡執行從網際網路下載的軟體時,那台機器就在區域網路上,能連到面板的登入頁面。

所以,沒有把面板公開出去,並不代表沒有人能嘗試,只代表不是網際網路上的每個人都能嘗試。差別在於誰離得夠近,近到可以嘗試。

依序該做的事

不要把面板直接暴露在網際網路上。如果需要遠端存取,就在中間加上一層。

確認有嘗試次數限制。沒有限制的話,從區域網路猜密碼是免費的。

為可以變更內容的帳號加上第二道步驟。

不要再用權限最高的帳號做日常工作。這在本 wiki 中有獨立的文章,可以視為本文的續篇:即使登入受到保護,登入的人能變更多少東西,是另一個問題。

Atlas 的做法

Atlas 的登入關卡有一個嘗試次數計數器,而且計數器是依來源位址分別記錄的。若在 5 分鐘內出現 10 次錯誤嘗試,該位址會被封鎖 15 分鐘。

這項機制為什麼存在,就寫在程式碼自己的註解裡,也正是本文的主題:Proxmox 本身已有延遲機制,但在 Atlas 代理程式的關卡也必須擋下,否則從區域網路猜密碼就是免費的。

在工作階段這一側,同時使用兩種標記。工作階段識別碼以指令碼無法讀取的形式保存在瀏覽器中,並且加上標記,使其不會隨著來自其他網站的請求一起送出。因此,另一個沒有關掉的分頁中的頁面,無法讓瀏覽器使用這個工作階段。

一個誠實的限制:這些都不會讓密碼變得更強。它們讓猜測變得昂貴,並讓工作階段不再屬於可被竊取的類別。密碼本身仍由使用者自己選擇,是否啟用第二道步驟也一樣。

資料來源

Proxmox 官方文件。內容為英文,且在此主題上以官方文件為準。

相關條目

這項工作在 Atlas 中是什麼樣子?

前往產品頁面