Autenticação OpenLDAP 2.4.44 no CentOS/RHEL 7

Autenticação OpenLDAP 2.4.44 no CentOS/RHEL 7

Tenho o OpenLDAP 2.4.44 rodando no CentOS 7.4 com um usuário "testador" adicionado. Posso consultar o usuário e alterar a senha, mas ao autenticar com a tela de login do GNOME é sempre rejeitada. Eu usei issoguiapara configurar as coisas.

Os arquivos LDIF que usei para configurar o sistema são os seguintes:

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>

monitor.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

base.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

certificados.ldif(esses certificados foram criados e o proprietário/grupo alterado para 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

testador.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

Para mostrar as informações da conta do usuário:

ldapsearch -x cn=tester -b dc=example

A resposta é a seguinte:

# 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

Posso alterar a senha usando o seguinte:

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

Isso solicitará a nova senha do usuário (duas vezes) e a senha raiz do LDAP e, em seguida, será encerrado. Posso observar que a senha foi alterada através de uma nova consulta usando ldapsearch (onde a seção userPassword:: muda).

Posso fazer login na conta LDAP para verificar a senha usando:

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

Em seguida, configurei o authconfig usando:

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

Mas, quando tento usar a tela de login do CentOS GNOME, a senha é rejeitada.

Em/var/log/seguroEu vejo o seguinte:

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)

Coisas que tentei sem sucesso:

  • Desativando o SELinux (como teste, não porque seja uma solução possível)
  • Definindo FORCELEGACY=yespor /etc/sysconfig/authconfigissopublicar
  • Usando system-config-authenticatione outras sugestões nestelink
  • Instalando o certificado que criei usando a sugestãoaqui

Minha pergunta é... como o CentOS 7 está tentando fazer login (e como posso emular a tentativa de login usando ldapwhoami) e como isso pode ser melhor depurado/registrado? O DN do meu usuário parece razoável (usando uid em vez de cn para a primeira entrada; já vi isso ser feito nos dois sentidos em guias diferentes)?

Qualquer ajuda é apreciada!

informação relacionada