slapd-config
Este rol permite configurar todo el OLC de un servidor OpenLDAP.
Requiere que ya hayas creado un OLC y que el slapd esté en funcionamiento.
Consulta el slapd-base para este propósito.
El slapd-config creará la configuración global de slapd directamente en cn=config
, y cargará módulos globales como mdb si no están compilados como backends estáticos.
Después, se crean y configuran el backend de monitoreo y un MDB.
El MDB admite la especificación de superposiciones.
Requisitos
Una distribución de Linux basada en dpkg o pacman.
Variables del Rol
Hay algunas variables globales del rol:
Nombre |
Predeterminado/ Requerido |
Descripción |
slapd_enable_monitor |
true |
Cargar el módulo de monitor (si es necesario) y configurar la base de datos de monitor. |
slapd_modules_path |
/usr/lib/ldap |
Ruta a módulos dinámicos, si se requieren backends pero necesitan ser cargados. |
slapd_additional_modules |
|
Cargar también estos módulos (aparte de MDB y monitor) si no están compilados. |
slapd_olc_rootdn_password |
:heavy_check_mark: |
Contraseña para acceder al OLC. No se exporta automáticamente por slapd-base . |
slapd_monitor_rootdn_password |
:heavy_check_mark: |
La contraseña rootdn para la base de datos de monitor. Se hashará automáticamente. |
slapd_mdb_rootdn_password |
:heavy_check_mark: |
La contraseña rootdn para la base de datos MDB. Se hashará automáticamente. |
slapd_schemas |
|
Array de rutas a los archivos de esquema que cargar. |
slapd_global_config |
Ver descripción |
Cada opción de configuración global de slapd. Ver abajo para cada descripción. |
slapd_olc_config |
Ver descripción |
Cada valor de configuración global para la base de datos OLC. |
slapd_monitor_config |
Ver descripción |
Cada valor de configuración global para la base de datos de monitor. |
slapd_mdb_config |
:heavy_check_mark: |
Cada valor de configuración global para la base de datos MDB. |
slapd_mdb_overlays |
Ver descripción |
Cada módulo para el MDB. Ver ejemplo para un ejemplo. |
Variables de slapd-base
Necesitas establecer estas variables si slapd-base
no se ejecutó en un paso anterior de este playbook.
Todas las variables son requeridas.
Nombre |
Predeterminado/ Requerido |
Descripción |
slapd_run_dir |
:heavy_check_mark: |
Directorio de ejecución para el archivo de argumentos, archivo pid y socket ldapi |
slapd_ldapi_socket |
:heavy_check_mark: |
socket unix ldapi para la administración local de slapd |
slapd_mdb_dir |
:heavy_check_mark: |
Directorio donde reside el MDB |
slapd_olc_dir |
:heavy_check_mark: |
Ruta donde residen los archivos LDIF del OLC |
slapd_olc_rootdn |
:heavy_check_mark: |
Rootdn del OLC |
Opciones de configuración global
La configuración global de slapd OLC se separa en diferentes secciones.
Configuración General
Nombre |
Predeterminado/ Requerido |
Descripción |
olcConfigFile |
|
Ruta a un archivo de configuración a cargar. Suplantado por el OLC. |
olcConfigDir |
{{slapd_olc_dir}} |
Ruta a los archivos de base de datos OLC. |
olcArgsFile |
{{slapd_run_dir}}/slapd.args |
slapd escribirá sus argumentos en este archivo. |
olcPidFile |
{{slapd_run_dir}}/slapd.pid |
slapd escribirá su PID en este archivo. |
olcGentleHUP |
FALSE |
Cuando es TRUE , slapd no matará las conexiones existentes en SIGHUP , sino que esperará que terminen. |
olcServerID |
0 |
ID de este servidor. Solo requerido con replicación multi-maestro. |
Configuración relacionada con la seguridad
Nombre |
Predeterminado/ Requerido |
Descripción |
olcAllows |
|
Un conjunto de características a permitir. |
olcDisallows |
|
Un conjunto de características a deshabilitar. |
olcRequires |
bind |
Un conjunto de condiciones a requerir. |
olcRestrict |
|
Una lista de operaciones que están restringidas. |
olcSecurity |
ssf=1 simple_bind=128 |
Especificar un conjunto de factores de seguridad a requerir. |
olcAuthIDRewrite |
|
Usado para convertir nombres de usuario simples a un DN LDAP utilizado para fines de autenticación. |
olcAuthzRegexp |
|
Usado para convertir nombres de usuario simples a un DN LDAP utilizado para fines de autenticación. Puede especificarse múltiples veces y requiere reinicio del servidor para entrar en efecto. |
olcAuthzPolicy |
none |
Qué reglas utilizar para la Autorización Proxy. |
olcLocalSSF |
300 |
SSF asumido para conexiones LDAPI. |
olcPasswordHash |
{SSHA} |
Uno o más algoritmos de hash a utilizar para las modificaciones extendidas de cambio de contraseña. |
olcPasswordCryptSaltFormat |
%s |
El formato de la sal al hashear contraseñas con crypt() . |
Configuración TLS
Nombre |
Predeterminado/ Requerido |
Descripción |
olcTLSCertificateFile |
|
Archivo de clave pública para slapd. |
olcTLSCertificateKeyFile |
|
Clave privada para slapd. |
olcTLSRandFile |
|
El archivo para obtener bits aleatorios cuando urandom no está disponible. |
olcTLSDHParamFile |
|
Archivo que contiene primos para el intercambio de claves efímeras de Diffie-Hellman. |
olcTLSCipherSuite |
|
Conjuntos de cifrado TLS a utilizar. |
olcTLSProtocolMin |
|
Versión mínima de TLS a requerir. El valor predeterminado es el más alto posible. |
olcTLSCACertificateFile |
|
Ruta a un archivo que contiene todas las autoridades de certificación de confianza. |
olcTLSCACertificatePath |
|
Ruta a un directorio que contiene archivos con todas las autoridades de certificación de confianza. |
olcTLSCRLCheck |
none |
Si se debe verificar la CRL del CA en las conexiones. |
olcTLSVerifyClient |
never |
Cuando verificar la identidad del cliente. |
Configuración de registro
Nombre |
Predeterminado/ Requerido |
Descripción |
olcLogLevel |
stats |
Configuración del nivel de registro para cada subsistema. |
olcLogFile |
|
Archivo al que registrar. slapd siempre registrará en stderr. |
olcPluginLogFile |
|
Archivo para registrar la salida del plugin slapi. |
olcReplogFile |
|
Archivo para el replog que puede ser leído por slurpd . |
Configuración de hilos
Nombre |
Predeterminado/ Requerido |
Descripción |
olcConcurrency |
|
Sugerencia de subprocesamiento para el sistema operativo. No se utiliza bajo Linux. |
olcListenerThreads |
1 |
Cantidad de hilos para escuchar conexiones. 1 es suficiente para hasta 16 núcleos. |
olcThreads |
16 |
Cantidad de hilos de CPU para el procesamiento de solicitudes. |
olcToolThreads |
1 |
Cantidad de hilos de CPU al ejecutar en modo herramienta. No debe exceder la cantidad de núcleos en el sistema. |
Tiempos de espera y límites
Nombre |
Predeterminado/ Requerido |
Descripción |
olcIdleTimeout |
0 |
Número de segundos que un cliente puede no hacer nada antes de ser desconectado. |
olcWriteTimeout |
0 |
Número de segundos que un cliente con escrituras pendientes puede no hacer nada antes de ser desconectado. |
olcTimeLimit |
3600 |
Número máximo de segundos que slapd dedicará a responder una solicitud. Permite un valor ilimitado . |
olcSizeLimit |
500 |
Número máximo de entradas a devolver de una búsqueda. |
Conexiones
Nombre |
Predeterminado/ Requerido |
Descripción |
olcConnMaxPending |
50 |
Número máximo de solicitudes pendientes en sesiones anónimas. |
olcConnMaxPendingAuth |
1000 |
Número máximo de solicitudes pendientes en sesiones autenticadas. |
olcTCPBuffer |
|
Tamaño del búfer TCP. El sistema operativo puede ajustar esto automáticamente. |
olcSockbufMaxIncoming |
262143 |
Tamaño máximo de la PDU LDAP para sesiones anónimas. |
olcSockbufMaxIncomingAuth |
4194303 |
Tamaño máximo de la PDU LDAP para sesiones autenticadas. |
SASL
Nombre |
Predeterminado/ Requerido |
Descripción |
olcSaslHost |
|
Nombre de dominio completamente calificado usado para el procesamiento SASL. |
olcSaslRealm |
|
El reino SASL para el procesamiento SASL. |
olcSaslSecProps |
|
Especificar propiedades de seguridad SASL de Cyrus. |
olcSaslAuxprops |
|
Qué complementos auxprop utilizar para búsquedas de autenticación. |
Indexación
Nombre |
Predeterminado/ Requerido |
Descripción |
olcIndexSubstrIfMinLen |
2 |
La longitud mínima de los índices subiniciales y subfinales. |
olcIndexSubstrIfMaxLen |
4 |
La longitud máxima de los índices subiniciales y subfinales. |
olcIndexSubstrAnyLen |
4 |
Longitud para índices subany. Los atributos más largos que esta longitud se procesan en segmentos. |
olcIndexSubstrAnyStep |
2 |
Pasos utilizados en las búsquedas subany. Este es el desplazamiento para los segmentos de la cadena de filtro que se procesan. |
olcIndexIntLen |
4 |
Longitud de clave para índices enteros ordenados. |
Miscelánea
Nombre |
Predeterminado/ Requerido |
Descripción |
olcAttributeOptions |
x-hidden lang- |
Etiquetado de opciones de atributo o prefijos de rango de opciones. |
olcReferral |
|
Una URL de referencia para pasar cuando slapd no puede encontrar una base de datos local. |
olcReverseLookup |
FALSE |
Habilitar búsquedas inversas de nombres de cliente sin verificación. |
olcRootDSE |
|
Nombre de un archivo LDIF que contiene atributos definidos por el usuario para el Root DSE. |
olcReadOnly |
FALSE |
Poner todo el servidor en modo solo lectura. Advertencia: Una vez establecido en verdadero, este valor no puede cambiarse sin modificar los archivos de la base de datos en disco y reiniciar slapd. |
olcLdapSyntaxes |
|
No tengo idea de por qué este atributo está aquí. No hay documentación al respecto en internet. |
Valores de configuración de la base de datos
Estos valores se aplican a cada base de datos (OLC, monitor y MDB).
Esta sección da una visión general de todos ellos.
Los valores predeterminados para cada base de datos se especifican a continuación.
La base de datos MDB también tiene algunos atributos más que solo son compatibles con esta base de datos.
General
Nombre |
Requerido |
Descripción |
olcSuffix |
:heavy_check_mark: |
El sufijo DN de las consultas que se pasarán al backend de la base de datos. No es requerido para el OLC y el monitor. |
olcReadOnly |
:heavy_check_mark: |
Pone esta base de datos en modo solo lectura. No se permiten modificaciones. |
olcHidden |
:heavy_multiplication_x: |
No responder a ninguna consulta a esta base de datos. slapd negará la existencia de esta base de datos. |
olcLastMod |
:heavy_check_mark: |
Si slapd mantendrá automáticamente modfiersName , modifyTimestamp , creatorsName , createTimestamp , entryCSN , y entryUUID . |
olcSubordinate |
:heavy_multiplication_x: |
Si esta base de datos es un subordinado de otra base de datos. |
Seguridad
Nombre |
Requerido |
Descripción |
olcSecurity |
:heavy_multiplication_x: |
Especificar un conjunto de factores de seguridad a requerir. |
olcRootDN |
:heavy_check_mark: |
Nombre del RootDN de esta base de datos. |
olcRootPW |
:heavy_check_mark: |
Contraseña hasheada del RootDN de esta base de datos. |
olcRequires |
:heavy_multiplication_x: |
Un conjunto de condiciones a requerir. |
olcRestrict |
:heavy_multiplication_x: |
Una lista de operaciones que están restringidas. |
olcAddContentAcl |
:heavy_check_mark: |
Si las operaciones realizarán verificación de ACL en el contenido de la entrada que se está agregando. |
olcAccess |
:heavy_check_mark: |
Array de reglas de ACL para esta base de datos. |
Tiempos de espera y límites
Nombre |
Requerido |
Descripción |
olcTimeLimit |
:heavy_multiplication_x: |
Número máximo de segundos que slapd dedicará a responder a una solicitud. Permite un valor ilimitado . |
olcSizeLimit |
:heavy_multiplication_x: |
Número máximo de entradas a devolver de una búsqueda. |
olcLimits |
:heavy_multiplication_x: |
Límites de tiempo y tamaño basados en el iniciador de la operación o el DN base. |
Syncrepl
Nombre |
Requerido |
Descripción |
olcSyncrepl |
:heavy_multiplication_x: |
Configuración principal de syncrepl. |
olcUpdateDN |
:heavy_multiplication_x: |
DN permitido para actualizar el réplica. No debe ser el rootDN. |
olcSyncUseSubentry |
:heavy_multiplication_x: |
Almacenar el contextCSN de syncrepl en una subentrada en lugar de en la entrada de contexto. |
olcUpdateRef |
:heavy_multiplication_x: |
La referencia para devolver cuando slapd se le pide modificar una base de datos replicada. |
olcMirrorMode |
:heavy_multiplication_x: |
Coloca esta base de datos en modo espejo. |
slurpd
Nombre |
Requerido |
Descripción |
olcReplica |
:heavy_multiplication_x: |
|
olcReplicaArgsFile |
:heavy_multiplication_x: |
|
olcReplicaPidFile |
:heavy_multiplication_x: |
|
olcReplicationInterval |
:heavy_multiplication_x: |
|
olcReplogFile |
:heavy_multiplication_x: |
|
Miscelánea
Nombre |
Requerido |
Descripción |
olcSchemaDN |
:heavy_multiplication_x: |
DN para la subentrada del subschema para las entradas. |
olcMaxDerefDepth |
:heavy_multiplication_x: |
Cantidad máxima de alias a seguir. |
olcPlugin |
:heavy_multiplication_x: |
Cargar plugins slapi. |
olcMonitoring |
:heavy_multiplication_x: |
Recoger datos de monitoreo para esta base de datos. |
olcExtraAttrs |
:heavy_multiplication_x: |
Especificar atributos para devolver incluso cuando no se buscan. |
Configuraciones MDB
¡Estas configuraciones solo se aplican a la base de datos MDB!
Nombre |
Requerido |
Predeterminado |
Descripción |
olcDbDirectory |
:heavy_check_mark: |
{{slapd_mdb_dir}} |
Ruta al directorio de la base de datos en disco. |
olcDbNoSync |
:heavy_multiplication_x: |
TRUE |
No sincronizar inmediatamente después de recibir datos. |
olcDbCheckpoint |
:heavy_multiplication_x: |
8192 15 |
Con qué frecuencia (KB/minutos) vaciar la base de datos en el disco. |
olcDbMaxReaders |
:heavy_multiplication_x: |
|
Número máximo de hilos que pueden acceder a la base de datos de forma concurrente. |
olcDbMaxSize |
:heavy_multiplication_x: |
|
Tamaño máximo de la base de datos en bytes. |
olcDbMode |
:heavy_multiplication_x: |
0600 |
Modo de archivo de los archivos de la base de datos. |
olcDbSearchStack |
:heavy_multiplication_x: |
16 |
Profundidad de la pila durante las evaluaciones del filtro de búsqueda. |
olcDbRtxnSize |
:heavy_multiplication_x: |
|
Número de entradas a procesar en una transacción de lectura. |
olcDbIndex |
:heavy_multiplication_x: |
|
Índices a crear en esta base de datos. |
Valores predeterminados para cada base de datos
Nombre |
Valor predeterminado Frontend |
Valor predeterminado OLC |
Valor predeterminado Monitor |
Valor predeterminado MDB |
olcSuffix |
|
|
|
:exclamation: |
olcReadOnly |
FALSE |
FALSE |
|
|
olcHidden |
FALSE |
|
|
|
olcLastMod |
TRUE |
TRUE |
|
|
olcSubordinate |
|
|
|
|
olcSecurity |
|
|
|
|
olcRootDN |
|
{{slapd_olc_rootdn}} |
cn=root,cn=monitor |
cn=root,{{olcSuffix}} |
olcRootPW |
|
[Contraseña hasheada] |
[Contraseña hasheada] |
[Contraseña hasheada] |
olcRequires |
|
|
|
|
olcRestrict |
|
|
|
|
olcAddContentAcl |
TRUE |
TRUE |
|
|
olcAccess |
'to * by * read' |
'to * by * none' |
'to * by * none' |
'to * by * none' |
olcTimeLimit |
|
|
|
|
olcSizeLimit |
|
|
|
|
olcLimits |
|
|
|
|
olcSyncrepl |
|
|
|
|
olcUpdateDN |
|
|
|
|
olcSyncUseSubentry |
FALSE |
FALSE |
|
|
olcUpdateRef |
|
|
|
|
olcMirrorMode |
FALSE |
|
|
|
olcReplica |
|
|
|
|
olcReplicaArgsFile |
|
|
|
|
olcReplicaPidFile |
|
|
|
|
olcReplicationInterval |
|
|
|
|
olcReplogFile |
|
|
|
|
olcSchemaDN |
cn=Subschema |
|
|
|
olcMaxDerefDepth |
15 |
15 |
|
|
olcPlugin |
|
|
|
|
olcMonitoring |
FALSE |
FALSE |
|
|
olcExtraAttrs |
|
|
|
|
Dependencias
schema2ldif
debe estar instalado.
Ejemplo Playbook
- hosts: ldap
roles:
- slapd-config
slapd_modules_path: /usr/lib/openldap
slapd_olc_rootdn_password: water
slapd_mdb_rootdn_password: water
slapd_monitor_rootdn_password: water
slapd_additional_modules: [ 'memberof' ]
slapd_mdb_config:
olcSuffix: "dc=example,dc=com"
slapd_mdb_overlays:
memberof:
olcOverlay: memberof
objectClass: olcMemberOf
olcMemberOfDangling: ignore
Licencia
Este trabajo está bajo una Licencia Internacional Creative Commons Attribution-ShareAlike 4.0.