OpenLDAP est une implémentation open-source du protocole d'accès à l'annuaire léger développé par le projet OpenLDAP. LDAP est un protocole Internet que les e-mails et d'autres programmes utilisent pour rechercher des informations de contact à partir d'un serveur. Il est publié sous licence publique OpenLDAP; il est disponible pour toutes les principales distributions Linux, AIX, Android, HP-UX, OS X, Solaris, Windows et z/OS.
Il fonctionne comme une base de données relationnelle à certains égards et peut être utilisé pour stocker n'importe quelle information. LDAP ne se limite pas à stocker les informations ; il est également utilisé comme base de données principale pour la « single sign-on » où un mot de passe pour un utilisateur est partagé entre plusieurs services.
Dans ce didacticiel, nous allons configurer OpenLDAP pour une connexion centralisée où les utilisateurs utilisent le compte unique pour se connecter à plusieurs serveurs.
Cet article ne couvre que la configuration OpenLDAP sans SSL. Si vous souhaitez configurer OpenLDAP avec SSL, suivez le lien ci-dessous après avoir terminé cet article.
LIRE :Comment configurer OpenLDAP avec SSL sur CentOS 7 / RHEL 7
Environnement
Nom d'hôte | Adresse IP | SE | Objectif |
---|---|---|---|
server.itzgeek.local | 192.168.1.10 | CentOS 7 | Serveur LDAP |
client.itzgeek.local | 192.168.1.20 | CentOS 7 | Client LDAP |
Prérequis
1. Assurez-vous que le serveur LDAP "server.itzgeek.local" (192.168.1.10) et client LDAP "client.itzgeek.local" (192.168.1.20) sont accessibles.
2. Créez une entrée d'hôte sur chaque machine dans /etc/hosts
pour la résolution de noms.
192.168.1.10 server.itzgeek.local server 192.168.1.20 client.itzgeek.local client
OU
Si vous prévoyez d'utiliser un nom d'hôte au lieu d'une adresse IP, configurez le serveur DNS à l'aide de l'article sur Comment configurer le serveur DNS sur CentOS 7/RHEL 7 .
Ici, je vais utiliser l'adresse IP pour toute la configuration.
Si vous envisagez de créer un serveur LDAP avec réplication, ignorez ce didacticiel et visitez Configurer la réplication multi-maître OpenLDAP sur Linux .Installer les packages OpenLDAP
Installez les packages RPM LDAP suivants sur le serveur LDAP (server.itzgeek.local ).
yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel
Démarrez le service LDAP et activez-le pour le démarrage automatique du service au démarrage du système.
systemctl start slapd systemctl enable slapd
Vérifiez le LDAP.
netstat -antup | grep -i 389
Sortie :
tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 1520/slapd tcp6 0 0 :::389 :::* LISTEN 1520/slapd
LIRE :commande netstat introuvable sur CentOS 7 / RHEL 7 – Quick Fix
Configurer le mot de passe administrateur LDAP
Exécutez la commande ci-dessous pour créer un mot de passe racine LDAP. Nous utiliserons ce mot de passe administrateur LDAP (racine) tout au long de cet article.
Remplacez ldppassword par votre mot de passe.
slappasswd -h {SSHA} -s ldppassword
La commande ci-dessus générera un hachage crypté du mot de passe saisi que vous devez utiliser dans le fichier de configuration LDAP. Alors notez-le et gardez-le de côté.
Sortie :
{SSHA}d/thexcQUuSfe3rx3gRaEhHpNJ52N8D3
Configurer le serveur OpenLDAP
Les fichiers de configuration des serveurs OpenLDAP se trouvent dans /etc/openldap/slapd.d/
. Pour commencer la configuration de LDAP, il faudrait mettre à jour les variables « olcSuffix ” et “olcRootDN ".
suffixe olc – Database Suffix, c'est le nom de domaine pour lequel le serveur LDAP fournit les informations. En termes simples, il doit être remplacé par votre
nom de domaine.
olcRootDN – Entrée de nom distinctif (DN) racine pour l'utilisateur qui dispose d'un accès illimité pour effectuer toutes les activités d'administration sur LDAP, comme un utilisateur racine.
olcRootPW – Mot de passe administrateur LDAP pour le RootDN ci-dessus.
Les entrées ci-dessus doivent être mises à jour dans/etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif
dossier. La modification manuelle de la configuration LDAP n'est pas recommandée car vous perdrez les modifications chaque fois que vous exécuterez la commande ldapmodify. Veuillez créer un .ldif fichier.
vi db.ldif
Ajoutez les entrées ci-dessous.
Remplacez le mot de passe crypté ( {SSHA}d/thexcQUuSfe3rx3gRaEhHpNJ52N8D3 ) avec le mot de passe que vous avez généré à l'étape précédente.
dn: olcDatabase={2}hdb,cn=config changetype: modify replace: olcSuffix olcSuffix: dc=itzgeek,dc=local dn: olcDatabase={2}hdb,cn=config changetype: modify replace: olcRootDN olcRootDN: cn=ldapadm,dc=itzgeek,dc=local dn: olcDatabase={2}hdb,cn=config changetype: modify replace: olcRootPW olcRootPW: {SSHA}d/thexcQUuSfe3rx3gRaEhHpNJ52N8D3
Une fois que vous avez terminé avec le fichier ldif, envoyez la configuration au serveur LDAP.
ldapmodify -Y EXTERNAL -H ldapi:/// -f db.ldif
Apportez des modifications à /etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif (ne pas modifier manuellement) fichier pour restreindre l'accès du moniteur uniquement à la racine ldap (ldapadm ) utilisateur pas aux autres.
vi monitor.ldif
Utilisez les informations ci-dessous.
dn: olcDatabase={1}monitor,cn=config changetype: modify replace: olcAccess olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external, cn=auth" read by dn.base="cn=ldapadm,dc=itzgeek,dc=local" read by * none
Une fois que vous avez mis à jour le fichier, envoyez la configuration au serveur LDAP.
ldapmodify -Y EXTERNAL -H ldapi:/// -f monitor.ldif
Configurer la base de données LDAP
Copiez l'exemple de fichier de configuration de la base de données dans /var/lib/ldap
et mettez à jour les autorisations du fichier.
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG chown ldap:ldap /var/lib/ldap/*
Ajouter le cosinus et nis Schémas LDAP.
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
Générer base.ldif
fichier pour votre domaine.
vi base.ldif
Utilisez les informations ci-dessous. Vous pouvez le modifier selon vos besoins.
dn: dc=itzgeek,dc=local dc: itzgeek objectClass: top objectClass: domain dn: cn=ldapadm ,dc=itzgeek,dc=local objectClass: organizationalRole cn: ldapadm description: LDAP Manager dn: ou=People,dc=itzgeek,dc=local objectClass: organizationalUnit ou: People dn: ou=Group,dc=itzgeek,dc=local objectClass: organizationalUnit ou: Group
Construisez la structure de répertoires.
ldapadd -x -W -D "cn=ldapadm,dc=itzgeek,dc=local" -f base.ldifLa commande ldapadd vous demandera le mot de passe de ldapadm (utilisateur racine LDAP).
Sortie :
Enter LDAP Password: adding new entry "dc=itzgeek,dc=local" adding new entry "cn=ldapadm ,dc=itzgeek,dc=local" adding new entry "ou=People,dc=itzgeek,dc=local" adding new entry "ou=Group,dc=itzgeek,dc=local"Pages :1 2