ldap_modify: acceso insuficiente (50)

9

Estoy ejecutando un servidor OpenLDAP 2.4 que utiliza el servicio SSL para la comunicación. Funciona para búsquedas.

Estoy tratando de agregar la replicación en modo espejo.

Entonces este es el comando que estoy ejecutando:

ldapmodify -D "cn=myuser,dc=mydomain,dc=com" -H ldaps://myloadbalancer -W -f /etc/ldap/ldif/server_id.ldif

Donde este es mi server_id.ldif:

dn: cn=config
changetype: modify
replace: olcServerID
olcServerID: 1 myserver1
olcServerID: 2 myserver2

y este es mi cn \ = config.ldif en el árbol slapd.d de archivos de texto:

dn: cn=config
objectClass: olcGlobal
cn: config
olcArgsFile: /var/run/slapd/slapd.args
olcPidFile: /var/run/slapd/slapd.pid
olcToolThreads: 1
structuralObjectClass: olcGlobal
entryUUID: ff9689de-c61d-1031-880b-c3eb45d66183
creatorsName: cn=config
createTimestamp: 20121118224947Z
olcLogLevel: stats
olcTLSCertificateFile: /etc/ldap/certs/ldapscert.pem
olcTLSCertificateKeyFile: /etc/ldap/certs/ldapskey.pem
olcTLSCACertificateFile: /etc/ldap/certs/ldapscert.pem
olcTLSVerifyClient: never
entryCSN: 20121119022009.770692Z#000000#000#000000
modifiersName: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
modifyTimestamp: 20121119022009Z

Pero desafortunadamente estoy obteniendo esto:

Enter LDAP Password: 
modifying entry "cn=config"
ldap_modify: Insufficient access (50)

Si trato de especificar la base de datos de configuración me sale esto:

ldapmodify -H 'ldaps://myloadbalancer/cn=config' -D "cn=myuser,cn=config" -W -f ./server_id.ldif 
Enter LDAP Password: 
ldap_bind: Invalid credentials (49)}

¿Alguien sabe cómo puedo agregar el ID de servidor a la base de datos de configuración para que pueda completar la configuración del modo espejo?

Lynn Owens
fuente

Respuestas:

10

Es exactamente lo que se dice en la lata. Su DN cn=myuser,dc=mydomain,dc=comno tiene suficientes permisos para modificar el cn=configárbol. Y cuando intentas "especificar la base de datos de configuración" estás usando un DN completamente diferente cn=myuser,cn=config, que aparentemente no existe o estás usando una contraseña incorrecta.

Para realizar modificaciones como estas, debe trabajar con una cuenta con privilegios suficientes para modificar las diversas bases de datos. La cuenta "admin", es decir, la cuenta que siempre tiene todos los privilegios, se especifica en el atributo olcRootDNy su contraseña se encuentra en olcRootPW. Para la cn=configbase de datos, esos atributos se encuentran en olcDatabase={0}config,cn=configy para la base de datos "regular", generalmente del tipo HDB, en olcDatabase={1}hdb,cn=config.

¿Qué tutorial o documentación seguiste? No parece que entiendas completamente lo que estás haciendo aquí.

narciso
fuente
Hmm, ya estoy usando la cuenta olcRootDN. -D "cn = myuser, dc = mydomain, dc = com" es mi reemplazo de "cn = Manager, dc = ejemplo, dc = com" ... Reemplacé Manager con myuser por razones de seguridad. Esperaba que funcionara. Creo que necesito especificar serverID en un nivel más alto que las bases de datos, ... en la configuración base de slapd, que esperaría que esté en cn = config.ldif, no en olcDatabase \ = \ {1 \} hdb.ldif donde se encuentra el olcRootDN.
Lynn Owens
Si obtiene "acceso insuficiente", entonces no está utilizando el usuario administrador configurado en olcRootDNy olcRootPW. Ese usuario siempre tiene acceso a todo, por definición. Nuevamente, tenga en cuenta que las diferentes bases de datos tienen diferentes usuarios administradores. Para el cn=configárbol, use el especificado debajo olcDatabase={0}config,cn=config. Y no, los olcServerIDatributos hacen pertenecen en el cn=configDN. También es donde los tengo.
daff
Gracias Daff, eso fue todo. Ignoraba el hecho de que la base de datos de configuración era la base de datos {0}. De hecho, había un usuario administrador allí. Le di una contraseña y mis modificaciones se realizaron sin ningún problema. :)
Lynn Owens
Me interesaría saber qué Tutorial o Documentación recomendaría para familiarizarse rápidamente con ldap. Porque para mí está claro que no tengo ni idea de lo que estoy haciendo ...
The Lazy Coder
1
@TheLazyCoder La documentación oficial es exhaustiva pero no muy accesible para los principiantes. Los documentos de Ubuntu OpenLDAP han mejorado con el tiempo y podrían ser lo suficientemente buenos para un principiante. Aparte de eso, he aprendido bastante del libro de Matt Butcher "Mastering OpenLDAP", publicado por Packt. Es posible que desee comenzar allí, incluso si está un poco anticuado ahora.
daff
7

Como tenía un problema bastante similar, probé una solución interesante, pero fue en vano. Al contrario de Lynn Owens, no pude agregar una contraseña al administrador olcDatabase={0}config,cn=config. Finalmente logré modificar mi cn=configuso de comandos como:

ldapmodify -Y EXTERNAL -H ldapi:/// -f somefile.ldif
phep
fuente
Esto funciona, específicamente el "-Y EXTERNAL -H ldapi: ///", porque cn = admin, dc = ... que se creó inicialmente no tiene acceso para realizar estas modificaciones de nivel inferior.
naisanza
1
Si esto no funciona en el primer intento, recuerde que sudoes su amigo
piel de rata