Linux

僅允許通過密鑰登錄且 UsePAM 設置為“是”時的安全隱患?

  • January 25, 2016

在設置新伺服器時,我通常希望只允許通過密鑰驗證而不是 root 使用者登錄。因此,我像這樣編輯 sshd_config:

我將“PermitRootLogin”更改為“no”並取消註釋“PasswordAuthentification”並將其也設置為“no”。雖然這很好用,而且我檢查並發現無法僅通過密碼登錄,但我想知道為什麼有些指南建議將“UsePAM”設置為“否”,而其他指南根本沒有提及(並因此保持它是’是’)。在切換到僅密鑰身份驗證時是否應更改 UsePAM 設置似乎沒有明確的意見。

如果有的話,將 UsePAM 保留原樣(“是”)有什麼安全隱患?

您保持不變UsePAMyes因為 whenPasswordAuthentication設置為noPAM 不會呼叫 PAM 服務的“auth”部分:

UsePAM 啟用 Pluggable Authentication Module 介面。如果設置為“yes”,這將啟用使用 ChallengeResponseAuthentication 和 PasswordAuthentication 的 PAM 身份驗證以及所有身份驗證類型的 PAM 帳戶和會話模組處理。

因為 PAM 質詢-響應身份驗證通常起到與密碼身份驗證相同的作用,所以您應該禁用 PasswordAuthentication 或 ChallengeResponseAuthentication。

如果啟用 UsePAM,您將無法以非 root 使用者身份執行 sshd(8)。預設值為“否”。

通過這種方式 PAM 執行accountsession正確鍵入,如果您想根據 IP、時間或帳戶的其他因素限制對服務的訪問,這實際上非常重要。此外,如果您想確保使用者在登錄時繼承某些環境變數或在禁用 SELinux 時禁止訪問伺服器。

auth當啟用 PAM 但禁用密碼身份驗證時,認為它貫穿所有模組是一個常見的謬誤。

引用自:https://serverfault.com/questions/751701