CentOS/RHEL 7 上的 OpenLDAP 2.4.44 驗證

CentOS/RHEL 7 上的 OpenLDAP 2.4.44 驗證

我在 CentOS 7.4 上執行 OpenLDAP 2.4.44,並新增了「tester」使用者。我可以查詢使用者並更改密碼,但使用 GNOME 登入畫面進行身份驗證時總是被拒絕。我用過這個指導來安排事情。

我用來設定係統的LDIF檔案如下:

資料庫檔案

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=example

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=ldapadm,dc=example

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: <omitted>

監視器.ldif

dn: olcDatabase={1}monitor,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read by dn.base="cn=ldapadm,dc=example" read by * none

基礎.ldif

dn: dc=example
dc: example
objectClass: top
objectClass: domain

dn: cn=ldapadm,dc=example
objectClass: organizationalRole
cn: ldapadm
description: LDAP Manager

dn: ou=People,dc=example
objectClass: organizationalUnit
ou: People

dn: ou=Groups,dc=example
objectClass: organizationalUnit
ou: Groups

證書.ldif(這些證書已創建,所有者/群組更改為 ldap:ldap)

dn: cn=config
changetype: modify
replace: olcTLSCertificateFile
olcTLSCertificateFile: /etc/openldap/certs/managerldapcert.pem

dn: cn=config
changetype: modify
replace: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/openldap/certs/managerldapkey.pem

測試儀.ldif

dn: uid=tester,ou=People,dc=example
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: tester
uid: tester
uidNumber: 9001
gidNumber: 100
homeDirectory: /home/tester
loginShell: /bin/bash
gecos: Tester Account
userPassword: {crypt}x
shadowLastChange: 0
shadowMax: 0
shadowWarning: 0

顯示使用者的帳戶資訊:

ldapsearch -x cn=tester -b dc=example

響應如下:

# extended LDIF
#
# LDAPv3
# base <dc=example> with scope subtree
# filter: cn=tester
# requesting: ALL
#

# tester, People, example
dn: uid=tester,ou=People,dc=example
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: tester
uid: tester
uidNumber: 9001
gidNumber: 100
homeDirectory: /home/tester
loginShell: /bin/bash
gecos: Tester Account
shadowLastChange: 0
shadowMax: 0
shadowWarning: 0
userPassword:: <omitted>

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1

我可以使用以下命令更改密碼:

ldappasswd -H ldap:/// -x -D "cn=ldapadm,dc=example" -W -S "uid=tester,ou=People,dc=example"

這將提示輸入新使用者密碼(兩次)和 LDAP root 密碼,然後退出。我可以觀察到密碼透過使用 ldapsearch 重新查詢而變更(其中 userPassword:: 部分發生變更)。

我可以使用以下命令登入 LDAP 帳戶來驗證密碼:

ldapwhoami -vvv -h ldapi:/// -p 389 -D "uid=tester,ou=People,dc=example" -x -W

然後我使用以下命令設定 authconfig:

authconfig --enableldap --enableldapauth --ldapserver=servername.example --ldapbasedn="dc=example" --enablemkhomedir --update

但是,當我嘗試使用 CentOS GNOME 登入畫面時,密碼被拒絕。

/var/日誌/安全我看到以下內容:

pam_sss(gdm-password:auth): authentication failure; logname= uid=0 euid=0 tty=/dev/tty1 ruser= rhost= user=tester
pam_sss(gdm-password:auth): received for user tester: 6 (Permission denied)

我嘗試過但沒有成功的事:

  • 停用 SELinux(作為測試,不是因為它是可能的解決方案)
  • FORCELEGACY=yes按照/etc/sysconfig/authconfig這個設置郵政
  • 使用system-config-authentication和其他建議在此關聯
  • 安裝我使用建議建立的證書這裡

我的問題是... CentOS 7 如何嘗試登入(以及如何使用 ldapwhoami 模擬登入嘗試),以及如何更好地調試/記錄?我的使用者 DN 看起來合理嗎(第一個條目使用 uid 而不是 cn;我在不同的指南中看到這兩種方式)?

任何幫助表示讚賞!

相關內容