LDAP 身份驗證失敗
我嘗試設置一個允許我驗證 Debian 使用者的 LDAP 目錄。完成 LDAP 伺服器和 PAM 文件的配置後,身份驗證將失敗。我認為客戶端在目錄中找不到 ldap 使用者。當我嘗試使用 ldap 使用者登錄時,它說登錄錯誤,而當我嘗試使用本地使用者登錄時,它會詢問我密碼,然後是 LDAP 密碼。
伺服器
1)我首先安裝了ldap-utils libldap-2.4-2 libldap-2.4-2-dbg slapd slapd-dbg
- 在文件 /etc/ldap/ldap.conf 中:
BASE dc=example,dc=com URI ldap://192.168.1.254/
dpkg-reconfigure slapd
我檢查有關域的資訊是否正確:正確。
ldapsearch -x
它與我之前選擇的一致。
5)我為目錄和使用者創建 .ldif 文件
結構.ldif:
dn: ou=users,dc=example,dc=com objectClass: organizationalUnit u: users description: users dn: ou=computers,dc=example,dc=com objectClass: organizationalUnit ou: computers description: computers dn: ou=sale,ou=users,dc=example,dc=com objectClass: organizationalUnit ou: sale description: sale dn: ou=direction,ou=users,dc=example,dc=com objectClass: organizationalUnit ou: direction description: direction dn: cn=sale,ou=sale,ou=users,dc=example,dc=com objectClass: posixGroup gidNumber: 501 cn: sale description: Sale group dn: cn=direction,ou=direction,ou=users,dc=example,dc=com objectClass: posixGroup gidNumber: 502 cn: direction description: Direction group dn: cn=pauldupont,cn=direction,ou=direction,ou=users,dc=newsoft,dc=ch cn=pauldupont,cn=direction,ou=direction,ou=users,dc=example,dc=com objectClass: inetOrgPerson objectClass: posixAccount uid: pauldupont userPassword: pauldupont cn: pauldupont uidnumber: 1050 gidnumber: 501 homeDirectory: /home/profils/pauldupont sn: pauldupont
adduseringroup.ldif :
dc: cn=sale,ou=sale,ou=users,dc=example,dc=com changetype: modify add: memberuid memberuid: uid=pauldupont,cn=direction,ou=direction,ou=users,dc=example,dc=com
6)我將文件發送到目錄中:
ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f file.ldif
ldapsearch -x
資訊在那裡。
客戶
1)我安裝了 ldap-utils libldap-2.4-2 libldap-2.4-2-dbg slapd slapd-dbg libnss-ldap libpam-ldap libpam-modules libpam-cracklib nscd
2)libnss-ldap配置:伺服器ip:192.168.1.254,dc=example,dc=com
libpam-ldap 配置:不是 LDAP 管理員像本地使用者,不是 LDAP 伺服器在查詢之前詢問資訊
dpkg-重新配置 libnss-ldap
資訊是正確的。
- 在文件 /etc/ldap/ldap.conf
BASE dc=example,dc=com URI ldap://192.168.1.254/
- 在文件 /etc/nsswitch.conf
passwd: compat ldap group: compat ldap shadow: compat ldap
- 在文件 /etc/libnss-ldap.conf
base dc=example,dc=com uri ldap://192.168.1.254/ ldap_version 3 rootbinddn cn=admin,dc=example,dc=com
- 在文件 /etc/libnss-ldap.secret
ldap password
- 在文件 /etc/pam_ldap.conf 中:
base dc=example,dc=com uri ldap://192.168.1.254/ rootbinddn cn=admin,dc=example,dc=com port 389 scope sub bind_timelimit 30 idle_timelimit 3600 pam_filter objectClass=posixAccount pam_login_attribute uid
- 在文件 /etc/pam.d/common-auth & common-account & common-session 我在底部添加:
auth sufficient pam_ldap.so
11)在我在底部添加的文件/etc/pam.d/common-password 中:
password sufficient pam_ldap.so use_first_pass
getent passwd && getent group
僅顯示本地使用者和組。
13)客戶端似乎與伺服器聯繫:
ldapsearch -x -H "ldap://192.168.1.254" -b "dc=example,dc=com" dn
把 dn 條目還給我
- getent passwd pauldupont
什麼都不給我,當我簽入 /var/log/auth.log 時:
May 12 10:43:36 CLI1-DIR-DEB nscd: nss_ldap: failed to bind to LDAP server ldap:///192.168.1.254/: Invalid credentials May 12 10:43:36 CLI1-DIR-DEB nscd: nss_ldap: reconnecting to LDAP server... May 12 10:43:36 CLI1-DIR-DEB nscd: nss_ldap: failed to bind to LDAP server ldap:///192.168.1.254/: Invalid credentials May 12 10:43:36 CLI1-DIR-DEB nscd: nss_ldap: reconnecting to LDAP server... May 12 10:43:37 CLI1-DIR-DEB nscd: nss_ldap: failed to bind to LDAP server ldap:///192.168.1.254/: Invalid credentials May 12 10:43:37 CLI1-DIR-DEB nscd: nss_ldap: could not search LDAP server - Server is unavailable
似乎憑據是錯誤的。我檢查了上面所有的配置文件,我找不到任何錯誤。
有誰知道問題出在哪裡?
感謝您的幫助。
我正在為客戶端和伺服器使用 Debian Jessie 8.0 AMD64
uname -a : Linux SRV1-DEB 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt9-3~deb8u1 (2015-04-24) x86_64 GNU/Linux
開放LDAP 2.4
編輯:在 /etc/ldap.secret 文件中添加密碼並執行getent passwd後,我得到了 ldap 使用者,但我仍然無法連接。
一旦我嘗試連接,我在日誌文件中有這個:
May 18 09:09:53 CLI1-DIR-DEB login[904]: pam_mail(login:session): user unknown May 18 09:09:53 CLI1-DIR-DEB login[904]: pam_loginuid(login:session): error_ log for user-name'pauldupont' does not exist May 18 09:09:53 CLI1-DIR-DEB login[904]: pam_unix(login:session): session opened for user pauldupont by LOGIN(uid=0) May 18 09:09:53 CLI1-DIR-DEB login[904]: pam_systemd(login:session): Failed to get user data May 18 09:09:53 CLI1-DIR-DEB login[904]: pam_systemd(login:session): Failed to get user data May 18 09:09:53 CLI1-DIR-DEB login[904]: User not known to the underlying authentication module
看起來您正在提供一個 binddn,但它的憑據不正確。提示的內容
/etc/ldap.secret
和您輸入的內容是否-W
完全相同?
rootbinddn
是客戶端機器上 root 使用的 binddn。它通常不應該是後綴的 rootdn,因為這意味著機器的危害也會危害目錄。在少數情況下使用
sssd
overpam_ldap
和nss-ldap
/nss-ldapd
不是正確的選擇。這不是其中之一。(根據我的經驗,它僅限於驗證非 posix 帳戶。)在處理 RFC2307 與 RFC2307bis 組時,這裡還有其他一些問題,但在此之前你已經失敗了。當這成為您的實際問題時,請提出另一個問題。