No permitir enlace anónimo global con cn = config

9

Con slapd.conf podría deshabilitar globalmente el enlace anónimo y requerir autenticación con las siguientes directivas estáticas:

disallow bind_anon
require authc

¿Cómo puedo lograr la misma configuración global, pero usando el nuevo método de configuración en vivo cn = config?

Michael P
fuente

Respuestas:

5

No es que las ACL de quanta sean algo malo, sino para responder a su pregunta:

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

dn: olcDatabase = {- 1} frontend, cn = tipo de cambio de configuración
: modificar
agregar: olcRequires
olcRequires: authc

Tenga en cuenta que ldapmodify es sensible a los espacios (finales), por lo que una copia directa no funcionará (y es posible que tampoco se autentique correctamente). Además, el dn que use necesitará acceso de escritura a cn = config db.

84104
fuente
11

La variación sobre el mismo tema, lo probé, funciona: consejos de seguridad LDAP en SysadminTalk

Resumen:

1) Cree un archivo, llamémoslo disable_anon_frontend.ldifcon el siguiente contenido:

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

2) Cree otro archivo llamado disable_anon_backend.ldifcon el siguiente contenido:

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

3) Luego, en el servidor, modifique el LDAP emitiendo los siguientes 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 ejecutando la siguiente consulta anon: ldapsearch -x -LLL -H ldap:/// -b dc=example,dc=domain,dc=com dn(use su dc=...configuración según corresponda).

Si ve el mensaje de error a continuación, el acceso anónimo se ha deshabilitado correctamente:

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

¡Buena suerte!

Laryx Decidua
fuente
2
¡Bienvenido a Server Fault! Si bien esto puede responder teóricamente a la pregunta, sería preferible incluir aquí las partes esenciales de la respuesta y proporcionar el enlace para referencia.
HopelessN00b
2
Gracias, tienes toda la razón, edité mi respuesta según lo recomendado.
Laryx Decidua
1

No lo he probado, pero prueba algo como esto:

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
quanta
fuente
Gracias, así es como lo estoy haciendo actualmente por base de datos. Sin embargo, mi pregunta era cómo hacerlo globalmente.
Michael P