stuvusIT.slapd-config

slapd-config

Ce rôle permet de configurer l'ensemble de l'OLC d'un serveur OpenLDAP. Il nécessite que vous ayez déjà créé un OLC et que slapd soit en cours d'exécution. Consultez le slapd-base à cet effet.

Le slapd-config va créer la configuration globale de slapd directement dans cn=config, et charger des modules globaux comme mdb s'ils ne sont pas compilés en tant que backends statiques. Ensuite, le backend de surveillance et un MDB sont créés et configurés. Le MDB prend en charge la spécification d'overlays.

Exigences

Une distribution Linux basée sur dpkg ou pacman.

Variables de rôle

Il existe plusieurs variables globales au rôle :

Nom Par défaut/Obligatoire Description
slapd_enable_monitor true Charger le module de surveillance (si nécessaire) et configurer la base de données de surveillance.
slapd_modules_path /usr/lib/ldap Chemin vers les modules dynamiques, si les backends sont requis mais doivent être chargés.
slapd_additional_modules Charger également ces modules (en plus de MDB et de la surveillance) s'ils ne sont pas compilés.
slapd_olc_rootdn_password :heavy_check_mark: Mot de passe pour accéder à l'OLC. Pas automatiquement exporté par slapd-base.
slapd_monitor_rootdn_password :heavy_check_mark: Mot de passe rootdn pour la base de données de surveillance. Sera automatiquement haché.
slapd_mdb_rootdn_password :heavy_check_mark: Mot de passe rootdn pour la base de données MDB. Sera automatiquement haché.
slapd_schemas Tableau des chemins vers les fichiers de schéma à charger.
slapd_global_config Voir description Chaque option globale de configuration de slapd. Voir ci-dessous pour chaque description.
slapd_olc_config Voir description Chaque valeur globale de configuration pour la base de données OLC.
slapd_monitor_config Voir description Chaque valeur de configuration globale pour la base de données de surveillance.
slapd_mdb_config :heavy_check_mark: Chaque valeur de configuration globale pour la base de données MDB.
slapd_mdb_overlays Voir description Chaque module pour le MDB. Voir exemple pour un exemple.

Variables de slapd-base

Vous devez définir ces variables si slapd-base n'a pas été exécuté dans une étape précédente de ce playbook. Toutes les variables sont nécessaires.

Nom Par défaut/Obligatoire Description
slapd_run_dir :heavy_check_mark: Répertoire d'exécution pour le fichier args, le fichier pid et le socket ldapi
slapd_ldapi_socket :heavy_check_mark: socket unix ldapi pour l'administration locale de slapd
slapd_mdb_dir :heavy_check_mark: Répertoire où se trouve le MDB
slapd_olc_dir :heavy_check_mark: Chemin où se trouvent les fichiers LDIF de l'OLC
slapd_olc_rootdn :heavy_check_mark: Rootdn de l'OLC

Options de configuration globales

La configuration globale de l'OLC de slapd est séparée en différentes sections.

