No description
Find a file
2022-08-05 14:18:44 +02:00
defaults initial commit 2022-08-05 14:18:44 +02:00
handlers initial commit 2022-08-05 14:18:44 +02:00
tasks initial commit 2022-08-05 14:18:44 +02:00
templates initial commit 2022-08-05 14:18:44 +02:00
README.md initial commit 2022-08-05 14:18:44 +02:00

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