Linux

Linux ldap 認證,pam_filter 被忽略

  • January 20, 2017

我已經通過 ldap 設置了 linux 客戶端身份驗證,它可以工作。我想通過為帳戶添加或刪除不同的 OU 來控制使用者對多個服務的訪問。例如,如果允許使用者登錄 linux 機器,則必須包含“linux”。如果這個使用者被允許訪問,比如說,redmine,你也必須包含“redmine”。

問題是,/etc/ldap.conf 中的 pam_filter 參數被忽略了。當我設置它

pam_filter ou=linux

ldap 伺服器的搜尋字元串不包含此過濾器:

openldap 拍打

$$ 5374 $$: conn=1857 op=1 SRCH base=“ou=people,dc=rwth-cbmb,dc=de” scope=2 deref=0 filter="(objectClass=posixAccount)"

正如我所說,我一直將它與 redmine(票務跟踪系統)一起使用,我也設置了 ldap 過濾器並且它可以工作。我在伺服器上收到以下搜尋請求:

openldap 拍打

$$ 5374 $$: conn=1863 op=1 SRCH base=“ou=people,dc=rwth-cbmb,dc=de” scope=2 deref=0 filter="(&(objectClass=*)(uid=alex)(ou=redmine ))”

我有以下軟體包版本:

ldap-auth-client 0.5.3

ldap-auth-config 0.5.3

ldap-utils 2.4.28-1.1ubuntu4.2

libldap-2.4-2 2.4.28-1.1ubuntu4.2

libnss-ldap 264-2.2ubuntu2

libpam-ldap 184-8.5ubuntu2

客戶端 ubuntu 12.04,伺服器 ubuntu 伺服器 10.04。

好的,解決方案是使用

nss_base_passwd ou=people,dc=rwth-cbmb,dc=de??ou=linux

在客戶端的 /etc/ldap.conf 中。根據文件:

句法:

nss_base_XXX base?scope?filter

我不知道為什麼 pam_filter 不起作用,但是 nss_* 解決了這個問題。

將以下行添加到 /etc/pam_ldap.conf 文件

pam_check_host_attr yes

pam_ldap 手冊頁

pam_check_host_attr

指定是否應檢查“主機”屬性的登錄授權(PAM 堆棧中的“帳戶”)。預設為不。如果設置為“yes”並且使用者沒有“host”屬性的值,則使用者將無法登錄。

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