Usuário não encontrado para cn = config no OpenLDAP?

2

Estamos usando o OpenLDAP no Ubuntu 10.04. Consigo acessar e usar o front end com cn=admin,dc=ourcompany,dc=com e minha senha.

Mas não consigo alterar a configuração do servidor (como nível de log) armazenada em cn=config , porque parece que não tenho um usuário / senha válido para o back-end?

Alguns exemplos:

# ldapsearch
SASL/DIGEST-MD5 authentication started
Please enter your password: 
ldap_sasl_interactive_bind_s: Invalid credentials (49)
    additional info: SASL(-13): user not found: no secret in database

ou

# ldapadd -x -D "cn=admin,cn=config" -W -f "my.ldif""
Enter LDAP Password: 
ldap_bind: Invalid credentials (49)

Como faço para criar um usuário para o cn=config backend ?

    
por Nick 09.04.2012 / 06:58

1 resposta

7

A configuração padrão do Ubuntu configura cn = admin, dn = exemplo, dn = com como raiz dn para o backend, mas requer autenticação SASL como raiz para modificar a configuração online. Você pode usar:

sudo ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config olcAccess

para listar as ACLs para sua configuração

para adicionar seu arquivo ldif tente:

sudo ldapadd -Q -Y EXTERNAL -H ldapi:/// -f "my.ldif"

assumindo que o servidor LDAP esteja na máquina local. Se você quiser que seu comando original funcione, você precisará adicionar o usuário cn = admin, cn = config e especificá-lo como o rootdn do banco de dados cn = config ou configurar uma ACL para conceder acesso a ela.

Não consegui adicionar o rootdn com as ferramentas ldap, mesmo como root, também não consegui adicionar / modificar as ACLs para o cn = config DIT. Estou assumindo que, embora o root tenha acesso de gerenciador, não é suficiente adicionar um rootDN. Portanto, para adicionar rootDN para configuração on-line, você precisa editar a configuração manualmente. Isso é desencorajado porque pode quebrar o slapd.

Você precisa gerar um hash de senha com slappasswd, por exemplo, "somesecret" slappasswd pode gerar {SSHA} Hg / mI0rBWab3HCysr55B4Ew7 / QmK0LBa

Agora você pode adicionar o RootDN. Primeira parada slapd

sudo service slapd stop

em seguida, edite /etc/ldap/slapd.d/cn=config/olcDatabase={0}config.ldif usando o editor de sua escolha (por exemplo, nano)

sudo nano /etc/ldap/slapd.d/cn\=config/olcDatabase\=\{0\}config.ldif

adicione as seguintes linhas antes da linha "structuralObjectClass: olcDatabaseConfig"

olcRootDN: cn=admin,cn=config
olcRootPW: {SSHA}Hg/mI0rBWab3HCysr55B4Ew7/QmK0LBa

depois reinicie o slapd

sudo service slapd start

Agora você pode modificar o cn = config DIT com uma ligação simples usando cn = admin, cn = config; No entanto, não estou convencido de que esta seja uma boa ideia. Eu prefiro ssh no servidor e acessar a configuração como root. No entanto, alguns argumentam que isso anula toda a vantagem de uma configuração on-line, na qual você pode modificar a configuração sem interromper o slapd usando qualquer navegador LDAP, desde que tenha as credenciais necessárias.

    
por 09.04.2012 / 08:27

Tags