stuvusIT.slapd-config

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.

Información del Autor

Acerca del proyecto

Configure an entire slapd with the OLC

Instalar
ansible-galaxy install stuvusIT.slapd-config
Licencia
other
Descargas
7.4k
Propietario
stuvus IT Team - Studierendenvertretung Universität Stuttgart