簡單半徑認證
在通過 SSH 訪問時,我正在研究使用 Radius 作為一些 Ubuntu 伺服器的身份驗證伺服器。我曾嘗試使用 libpam-radius-auth,但它並不能完全滿足我的需要。
我的目標是擁有一個類似於使用 TACACS/Radius 作為身份驗證的 Cisco 設備的解決方案。但是,如果他們不是本地使用者,則無法進行身份驗證。
sshd
$$ 3200 $$: 來自 198.18.18.22 的無效使用者 testacc sshd
$$ 3200 $$: input_userauth_request: 無效使用者 testacc$$ preauth $$ 我發現的解決方案是使用 NFS 安裝主文件夾和/或設置 LDAP 服務。有沒有更簡單的方法讓使用者通過 SSH 登錄伺服器,通過 Radius 進行身份驗證?我想讓它盡可能簡單。
libpam-radius-auth
應該完全按照您的需要工作。我以這種身份使用它沒有問題。你只需要
/etc/pam.d
可能在某個地方配置它common-auth
。- 配置 RADIUS 伺服器
/etc/raddb/server
但是,如果他們不是本地使用者,則無法進行身份驗證。
是的,這是真的。使用者必須首先存在。
聽起來您正在處理與身份驗證不同的問題。請記住這兩個子系統之間的區別:
- NSS(名稱服務切換):實現使用者(和組,和主機等)的數據庫。這支持查詢以列出使用者並獲取他們的屬性,例如名稱、uid、主目錄和 shell。最常見的 NSS 後端是“files”,它從 獲取使用者資訊
/etc/passwd
,但您可以使用許多其他後端,從 DB 文件、LDAP 等獲取資訊。- PAM(可插入身份驗證模組):實現身份驗證(以及記帳和密碼更改)。該系統使用可插入模組來檢查使用者的身份驗證並允許或禁止登錄。最常見的 PAM 後端是“文件”,它要求使用者輸入一個簡單的密碼並根據雜湊值檢查它,
/etc/shadow
但您可以使用許多其他查詢服務的後端,如 RADIUS、一次性密碼系統、Kerberos 等。聽起來您正在使用 RADIUS 進行身份驗證 (PAM),但您還想為使用者數據庫 (NSS) 本身使用基於網路的東西。這是一個完全不同的問題,與身份驗證無關。
您不能將 RADIUS 用作數據庫後端,因為 RADIUS 協議不提供數據庫功能。也就是說,它不允許您向使用者查詢 uid、主目錄和 shell 等詳細資訊,更不用說列舉數據庫中的使用者了。因此不存在 RADIUS NSS 後端(假設
libnss-radius
)。對於基於網路的使用者數據庫,您可以使用 LDAP,或者 MySQL 或 Postgres。LDAP 可能是最好的建議。