Configuration générale
Nom Par défaut/Obligatoire Description
olcConfigFile Chemin vers un fichier de configuration à charger. Remplacé par l'OLC.
olcConfigDir {{slapd_olc_dir}} Chemin vers les fichiers de base de données OLC.
olcArgsFile {{slapd_run_dir}}/slapd.args slapd écrira ses arguments dans ce fichier.
olcPidFile {{slapd_run_dir}}/slapd.pid slapd écrira son PID dans ce fichier.
olcGentleHUP FALSE Quand TRUE, slapd ne tuera pas les connexions existantes sur SIGHUP, mais attendra leur terminaison.
olcServerID 0 ID de ce serveur. Requis uniquement avec la réplication multi-maître.
Configuration liée à la sécurité
Nom Par défaut/Obligatoire Description
olcAllows Un ensemble de fonctionnalités à autoriser.
olcDisallows Un ensemble de fonctionnalités à interdire.
olcRequires bind Un ensemble de conditions à requérir.
olcRestrict Une liste d'opérations qui sont restreintes.
olcSecurity ssf=1 simple_bind=128 Spécifiez un ensemble de facteurs de force de sécurité à exiger.
olcAuthIDRewrite Utilisé pour convertir des noms d'utilisateur simples en un DN LDAP utilisé à des fins d'authentification.
olcAuthzRegexp Utilisé pour convertir des noms d'utilisateur simples en un DN LDAP utilisé à des fins d'authentification. Peut être spécifié plusieurs fois et nécessite un redémarrage du serveur pour prendre effet.
olcAuthzPolicy none Quelles règles utiliser pour l'Autorisation Proxy.
olcLocalSSF 300 SSF présumé pour les connexions LDAPI.
olcPasswordHash {SSHA} Un ou plusieurs algorithmes de hachage à utiliser pour les modifications de mot de passe étendues.
olcPasswordCryptSaltFormat %s Le format du sel lors du hachage des mots de passe avec crypt().
Configuration TLS
Nom Par défaut/Obligatoire Description
olcTLSCertificateFile Fichier de clé publique pour slapd.
olcTLSCertificateKeyFile Clé privée pour slapd.
olcTLSRandFile Fichier pour obtenir des bits aléatoires lorsque urandom n'est pas disponible.
olcTLSDHParamFile Fichier contenant des nombres premiers pour l'échange de clés éphémères Diffie-Hellman.
olcTLSCipherSuite Suites de chiffrement TLS à utiliser.
olcTLSProtocolMin Version TLS minimale à exiger. Par défaut le niveau le plus élevé possible.
olcTLSCACertificateFile Chemin vers un fichier contenant toutes les autorités de certification de confiance.
olcTLSCACertificatePath Chemin vers un répertoire contenant des fichiers avec toutes les autorités de certification de confiance.
olcTLSCRLCheck none Si le CRL de l'AC doit être vérifié lors des connexions.
olcTLSVerifyClient never Quand vérifier l'identité du client.
Configuration des journaux
Nom Par défaut/Obligatoire Description
olcLogLevel stats Configuration du niveau de journalisation pour chaque sous-système.
olcLogFile Fichier dans lequel journaliser. slapd journalise toujours sur stderr.
olcPluginLogFile Fichier pour journaliser la sortie du plugin slapi.
olcReplogFile Fichier pour le replog qui peut être lu par slurpd.
Configuration des threads
Nom Par défaut/Obligatoire Description
olcConcurrency Indice de threading pour le système d'exploitation. Non utilisé sous Linux.
olcListenerThreads 1 Nombre de threads pour écouter les connexions. 1 suffit pour jusqu'à 16 cœurs.
olcThreads 16 Nombre de threads CPU pour le traitement des requêtes.
olcToolThreads 1 Nombre de threads CPU lorsqu'il fonctionne en mode outil. Ne doit pas dépasser le nombre de cœurs dans le système.
Délais et limites
Nom Par défaut/Obligatoire Description
olcIdleTimeout 0 Nombre de secondes qu'un client peut rester inactif avant d'être déconnecté.
olcWriteTimeout 0 Nombre de secondes qu'un client avec des écritures en attente peut rester inactif avant d'être déconnecté.
olcTimeLimit 3600 Nombre maximum de secondes que slapd passera à répondre à une requête. Permet une valeur illimitée.
olcSizeLimit 500 Nombre maximum d'entrées à renvoyer lors d'une recherche.
Connexions
Nom Par défaut/Obligatoire Description
olcConnMaxPending 50 Nombre maximum de requêtes en attente dans les sessions anonymes.
olcConnMaxPendingAuth 1000 Nombre maximum de requêtes en attente dans les sessions authentifiées.
olcTCPBuffer Taille du tampon TCP. Le système d'exploitation peut automatiquement ajuster cela.
olcSockbufMaxIncoming 262143 Taille maximale du PDU LDAP pour les sessions anonymes.
olcSockbufMaxIncomingAuth 4194303 Taille maximale du PDU LDAP pour les sessions authentifiées.
SASL
Nom Par défaut/Obligatoire Description
olcSaslHost Nom de domaine complètement qualifié utilisé pour le traitement SASL.
olcSaslRealm Le domaine SASL pour le traitement SASL.
olcSaslSecProps Spécifiez les propriétés de sécurité SASL de Cyrus.
olcSaslAuxprops Quels plugins auxprop utiliser pour les recherches d'authentification.
Indexation
Nom Par défaut/Obligatoire Description
olcIndexSubstrIfMinLen 2 La longueur minimale des indices subinitial et subfinal.
olcIndexSubstrIfMaxLen 4 La longueur maximale des indices subinitial et subfinal.
olcIndexSubstrAnyLen 4 Longueur pour les indices subany. Les attributs plus longs que cette longueur sont traités par segments.
olcIndexSubstrAnyStep 2 Pas utilisés dans les recherches subany. C'est le décalage pour les segments de la chaîne de filtre traitée.
olcIndexIntLen 4 Longueur de clé pour les indices d'entier ordonnés.
Divers
Nom Par défaut/Obligatoire Description
olcAttributeOptions x-hidden lang- Étiquetage des options d'attribut ou des préfixes d'option de balise/plage.
olcReferral Une URL de référence à renvoyer lorsque slapd ne peut pas trouver une base de données locale.
olcReverseLookup FALSE Activer les recherches inversées non vérifiées du nom du client.
olcRootDSE Nom d'un fichier LDIF contenant des attributs définis par l'utilisateur pour le root DSE.
olcReadOnly FALSE Met le serveur entier en mode lecture seule. Avertissement : Une fois réglé sur vrai, cette valeur ne peut pas être changée sans modifier les fichiers de base de données sur disque et redémarrer slapd !
olcLdapSyntaxes Je n'ai sérieusement aucune idée de pourquoi cet attribut est ici. Il n'y a pas de documentation sur Internet.

