Linux
如何在系統範圍的 linux 配置文件中安全地儲存代理密碼?
我正在大學環境中使用虛擬機,其他幾個使用者也具有 root 訪問權限。使用 /etc/rhsm/rhsm.conf 之類的配置文件:
proxy_hostname = proxy_port = proxy_user = proxy_password =
現在大學的代理伺服器需要使用者名和密碼。但我真的不想將我自己的個人使用者名和密碼儲存在其他系統管理員(儘管可能是值得信賴的)系統管理員可以並且將會閱讀的文件中。有解決辦法嗎?
在 Git 的情況下,我們每個人都可以在我們的本地目錄中擁有我們的密碼。(想想看,這在技術上並不安全,因為任何人都可以讀取任何目錄,但至少其他系統管理員不會在不查找密碼的情況下意外碰到密碼。)
簡單的回答是不可能的。root 使用者具有對伺服器的完全訪問權限。像 SELinux 這樣的工具可能會讓其他管理員更難,但並非不可能。
基本上有三種選擇:
- 通過將密碼隱藏在目錄中的某個位置來稍微混淆它。即按照史蒂夫的建議,使用 ~/boring/work/stuff/completely/unrelated/to/proxy/password.cfg 中的配置執行您自己的代理。或者說服代理請求程序從某個二進製文件中獲取密碼(或配置文件),該二進製文件將嘗試檢查它是否正在將密碼發送到代理程序。或者使用硬編碼的密碼編譯代理二進製文件。有許多可能性,但都是通過默默無聞的安全。
- 將密碼儲存在您是唯一管理員或您是唯一所有者(某些其他伺服器、快閃記憶體驅動器等)的地方,並嘗試說服代理以某種方式從該位置獲取密碼。
- 要求提供一個不需要針對其他管理員進行保護的不同密碼。
如果您“信任”其他管理員並且您只想保護密碼免受意外傷害,那麼第一個選項會很好。第二個將是“正確的安全”方式。第三個是“正確的企業”方式。
但是,您還應該考慮另一件事。一旦密碼被載入到代理中,壞人就可以嘗試將其從代理中取出。由於這似乎不是什麼大問題,如果對父代理的身份驗證過程使用明文密碼,則可能非常容易。即使是其他一些管理員出於正當理由分析網路流量時也可能發生意外。