Instalando o OpenLDAP no Fedora 12: ldap_bind: Credenciais inválidas (49)

2

Eu tenho tentado configurar o OpenLDAP instalado por padrão no Fedora 12, sem muito sucesso. Meu objetivo final é usar a autenticação LDAP para login de usuário e Apache, usando o servidor OpenLDAP em execução na mesma máquina.

O servidor está em execução, mas o erro que sempre recebo quando tento usar ldapsearch ou ldapadd é: ldap_bind: Credenciais inválidas (49)

Eu tenho acompanhado esses tutoriais, mas nenhum deles me ajudou:

  • link
  • link
  • link
  • link
  • link

Primeiro, alguns componentes já foram instalados e eu os instalei com o yum:

yum install openldap-servers openldap-devel

Em seguida, criei um arquivo slapd.conf básico em / etc / openldap:

database        bdb
suffix          "dc=sniejana-sandbox,dc=com"
rootdn          "cn=root,dc=sniejana-sandbox,dc=com"
rootpw          {SSHA}cxdz55ygPu4T3ykg7dgu+L0VRvsFSeom
directory       /var/lib/ldap/sniejana-sandbox.com

Eu obtive o rootpw com este comando:

slappasswd -s changeme

Também criei o diretório /var/lib/ldap/sniejana-sandbox.com e assegurei que todo o conteúdo de /var/lib/ldap fosse de propriedade do usuário do ldap.

Eu encontrei dois arquivos ldap.conf, um em / etc e um em / etc / openldap. Eu não sei qual é o caminho certo. Se entendi corretamente, esse arquivo é para configurar o cliente. Eu coloquei isso em ambos:

HOST localhost
BASE dc=sniejana-sandbox,dc=com

Eu então executei o servidor com:

service slapd start

Ele disse OK.

A maioria dos tutoriais acima diz para usar o comando ldapsearch -D "cn=Manager,dc=my-domain,dc=com" -W para garantir que tudo esteja funcionando. Quando executo este comando, aparece um prompt de senha e, após digitar a senha, recebo o erro.

ldapsearch -D "cn=root,dc=sniejana-sandbox,dc=com" -W
Enter LDAP password:
ldap_bind: Invalid credentials (49)

O mesmo acontece quando se tenta usar o ldapadd. Eu tentei com uma senha criptografada e não criptografada no slapd.conf, isso não muda nada. Adicionar um -x para autenticação simples também não altera nada.

netstat -ap confirma que o servidor está escutando:

tcp   0   0 *:ldap    *:*       LISTEN      4148/slapd          
tcp   0   0 *:ldap    *:*       LISTEN      4148/slapd

ps -ef | grep slapd confirma que o processo está sendo executado:

ldap   4148  1  0 15:22 ?   00:00:00 /usr/sbin/slapd -h  ldap:/// -u ldap

A execução do slaptest faz com que o arquivo de configuração seja testado com sucesso .

Eu li em algum lugar que o comando ldapsearch -x -b '' -s base '(objectclass=*)' namingContext pode confirmar se o servidor está sendo executado. Parece funcionar:

# extended LDIF
#
# LDAPv3
# base <> with scope baseObject
# filter: (objectclass=*)
# requesting: namingContext 
#

#
dn:

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1

Estou ficando sem ideias. Estou perdendo algo óbvio?

    
por Alpha Hydrae 05.04.2010 / 16:04

3 respostas

2

Aha! Meu problema está resolvido! Eu só preciso excluir o diretório usando rm -rf /etc/openldap/slapd.d . Isso forçará o OpenLDAP a procurar o arquivo slapd.conf enquanto inicia o serviço.

    
por 05.04.2010 / 17:35
0

Eu também tenho esse problema de openldap no Fedora 12! Mas se você tentar iniciar seu openldap manualmente usando o seguinte comando, o comportamento se tornará normal.      / usr / sbin / slapd -f /etc/openldap/slapd.conf

Eu suspeito que o comando padrão (estou me referindo a "serviço slapd start") não está carregando o arquivo de configuração openldap (refiro-me a /etc/openldap/slapd.conf) que eu crio manualmente após a instalação do yum. / p>     

por 05.04.2010 / 17:16
0

Eu também enfrentei o mesmo problema quando tentei pela primeira vez.

Após uma análise, acabei de remover o diretório /etc/openldap/slapd.d/ e também excluí o conteúdo do diretório /var/lib/ldap/ (que contém o banco de dados). Depois disso tudo funciona bem.

Observação: o diretório var/lib/ldap deve existir ou o serviço slapd nunca será iniciado.

Eu entendi isso lendo o script /etc/init.d/slapd . Nesse script, eles verificam cegamente se o diretório /etc/openldap/slapd.d existe ou não. Se sim significa, eles simplesmente ignoraram o arquivo slapd.conf . Esse script também verifica se existe banco de dados no diretório /var/lib/ldap/ . Se sim significa, eles usam esse banco de dados ou criam um novo banco de dados vazio.

O diretório

/etc/openldap/slapd.d contém exatamente as informações de configuração em uma estrutura de dados de diretório que é usada em vez do arquivo slapd.conf . Eu acho que o Fedora usa este diretório por padrão.

    
por 22.03.2011 / 14:37