CentOS/RHEL 7에서 OpenLDAP 2.4.44 인증

CentOS/RHEL 7에서 OpenLDAP 2.4.44 인증

"테스터" 사용자가 추가된 CentOS 7.4에서 OpenLDAP 2.4.44를 실행하고 있습니다. 사용자에게 문의하여 비밀번호를 변경할 수 있지만 그놈 로그인 화면에서 인증하면 항상 거부됩니다. 나는 이것을 사용했다가이드설정을 하려고 합니다.

시스템을 설정하는 데 사용한 LDIF 파일은 다음과 같습니다.

db.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"

그러면 새 사용자 비밀번호(2번)와 LDAP 루트 비밀번호를 묻는 메시지가 표시된 후 종료됩니다. 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이 합리적으로 보입니까(첫 번째 항목에 cn 대신 uid를 사용합니다. 다른 가이드에서 두 가지 방법을 모두 수행한 것을 보았습니다)?

도움을 주시면 감사하겠습니다!

관련 정보