Valeurs de configuration pour la base de données

Ces valeurs s'appliquent à chaque base de données (OLC, surveillance et MDB). Cette section donne un aperçu de toutes ces valeurs. Les valeurs par défaut pour chaque base de données sont spécifiées ci-dessous. La base de données MDB a également d'autres attributs qui sont uniquement pris en charge sur cette base de données.

Général
Nom Obligatoire Description
olcSuffix :heavy_check_mark: Le DN suffix des requêtes qui seront transmises au backend de base de données. Pas requis pour l'OLC et la surveillance.
olcReadOnly :heavy_check_mark: Met cette base de données en mode lecture seule. Aucune modification n'est possible.
olcHidden :heavy_multiplication_x: Ne répondez à aucune requête à cette base de données. slapd niera l'existence de cette base de données.
olcLastMod :heavy_check_mark: Si slapd maintiendra automatiquement modfiersName, modifyTimestamp, creatorsName, createTimestamp, entryCSN, et entryUUID.
olcSubordinate :heavy_multiplication_x: Si cette base de données est subordonnée à une autre base de données.
Sécurité
Nom Obligatoire Description
olcSecurity :heavy_multiplication_x: Spécifiez un ensemble de facteurs de force de sécurité à exiger.
olcRootDN :heavy_check_mark: Nom du RootDN de cette base de données.
olcRootPW :heavy_check_mark: Mot de passe haché du RootDN de cette base de données.
olcRequires :heavy_multiplication_x: Un ensemble de conditions à exiger.
olcRestrict :heavy_multiplication_x: Une liste d'opérations qui sont restreintes.
olcAddContentAcl :heavy_check_mark: Si les opérations effectueront une vérification ACL sur le contenu de l'entrée ajoutée.
olcAccess :heavy_check_mark: Tableau de règles ACL pour cette base de données.
Délais et limites
Nom Obligatoire Description
olcTimeLimit :heavy_multiplication_x: Nombre maximum de secondes que slapd passera à répondre à une requête. Permet une valeur illimitée.
olcSizeLimit :heavy_multiplication_x: Nombre maximum d'entrées à renvoyer lors d'une recherche.
olcLimits :heavy_multiplication_x: Délais et limites de taille basés sur l'initiateur de l'opération ou le DN de base.
Syncrepl
Nom Obligatoire Description
olcSyncrepl :heavy_multiplication_x: Configuration principale pour Syncrepl.
olcUpdateDN :heavy_multiplication_x: DN autorisé à mettre à jour le répliqué. Ne devrait pas être le rootDN.
olcSyncUseSubentry :heavy_multiplication_x: Stockez le contextCSN de syncrepl dans une sous-entrée au lieu de l'entrée de contexte.
olcUpdateRef :heavy_multiplication_x: La référence à renvoyer lorsque slapd est demandé de modifier une base de données répliquée.
olcMirrorMode :heavy_multiplication_x: Met cette base de données en mode miroir.
slurpd
Nom Obligatoire Description
olcReplica :heavy_multiplication_x:
olcReplicaArgsFile :heavy_multiplication_x:
olcReplicaPidFile :heavy_multiplication_x:
olcReplicationInterval :heavy_multiplication_x:
olcReplogFile :heavy_multiplication_x:
Divers
Nom Obligatoire Description
olcSchemaDN :heavy_multiplication_x: DN pour la sous-entrée de schéma pour les entrées.
olcMaxDerefDepth :heavy_multiplication_x: Nombre maximum d'alias à suivre.
olcPlugin :heavy_multiplication_x: Charger des plugins slapi.
olcMonitoring :heavy_multiplication_x: Collecter des données de surveillance pour cette base de données.
olcExtraAttrs :heavy_multiplication_x: Spécifiez des attributs à renvoyer même lorsqu'ils ne sont pas recherchés.
Paramètres MDB

