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=yes
según/etc/sysconfig/authconfig
estocorreo - Uso
system-config-authentication
y 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!