LDAP ( Lightweight Directory Access Protocol ) est un protocole qui permet d’accéder à des bases d’informations sur les utilisateurs d’un réseau par l’intermédiaire de protocoles TCP/IP.
Dans ce guide nous allons voir comment configurer OpenLDAP sur CentOS 8, Je suppose que vous avez OpenLDAP installé et opérationnel, si ce n’est pas déja le cas référez vous cet article.
Autoriser openldap au niveau du firewall :
[root@server]# firewall-cmd --add-service={ldap,ldaps} --permanent
success
[root@server]# firewall-cmd --reload
successConfiguration de la base de donnés de OpenLDAP :
Avant d’ajouter les entrés LDAP il faut créer la base MDB. Créez votre base de données avec le fichier LDIF ci-dessous et remplacez ce qui est en gras avec ce qui correspond avec vore site.
pour le HASH, vous générer le votre avec la commande slappasswd en mettant un mot de passe de votre choix :
[root@server]# vim database.ldif
dn: olcDatabase=mdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcMdbConfig
olcDatabase: mdb
olcDbMaxSize: 42949672960
olcDbDirectory: /var/lib/openldap
olcSuffix: dc=monsite,dc=com
olcRootDN: cn=admin,dc=monsite,dc=com
olcRootPW: {SSHA}Y5MqOlBBkMHlDEBbr/CYecNZH2zXFG6f
olcDbIndex: uid pres,eq
olcDbIndex: cn,sn pres,eq,approx,sub
olcDbIndex: mail pres,eq,sub
olcDbIndex: objectClass pres,eq
olcDbIndex: loginShell pres,eq
olcDbIndex: sudoUser,sudoHost pres,eq
olcAccess: to attrs=userPassword,shadowLastChange,shadowExpire
by self write
by anonymous auth
by dn.subtree="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage
by dn.subtree="ou=system,dc=monsite,dc=com" read
by * none
olcAccess: to dn.subtree="ou=system,dc=monsite,dc=com" by dn.subtree="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage
by * none
olcAccess: to dn.subtree="dc=monsite,dc=com" by dn.subtree="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage
by users read
by * noneMettez à jour la base avec la commande ci-dessous, n’oubliez pas de préciser le nom de votre fichier :
[root@server]# ldapadd -Y EXTERNAL -H ldapi:/// -f database.ldif SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 adding new entry "olcDatabase=mdb,cn=config"
Définire la structure d’organisation :
Créez un fichier ldif ( basedn.ldif dans mon cas ) pour définire la structure d’organisation, n’oubliez pas de mettre vos propre infos :
dn: dc=monsite,dc=com objectClass: dcObject objectClass: organization objectClass: top o: monsite dc: monsite dn: ou=groups,dc=monsite,dc=com objectClass: organizationalUnit objectClass: top ou: groups dn: ou=people,dc=monsite,dc=com objectClass: organizationalUnit objectClass: top ou: people dn: ou=system,dc=monsite,dc=com objectClass: organizationalUnit objectClass: top ou: system
Mettez à jour ensuite la base avec la commande suivante :
[root@server]# ldapadd -Y EXTERNAL -H ldapi:/// -f basedn.ldif SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 adding new entry "dc=monsite,dc=com" adding new entry "ou=groups,dc=monsite,dc=com" adding new entry "ou=people,dc=monsite,dc=com" adding new entry "ou=system,dc=monsite,dc=com"
Céez ensuite un utilisateur système qui va qui sera utilisé pour effectuer des opérations telles que la résolution des ID utilisateur et groupe.
Créer le fichier ldif suivant (n’oubliez pas de mettre le HASH de votre mot de passe généré avec la commande slappasswd:
[root@server]# cat sysuser.ldif
dn: cn=sysuser,ou=system,dc=monsite,dc=com
objectClass: organizationalRole
objectClass: simpleSecurityObject
cn: sysuser
userPassword: {SSHA}VVa86w3PU9J2lFLsyRoHkO1FoC7aEmnf
description: resolve UIDs/GIDsMettre à jour la base LDAP :
[root@server openldap]# ldapadd -Y EXTERNAL -H ldapi:/// -f sysuser.ldif SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 adding new entry "cn=sysuser,ou=system,dc=monsite,dc=com"
Création d’utilisateur et groupe :
Nous allons maintenant crée un utilisateur et un groupe ( dev1/Groupuser dans mon cas) appartenant aux unités d’organisation créés précedement :
dn: cn=dev,ou=groups,dc=monsite,dc=com objectClass: posixGroup cn: Groupuser gidNumber: 4500 memberUid: user1 dn: uid=user1,ou=people,dc=monsite,dc=com objectClass: posixAccount objectClass: shadowAccount objectClass: inetOrgPerson cn: Prénom sn: Nom uid: user1 uidNumber: 4500 gidNumber: 4500 homeDirectory: /home/user1 loginShell: /bin/bash gecos: Nom complet
[root@server]# ldapadd -Y EXTERNAL -H ldapi:/// -f user1.ldif SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 adding new entry "cn=dev,ou=groups,dc=monsite,dc=com" adding new entry "uid=user1,ou=people,dc=monsite,dc=com"
Accorder un mot passe à votre utilisateur :
[root@server]# ldappasswd -Y EXTERNAL -H ldapi:/// -S "uid=user1,ou=people,dc=monsite,dc=com" New password: Re-enter new password: SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0
Enfin pour s’assurer que tout fonctionnelent correctement, taper la commande suivante pour voir les infos de votre utilisateur s’affiche :
[root@server]# ldapsearch -x -W -H ldapi:/// -D "uid=user1,ou=people,dc=monsite,dc=com" -b "ou=people,dc=monsite,dc=com" Enter LDAP Password: extended LDIF # LDAPv3 base with scope subtree filter: (objectclass=*) requesting: ALL # people, monsite.com dn: ou=people,dc=monsite,dc=com objectClass: organizationalUnit objectClass: top ou: people user1, people, monsite.com dn: uid=user1,ou=people,dc=monsite,dc=com objectClass: posixAccount objectClass: shadowAccount objectClass: inetOrgPerson cn:: UHLDqW5vbQ== sn: Nom uid: user1 uidNumber: 4500 gidNumber: 4500 homeDirectory: /home/user1 loginShell: /bin/bash gecos: Nom complet userPassword:: e1NTSEF9VEhmZHpqdkNWSG5kcjU4ZWF6aUpUV0RWNCtTblNSL0s= search result search: 2 result: 0 Success numResponses: 3 numEntries: 2






Empêcher les utilisateurs sudoers d’exécuter des cmds sudo
nmtui : Configurer une adresse IP sous Linux
Configurer le bonding réseau avec nmcli sous Linux
Comment installer Nginx on Rocky Linux 9
Fail2Ban : How to protect Linux services