ldap_modify: acesso insuficiente (50)

9

Estou executando um servidor OpenLDAP 2.4 que usa o serviço SSL para comunicação. Funciona para pesquisas.

Estou tentando adicionar replicação no modo espelho.

Portanto, este é o comando que estou executando:

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

Onde este é meu server_id.ldif:

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

e este é o meu cn \ = config.ldif na árvore slapd.d dos arquivos 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

Mas infelizmente estou conseguindo isso:

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

Se eu tentar especificar o banco de dados de configuração, recebo o seguinte:

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

Alguém sabe como posso adicionar o serverID ao banco de dados de configuração para que eu possa concluir a instalação do modo espelho?

Lynn Owens
fonte

Respostas:

10

É exatamente o que diz na lata. Seu DN cn=myuser,dc=mydomain,dc=comnão tem permissões suficientes para modificar a cn=configárvore. E quando você está tentando "especificar o banco de dados de configuração", está usando um DN totalmente diferente cn=myuser,cn=config, que aparentemente não existe ou está usando uma senha incorreta.

Para fazer modificações como essas, você precisa trabalhar com uma conta privilegiada o suficiente para modificar os vários bancos de dados. A conta "admin", ou seja, a conta que sempre possui todos os privilégios, é especificada no atributo olcRootDNe sua senha é encontrada em olcRootPW. Para o cn=configbanco de dados, esses atributos são encontrados olcDatabase={0}config,cn=confige para o banco de dados "regular", geralmente do tipo HDB, em olcDatabase={1}hdb,cn=config.

Qual tutorial ou documentação você seguiu? Parece que você não entende completamente o que está fazendo aqui.

daff
fonte
Hmm, eu já estou usando a conta olcRootDN. -D "cn = meu usuário, dc = meu domínio, dc = com" é minha substituição de "cn = gerente, dc = exemplo, dc = com" ... Substituí o gerente por meu usuário por questões de segurança. Eu esperava que funcionasse. Eu acho que preciso especificar serverID em um nível superior aos bancos de dados, ... na configuração básica do slapd, que eu esperaria estar em cn = config.ldif, não em olcDatabase \ = \ {1 \} hdb.ldif onde se encontra o olcRootDN.
Lynn Owens
Se você obtiver "acesso insuficiente", não estará usando o usuário administrador configurado em olcRootDNe olcRootPW. Esse usuário sempre tem acesso a tudo, por definição. Novamente, lembre-se de que os diferentes bancos de dados têm usuários administrativos diferentes. Para a cn=configárvore, use o especificado em olcDatabase={0}config,cn=config. E não, os olcServerIDatributos fazer pertencem ao cn=configDN. É onde eu os tenho também.
Daff
Obrigado Daff, foi isso. Eu ignorava o fato de que o banco de dados de configuração era o banco de dados {0}. Havia de fato um usuário administrador lá. Eu dei uma senha e minhas modificações foram feitas sem nenhum problema. :)
Lynn Owens
Gostaria de saber qual tutorial ou documentação você recomendaria para se familiarizar rapidamente com o ldap. Porque é claro para mim que eu não tenho absolutamente nenhuma idéia do que estou fazendo ..
The Lazy Coder
1
@TheLazyCoder A documentação oficial é abrangente, mas não muito acessível para iniciantes. Os documentos do Ubuntu OpenLDAP melhoraram com o tempo e podem ser bons o suficiente para iniciantes. Fora isso, aprendi bastante com o livro "Mastering OpenLDAP", de Matt Butcher, publicado por Packt. Você pode começar por aí, mesmo que esteja um pouco datado agora.
Daff
7

Como tive um problema bastante semelhante, tentei daff uma solução interessante, mas sem sucesso. Ao contrário de Lynn Owens, falhei ao adicionar uma senha ao administrador em olcDatabase={0}config,cn=config. Finalmente consegui modificar meus cn=configcomandos usando como:

ldapmodify -Y EXTERNAL -H ldapi:/// -f somefile.ldif
phep
fonte
Isso funciona, especificamente o "-Y EXTERNAL -H ldapi: ///", porque cn = admin, dc = ... criado inicialmente não tem acesso para fazer essas modificações de nível inferior.
Naisanza
1
Se isso não funcionar na primeira tentativa, lembre-se sudoé seu amigo
ratskin