5.5 KiB
5.5 KiB
Role : docker_openldap
Services fournis
Installation de openldap sur un serveur docker_host
Variables
Fournir les variables suivantes. Par exemple :
docker_openldap_data_dir: /data1
docker_openldap_service_id: openldap
Option | Valeur par défaut | Description |
---|---|---|
docker_openldap_data_dir | L'emplacement dans lequel se trouvent les volumes de donnees docker pour le service | |
docker_openldap_service_id | Le nom de service souhaité : conditionne le nommage des volumes | |
docker_openldap_port | 389 | Le numero de port local pour la connexion à openldap |
docker_openldap_version | Version du conteneur docker souhaité | |
docker_openldap_rootdn | dn de la racine de l'annuaire (par exemple: dc=example,dc=com) | |
docker_openldap_admin_password | Mot de passe administrateur de l'annuaire ; le dn de l'administrateur est cn=admin suivi du rootdn, par exemple : cn=admin,dc=example,dc=com) | |
docker_openldap_organization | Le nom de l'organisation pour cet annuaire (attribut o de la racine) |
Poursuite de l'installation du serveur openldap
Configuration de la strategie de mot de passe avec le module ppolicy
Activation du module ppolicy
# docker exec -ti -u openldap 7520847e9e47 bash
openldap@7520847e9e47:/$ cd /tmp
openldap@7520847e9e47:/tmp$ slapcat -n 0 | grep olcModuleLoad | grep ppolicy
openldap@7520847e9e47:/tmp$ cat > ppolicy-module.ldif
dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModuleLoad: ppolicy
^D
openldap@7520847e9e47:/tmp$ slapadd -n0 -l ppolicy-module.ldif
_#################### 100.00% eta none elapsed none fast!
Closing DB...
openldap@7520847e9e47:/tmp$ slapcat -n 0 | grep olcModuleLoad | grep ppolicy
olcModuleLoad: {0}ppolicy
et redémarrer le conteneur
Ajout de la configuration du module ppolicy
# docker exec -ti d7f2803e5cfb bash
root@d7f2803e5cfb:/# cd /tmp/
root@d7f2803e5cfb:/tmp# cat > ppolicyoverlay.ldif
dn: olcOverlay={2}ppolicy,olcDatabase={1}mdb,cn=config
changetype: add
objectClass: olcPPolicyConfig
objectClass: olcOverlayConfig
olcOverlay: {2}ppolicy
olcPPolicyDefault: cn=defaultPasswordPolicy,ou=policies,dc=libretic,dc=fr
olcPPolicyForwardUpdates: TRUE
olcPPolicyHashCleartext: TRUE
olcPPolicyUseLockout: TRUE
^D
root@d7f2803e5cfb:/tmp# ldapadd -Y EXTERNAL -H ldapi:// -f ppolicyoverlay.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "olcOverlay={2}ppolicy,olcDatabase={1}mdb,cn=config"
Ajout d'une stratégie de mot de passe par défaut
Valeurs à adapter en fonction du besoin.
root@d7f2803e5cfb:/tmp# cat > defaultppolicy.ldif
dn: ou=policies,dc=libretic,dc=fr
objectClass: organizationalUnit
ou: policies
dn: cn=defaultPasswordPolicy,ou=policies,dc=libretic,dc=fr
objectClass: top
objectClass: device
objectClass: pwdPolicyChecker
objectClass: pwdPolicy
cn: defaultPasswordPolicy
pwdAttribute: userPassword
pwdInHistory: 3
pwdMinLength: 8
pwdMaxFailure: 5
pwdFailureCountInterval: 600
pwdCheckQuality: 0
pwdMustChange: FALSE
pwdGraceAuthNLimit: 0
pwdMaxAge: 0
pwdExpireWarning: 1209600
pwdLockoutDuration: 900
pwdLockout: TRUE
root@d7f2803e5cfb:/tmp# ldapadd -Y EXTERNAL -H ldapi:// -f defaultppolicy.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "ou=policies,dc=libretic,dc=fr"
adding new entry "cn=defaultPasswordPolicy,ou=policies,dc=libretic,dc=fr"
Accès à l'annuaire en tant qu'administrateur de config
Permet par exemple une modification des acl pour une modification avec apache directory studio (pratique).
Modifier le mdp de l'administrateur de config
Créer la valeur chiffrée du mdp
root@docker-host:/# docker exec -ti 04a84d35f749 bash
root@04a84d35f749:/# slappasswd
New password:
Re-enter new password:
{SSHA}FqKYv/azMmj/tp2LTSWzOzJf65h/nRKp
Créer un fichier modify.ldif pour
root@04a84d35f749:/# cd /tmp/
root@04a84d35f749:/tmp# cat > modify.ldif
dn: olcDatabase={0}config,cn=config
changetype: modify
delete: olcRootPW
-
add: olcRootPW
olcRootPW: {SSHA}FqKYv/azMmj/tp2LTSWzOzJf65h/nRKp
^D
root@04a84d35f749:/tmp# ldapmodify -Y EXTERNAL -H ldapi:// -f modify.ldif
Connection depuis apache directory studio
Configurer ADS avec :
- compte : cn=admin,cn=config
- mdp : celui utilisé avec slappasswd
- dn de base : olcDatabase={1}mdb,cn=config => pour configurer le serveur openldap
- dn de base : cn=schema,cn=config => pour consulter les schemas connus par openldap