Pam

僅對某些使用者使用 openldap 身份驗證

  • October 27, 2019

我正在嘗試設置幾個 Linux 工作站(RedHat 7),並且我正在嘗試弄清楚如何針對具有一些不尋常要求的 LDAP 伺服器設置身份驗證。

我基本上知道如何使用 sssd 設置 LDAP 身份驗證,但我不知道如何將身份驗證限制為僅限某些使用者以滿足我的要求。

要啟用 LDAP 配置,我將使用以下命令行:

authconfig --enableldap --enableldapauth --ldapserver="<redacted>" --ldapbasedn="<redacted>" --update --enablemkhomedir

這將允許所有 LDAP 使用者登錄,據我所知工作正常。但是,我的要求是只有 LDAP 中的一些使用者可以登錄,並且使用者列表將在單獨的文本文件中提供(按使用者登錄名)。

更多資訊:我們有一個擁有幾千名使用者的 LDAP 伺服器(實際上是 Active Directory)。應該只允許大約 20 名需要在這些工作站上工作的人登錄這些工作站。不幸的是,LDAP 不包含任何與此相關的資訊,我無法控制 LDAP 伺服器。相反,每隔幾週,我會收到一個文本文件,其中包含應允許登錄的使用者名列表。

如何設置身份驗證以將 LDAP 用於使用者名/密碼/使用者 ID 等,同時將其僅限於此列表中的使用者?

將這些使用者放入一個組,然後使用pam_access規則/etc/security/access.conf僅在使用者在該組中時才允許登錄(root如果需要,還可以用於任何系統管理員和監控),例如

+ : root wheel nagios : ALL
+ : yourusergrouphere : ALL
- : ALL : ALL

我找到了兩種方法來完成我所需要的。第一個是thrig概述的。我必須將每個使用者名單獨添加到 /etc/security/access.conf。

第二個選項是在 sssd.conf 中指定一個 LDAP 查詢字元串:

ldap_access_filter = (|(userid=user1)(userid=user2)…..)

第二種解決方案建構起來非常乏味,但最終在大型 LDAP 環境中具有重大的性能優勢,因為 sssd 只會檢索少量 LDAP 記錄。

引用自:https://unix.stackexchange.com/questions/367795