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.