Não permitir ligação anônima global com cn = config


9

Com o slapd.conf, você pode desativar globalmente a ligação anônima e exigir autenticação com as seguintes diretivas estáticas:

disallow bind_anon
require authc

Como posso obter as mesmas configurações globais, mas usando o novo método de configuração ao vivo cn = config?

Respostas:


5

Não que as ACLs dos quanta sejam ruins, mas para responder à sua pergunta:

ldapmodify
dn: cn = config
changetype: modify
add: olcDisallows
olcDisallows: bind_anon
-

dn: olcDatabase = {- 1} front-end, cn = config
changetype: modifique
add: olcRequires
olcRequires: authc

Esteja ciente de que o ldapmodify é sensível a espaços (à direita), portanto, uma pasta de cópia direta não funcionará (e poderá também não autenticar o seu corretamente). Além disso, o dn usado precisará de acesso de gravação ao cn = config db.


11

A variação sobre o mesmo tema, eu experimentei, funciona: dicas de segurança LDAP no SysadminTalk

Resumo:

1) Crie um arquivo, vamos chamá-lo disable_anon_frontend.ldifcom o seguinte conteúdo:

dn: olcDatabase={-1}frontend,cn=config
add: olcRequires
olcRequires: authc

2) Crie outro arquivo chamado disable_anon_backend.ldifcom o seguinte conteúdo:

dn: olcDatabase={1}hdb,cn=config
add: olcRequires
olcRequires: authc

3) Em seguida, no servidor, modifique o LDAP emitindo os seguintes comandos:

sudo ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f disable_anon_frontend.ldif
sudo ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f disable_anon_backend.ldif

4) Verifique executando a seguinte consulta anon: ldapsearch -x -LLL -H ldap:/// -b dc=example,dc=domain,dc=com dn(use suas dc=...configurações conforme aplicável).

Se você vir a mensagem de erro abaixo, o acesso anônimo foi desativado com êxito:

Server is unwilling to perform (53)
Additional information: authentication required

Boa sorte!


2
Bem-vindo à falha do servidor! Embora isso possa teoricamente responder à pergunta, seria preferível incluir aqui as partes essenciais da resposta e fornecer o link para referência.
precisa

2
Obrigado, você está absolutamente certo, editei minha resposta conforme recomendado.
Laryx Decidua

1

Eu não testei, mas tente algo como isto:

dn: olcDatabase={1}hdb,cn=config
add: olcAccess
olcAccess: to attrs=userPassword 
    by dn="cn=admin,dc=example,dc=com" write 
    by self write 
    by * none
olcAccess: to dn.base="" 
    by users read 
    by * none
olcAccess: to * 
    by dn="cn=admin,dc=example,dc=com" write 
    by * none

Obrigado, é assim que atualmente estou fazendo isso por banco de dados. No entanto, minha pergunta era como fazer isso globalmente.
Michael P
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.