Ces paramètres ne s'appliquent qu'à la base de données MDB !

Nom Obligatoire Par défaut Description
olcDbDirectory :heavy_check_mark: {{slapd_mdb_dir}} Chemin vers le répertoire de base de données sur le disque.
olcDbNoSync :heavy_multiplication_x: TRUE Ne pas synchroniser immédiatement après que les données ont été reçues.
olcDbCheckpoint :heavy_multiplication_x: 8192 15 À quelle fréquence (Ko/minutes) vider la base de données sur le disque.
olcDbMaxReaders :heavy_multiplication_x: Nombre maximum de threads qui peuvent acceder à la base de données simultanément.
olcDbMaxSize :heavy_multiplication_x: Taille maximum de la base de données en octets.
olcDbMode :heavy_multiplication_x: 0600 Mode de fichier des fichiers de base de données.
olcDbSearchStack :heavy_multiplication_x: 16 Profondeur de la pile lors des évaluations des filtres de recherche.
olcDbRtxnSize :heavy_multiplication_x: Nombre d'entrées à traiter dans une transaction de lecture.
olcDbIndex :heavy_multiplication_x: Index à créer sur cette base de données.

Valeurs par défaut pour chaque base de données

Nom Par défaut frontend Par défaut OLC Par défaut de surveillance Par défaut 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 [Mot de passe haché] [Mot de passe haché] [Mot de passe haché]
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

Dépendances

schema2ldif doit être installé.

Exemple de 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

Licence

Ce travail est sous Licence Creative Commons Attribution-ShareAlike 4.0 International.

Informations sur l'auteur

À propos du projet

Configure an entire slapd with the OLC

Installer
ansible-galaxy install stuvusIT.slapd-config
Licence
other
Téléchargements
7.4k
Propriétaire
stuvus IT Team - Studierendenvertretung Universität Stuttgart