我想知道如何(如果可能的話)為 Linux 中的使用者建立動態身份驗證。
伺服器會定期更改使用者密碼,使用者將使用程式(如令牌)來檢索並輸入正確的密碼。
答案1
不完全是您正在尋找的內容,但我已經看到 OTPW 用於此類場景。它是一個完整的軟體包,透過 PAM 模組與 Linux 系統整合。
摘抄
OTPW 軟體包由一次性密碼產生器
otpw-gen
和兩個驗證例程組成otpw_prepare()
,otpw_verify()
可輕鬆新增至POSIX 系統等程式login
。ftpd
對於支援可插入身份驗證方法 (PAM) 介面的平台,也包含合適的包裝器。以這種方式擴展的登入軟體將允許透過不安全的網路線路進行相當安全的用戶身份驗證。用戶攜帶紙質密碼列表。該方案旨在有效防止論文清單被盜和爭奪最後一個字母的攻擊。一次性密碼的加密雜湊值儲存在使用者的主目錄中以供驗證。
根據您的情況,您需要按照該頁面上詳細說明 PAM 安裝的說明進行操作。
摘抄
如果您的系統支援可插拔身份驗證模組 [Mor01,XSSO],則只需編譯共用程式庫
pam_otpw.so
並將其複製到其他 PAM 模組所在的目錄(通常在 Linux 下/lib/security/
)。然後,按照 PAM 系統管理員指南中的說明,編輯要在其中使用 OTPW 的應用程式的 PAM 設定檔。它pam_otpw.so
提供了身份驗證和會話組件。驗證元件要求並驗證一次性密碼,會話元件在每次成功登入後列印提醒,提醒您還剩下多少個未使用的密碼。要在透過 Secure Shell 登入系統時使用這兩個元件,您可能需要新增以下
/etc/pam.d/sshd
行auth required pam_otpw.so session optional pam_otpw.so
以 OpenSSH 3.4 為例,您需要確保您的版本已編譯 PAM 支持,並且您必須添加以下
/etc/ssh/sshd_config
行UsePrivilegeSeparation no PAMAuthenticationViaKbdInt yes
要強制 OpenSSH 使用 PAM 身份驗證(而不是它自己的基於主機或公鑰方法,它通常首先嘗試),請使用
“ssh -o PreferredAuthentications=keyboard-interactive”
.