使用 LDAP 和 PAM 限制帳戶登錄
我希望一些 PAM/LDAP 專家可以在這裡幫助我。我最近在 Ubuntu Server 上設置了一個 LDAP 目錄來保存我的客戶(用於基於 Web 的系統)和員工(需要通過 SSH 登錄)的帳戶。
LDAP 身份驗證執行良好。但是,我無法使帳戶限制起作用:員工帳戶將具有介於
2001
和之間的 ID,2999
並且將成為該ssh-users
組的成員,以允許他們登錄伺服器。有問題的限制在
/etc/ldap.conf
,並且是pam_min_uid
,pam_max_uid
和pam_groupdn
。
pam_groupdn``ssh-users
包含我組 的完整 DN 。pam_min_uid
=2000
和pam_max_uid
=2999
。現在,我設法通過添加使它們工作:
account [success=1 default=ignore] pam_ldap.so
中的
pam_unix.so
線以上/etc/pam.d/common-account
。但是,本地 Unix 帳戶無法登錄:SSH 伺服器一嚐試就終止連接。我已經在上面的文件中設置了
pam_ldap.so
模組sufficient
,但是無效的使用者會收到一條消息,說他們無法登錄,但無論如何都會將它們記錄下來。那麼,如何為 LDAP 使用者設置這些帳戶限制,同時仍然允許 UNIX 使用者登錄?
您可能會猜到我是 PAM 的新手,儘管我已經設法讓“自動創建主目錄”模組工作:-)
非常感謝,安迪
PAM 能夠根據訪問控制列表(至少在 Ubuntu 上)來限制訪問,就像 kubanskamac 的回答 (+1) 一樣,將組視為 posix 組,無論它們是儲存在 LDAP
/etc/group
還是 NIS 中。
/etc/security/access.conf
是訪問列表文件。在我的文件中,我放在最後:-:ALL EXCEPT root sysadmin (ssh-users):ALL
這會拒絕除 root、sysadmin 和 ssh-users 組(在 LDAP 中)之外的所有人,無論他們從哪裡登錄(第二個
ALL
)。然後在我的 PAM 帳戶文件(這是一個帳戶模組)中,我在最後添加:
account required pam_access.so
它告訴 PAM 使用這個文件。這是一種享受:-)