LDAP signifie Lightweight Directory Access Protocol.
LDAP est une solution pour accéder aux informations stockées de manière centralisée sur le réseau. Ces informations stockées de manière centralisée sont organisées dans un répertoire conforme à la norme X.500.
Les informations sont stockées et organisées de manière hiérarchique et l'avantage de cette approche est que les informations peuvent être regroupées dans des conteneurs et que les clients peuvent accéder à ces conteneurs en cas de besoin.
La hiérarchie OpenLDAP est presque similaire à la hiérarchie DNS.
Voici les deux objets les plus couramment utilisés dans OpenLDAP :
- cn (nom commun) :il s'agit des entrées feuille, qui sont des objets finaux (par exemple :utilisateurs et groupes)
- dc (composant de domaine) – Cela fait référence à l'une des entrées de conteneur dans la hiérarchie LDAP. Si, dans une configuration, la hiérarchie LDAP est mappée à une hiérarchie DNS, généralement tous les domaines DNS sont appelés objets DC.
Par exemple, s'il existe un utilisateur dans la hiérarchie sam.thegeekstuff.com, le nom distinctif complet de cet utilisateur est référencé comme cn=sam, dc=thegeekstuff, dc=com. Si vous avez remarqué dans le FDN (nom distinctif complet), une virgule est utilisée comme séparateur et non un point, ce qui est courant dans le DNS.
En utilisant les différents types d'entrées LDAP, vous pouvez configurer une structure de répertoire hiérarchique. C'est la raison pour laquelle openLDAP est si largement utilisé. Vous pouvez facilement créer une hiérarchie openLDAP dans laquelle les objets des autres emplacements sont facilement référencés sans les stocker sur des serveurs locaux. Cela fait d'OpenLDAP un annuaire léger, en particulier par rapport à d'autres serveurs d'annuaire tels que l'Active Directory de Microsoft.
Voyons maintenant comment configurer une seule instance d'un serveur LDAP qui peut être utilisée par plusieurs clients de votre réseau pour l'authentification.
Installer les packages OpenLDAP
Sur CentOS et RedHat, utilisez yum install comme indiqué ci-dessous pour installer les packages liés à openldap.
yum install -y openldap openldap-clients openldap-servers
Vous devez installer les trois packages suivants :
- openldap-servers – Il s'agit du serveur LDAP principal
- openldap-clients :contient tous les utilitaires client LDAP requis
- openldap – Ce package contient les bibliothèques de support LDAP
Fichiers de configuration LDAP
- config.ldif – La configuration LDAP par défaut est stockée dans un fichier dans /etc/openldap/slapd.d/cn=config.ldif créé au format LDIF. Il s'agit du format d'entrée LDAP (LDIF), un format spécifique qui vous permet de saisir des informations dans l'annuaire LDAP.
- olcDatabase{2}bdb.ldif :vous pouvez également modifier les paramètres tels que le nombre de connexions que le serveur peut prendre en charge, les délais d'attente et d'autres paramètres de base de données dans le fichier /etc/openldap/slapd.d/cn=config/olcDatabase{2 }bdb.ldif. Il s'agit du fichier qui contient également les paramètres tels que l'utilisateur racine LDAP et le DN de base.
Créer un compte olcRootDN en tant qu'administrateur
Il est toujours recommandé de créer d'abord un compte utilisateur dédié avec les autorisations complètes pour modifier les informations sur la base de données LDAP.
Modifiez le fichier olcDatabase={2}bdb.ldif et modifiez l'entrée olcRootDN. Voici l'entrée par défaut.
# grep olcRootDN /etc/openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif olcRootDN: cn=Manager,dc=my-domain,dc=com
Remplacez la ligne ci-dessus par un utilisateur administrateur. Dans cet exemple, l'utilisateur "ramesh" sera l'olcRootDN.
olcRootDN: cn=ramesh,dc=thegeekstuff,dc=com
Créer un mot de passe racine olcRootPW
Utilisez maintenant la commande slappasswd pour créer un hachage pour le mot de passe root que vous souhaitez utiliser. Une fois le mot de passe généré, ouvrez le fichier cn=config.ldif, incluez le paramètre olcRootPW et copiez le mot de passe haché comme indiqué ci-dessous.
Exécutez la commande suivante et spécifiez un mot de passe. Cela générera le hachage pour le mot de passe donné.
# slappasswd New password: SecretLDAPRootPass2015 Re-enter new password: SecretLDAPRootPass2015 {SSHA}1pgok6qWn24lpBkVreTDboTr81rg4QC6
Prenez la sortie de hachage de la commande ci-dessus et ajoutez-la au paramètre oclRootPW dans le fichier config.ldif comme indiqué ci-dessous.
# vi /etc/openldap/slapd.d/cn=config.ldif olcRootPW: {SSHA}1pgok6qWn24lpBkVreTDboTr81rg4QC6
Créer un nom de domaine olcSuffix
Maintenant, configurez le olcSuffix et définissez le domaine que vous souhaitez. Modifiez simplement la ligne qui commence par olcSuffix dans le fichier olcDatabase={2}bdb.ldif comme indiqué ci-dessous.
# vi /etc/openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif olcSuffix: dc=thegeekstuff,dc=com
Vérifiez les fichiers de configuration
Utilisez la commande slaptest pour vérifier le fichier de configuration comme indiqué ci-dessous. Cela devrait afficher le message "test réussi" comme indiqué ci-dessous.
# slaptest -u config file testing succeeded
Vous pourriez recevoir les messages suivants pendant la commande ci-dessus, que vous pouvez ignorer pour le moment.
54a39508 ldif_read_file: checksum error on "/etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif" 54a39508 ldif_read_file: checksum error on "/etc/openldap/slapd.d/cn=config/olcDatabase={2}bdb.ldif"
Démarrer le serveur LDAP
Démarrez le serveur LDAP comme indiqué ci-dessous.
# service slapd start Checking configuration files for slapd: [WARNING] config file testing succeeded Starting slapd: [ OK ]
Vérifiez la recherche LDAP
Pour vérifier que le serveur LDAP est correctement configuré, vous pouvez utiliser la commande ci-dessous et vérifier que l'entrée de domaine est présente.
# ldapsearch -x -b "dc=thegeekstuff,dc=com" # extended LDIF # # LDAPv3 # base <dc=thegeekstuff,dc=com> with scope subtree # filter: (objectclass=*) # requesting: ALL # # search result search: 2 result: 32 No such object # numResponses: 1
Structure LDAP de base dans base.ldif
L'utilisation d'objets OU (unité organisationnelle) peut vous aider à fournir une structure supplémentaire à la base de données LDAP. Si vous prévoyez d'ajouter différents types d'entrées, telles que des utilisateurs, des groupes, des ordinateurs, des imprimantes et plus encore à l'annuaire LDAP, il est plus facile de placer chaque type d'entrée dans son propre conteneur.
Pour créer ces unités d'organisation, vous pouvez créer un fichier LDIF initial comme indiqué dans l'exemple ci-dessous. Dans cet exemple, ce fichier vous permet de créer le conteneur de base qui est dc=thegeekstuff,dc=com et il crée deux unités organisationnelles avec les noms d'utilisateurs et de groupes dans ce conteneur.
# cat base.ldif dn: dc=thegeekstuff,dc=com objectClass: dcObject objectClass: organization o: thegeekstuff.com dc: thegeekstuff dn: ou=users,dc=thegeekstuff,dc=com objectClass: organizationalUnit objectClass: top ou: users dn: ou=groups,dc=thegeekstuff,dc=com objectClass: organizationalUnit objectClass: top ou: groups
Importer la structure de base à l'aide de ldapadd
Nous pouvons maintenant importer la structure de base dans l'annuaire LDAP à l'aide de la commande ldapadd comme indiqué ci-dessous.
# ldapadd -x -W -D "cn=ramesh,dc=thegeekstuff,dc=com" -f base.ldif Enter LDAP Password: adding new entry "dc=thegeekstuff,dc=com" adding new entry "ou=users,dc=thegeekstuff,dc=com" adding new entry "ou=groups,dc=thegeekstuff,dc=com"
Vérifiez la structure de base à l'aide de ldapsearch
Pour vérifier que les unités d'organisation sont créées avec succès, utilisez la commande ldapsearch suivante.
# ldapsearch -x -W -D "cn=ramesh,dc=thegeekstuff,dc=com" -b "dc=thegeekstuff,dc=com" "(objectclass=*)" Enter LDAP Password:
La sortie de la commande ci-dessus affichera tous les objets dans la structure du répertoire LDAP.
# extended LDIF # # LDAPv3 # base <dc=thegeekstuff,dc=com> with scope subtree # filter: (objectclass=*) # requesting: ALL # # thegeekstuff.com dn: dc=thegeekstuff,dc=com objectClass: dcObject objectClass: organization o: thegeekstuff.com dc: thegeekstuff # users, thegeekstuff.com dn: ou=users,dc=thegeekstuff,dc=com objectClass: organizationalUnit objectClass: top ou: users # groups, thegeekstuff.com dn: ou=groups,dc=thegeekstuff,dc=com objectClass: organizationalUnit objectClass: top ou: groups # search result search: 2 result: 0 Success # numResponses: 4 # numEntries: 3
Dans le prochain article OpenLDAP, nous expliquerons comment ajouter de nouveaux utilisateurs et groupes à l'annuaire LDAP.