Autenticación OpenLDAP 2.4.44 en CentOS/RHEL 7

Autenticación OpenLDAP 2.4.44 en CentOS/RHEL 7

Tengo OpenLDAP 2.4.44 ejecutándose en CentOS 7.4 con un usuario "probador" agregado. Puedo consultar al usuario y cambiar la contraseña, pero al autenticarme con la pantalla de inicio de sesión de GNOME siempre se rechaza. Yo usé estoguíapara configurar las cosas.

Los archivos LDIF que utilicé para configurar el sistema son los siguientes:

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(estos certificados se crearon y el propietario/grupo cambió a 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

probador.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 la información de la cuenta del usuario:

ldapsearch -x cn=tester -b dc=example

La respuesta es la siguiente:

# 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

Puedo cambiar la contraseña usando lo siguiente:

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

Esto solicita la nueva contraseña de usuario (dos veces) y la contraseña de raíz LDAP, luego sale. Puedo observar que la contraseña cambió al volver a consultar usando ldapsearch (donde cambia la sección userPassword::).

Puedo iniciar sesión en la cuenta LDAP para verificar la contraseña usando:

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

Luego configuro authconfig usando:

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

Pero, cuando intento usar la pantalla de inicio de sesión de CentOS GNOME, la contraseña es rechazada.

En/var/log/seguroVeo lo siguiente:

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)

Cosas que he probado sin éxito:

  • Deshabilitar SELinux (como prueba, no porque sea una posible solución)
  • Configuración FORCELEGACY=yessegún /etc/sysconfig/authconfigestocorreo
  • Uso system-config-authenticationy otras sugerencias en esteenlace
  • Instalando el certificado que creé usando la sugerenciaaquí

Mi pregunta es... ¿cómo intenta CentOS 7 iniciar sesión (y cómo puedo emular el intento de inicio de sesión usando ldapwhoami), y cómo se puede depurar/registrar mejor esto? ¿Parece razonable mi DN de usuario (usando uid en lugar de cn para la primera entrada; lo he visto en ambos sentidos en diferentes guías)?

¡Cualquier ayuda es apreciada!

información relacionada