Installer et configurer Open LDAP

LDAP appelé Light Weight Directory Access Protocolest un protocole utilisé pour accéder aux conteneurs de services X.500 au sein d'une entreprise connue à partir d'un annuaire. Ceux qui sont familiers avec l'administration de Windows Server peuvent penser que LDAP est de nature très similaire à Active Directory. Il s'agit même d'un concept largement utilisé d'imbrication de postes de travail Windows dans une entreprise OpenLDAP CentOS. Sur l'autre spectre, un poste de travail CentOS Linux peut partager des ressources et participer avec les fonctionnalités de base d'un domaine Windows.

Le déploiement de LDAP sur CentOS en tant qu'agent de serveur d'annuaire, d'agent de système d'annuaire ou de DSA (ces acronymes sont tous identiques) est similaire aux anciennes installations Novell Netware utilisant la structure de l'arborescence d'annuaires avec NDS.

Bref historique de LDAP

LDAP a été essentiellement créé comme un moyen efficace d'accéder aux répertoires X.500 avec des ressources d'entreprise. X.500 et LDAP partagent les mêmes caractéristiques et sont si similaires que les clients LDAP peuvent accéder aux répertoires X.500 avec certains helpers. Alors que LDAP possède également son propre serveur d'annuaire appeléslapd. La principale différence entre LDAP et DAP est que la version allégée est conçue pour fonctionner sur TCP.

Alors que DAP utilise le modèle OSI complet. Avec l'avènement d'Internet, de TCP / IP et d'Ethernet dans les réseaux d'aujourd'hui, il est rare de trouver une implantation de services d'annuaire utilisant à la fois des annuaires d'entreprise DAP et X.500 natifs en dehors de modèles informatiques hérités spécifiques.

Les principaux composants utilisés avec openldap pour CentOS Linux sont -

openldap Bibliothèques de support LDAP
serveur openldap Serveur LDAP
clients openldap Utilitaires du client LDAP
openldap-devel Bibliothèques de développement pour OpenLDAP
compay-openldap Bibliothèques partagées OpenLDAP
giflé Démon du serveur d'annuaire d'OpenLDAP
slurpd Utilisé pour la réplication LDAP sur un domaine d'entreprise

Note - Lors de la dénomination de votre entreprise, il est recommandé d'utiliser le .localTLD. L'utilisation d'un .net ou d'un .com peut entraîner des difficultés lors de la séparation d'une infrastructure de domaine en ligne et interne. Imaginez le travail supplémentaire pour une entreprise utilisant en interne acme.com pour les opérations externes et internes. Par conséquent, il peut être judicieux de disposer de ressources Internet appelées acme.com ou acme.net . Ensuite, les ressources d'entreprise du réseau local sont représentées sous la forme acme.local . Cela impliquera de configurer les enregistrements DNS, mais paiera en simplicité, éloquence et sécurité.

Installez Open LDAP sur CentOS

Installez les outils openldap, openldap-servers, openldap-clients et migrationstools de YUM .

[root@localhost]# yum -y install openldap openldap-servers openldap-clients
migration tools
 Loaded plugins: fastestmirror, langpacks
 updates
 | 3.4 kB  00:00:00
 updates/7/x86_64/primary_db
 | 2.2 MB  00:00:05
 Determining fastest mirrors
 (1/2): extras/7/x86_64/primary_db
 | 121 kB  00:00:01
 (2/2): base/7/x86_64/primary_db
 | 5.6 MB  00:00:16
 Package openldap-2.4.40-13.el7.x86_64 already installed and latest version
 Resolving Dependencies
 --> Running transaction check
 ---> Package openldap-clients.x86_64 0:2.4.40-13.el7 will be installed
 ---> Package openldap-servers.x86_64 0:2.4.40-13.el7 will be installed
 --> Finished Dependency Resolution
 base/7/x86_64/group_gz
 | 155 kB  00:00:00
 
 Dependencies Resolved
 
=============================================================================== 
=============================================================================== 
Package                                Arch
Version                             Repository                        Size 
=============================================================================== 
=============================================================================== 
Installing: 
openldap-clients                    x86_64
2.4.40-13.el7                    base                                 188 k 
openldap-servers                    x86_64
2.4.40-13.el7                    base                                 2.1 M  

Transaction Summary 
=============================================================================== 
===============================================================================
Install  2 Packages

Total download size: 2.3 M 
Installed size: 5.3 M 
Downloading packages:

Installed: 
openldap-clients.x86_64 0:2.4.40-13.el7                                       
openldap-servers.x86_64 0:2.4.40-13.el7                                       
Complete! 
[root@localhost]#

Maintenant, commençons et activons le service slapd -

[root@centos]# systemctl start slapd 
[root@centos]# systemctl enable  slapd

À ce stade, assurons que nous avons notre structure openldap dans / etc / openldap .

root@localhost]# ls /etc/openldap/ 
certs  check_password.conf  ldap.conf  schema  slapd.d
[root@localhost]#

Ensuite, assurez-vous que notre service slapd est en cours d'exécution.

root@centos]# netstat -antup | grep slapd
tcp        0      0 0.0.0.0:389            0.0.0.0:*              LISTEN      1641/slapd
tcp6       0      0 :::389                 :::*                   LISTEN      1641/slapd
 
[root@centos]#

Ensuite, configurons notre installation Open LDAP .

Assurez-vous que notre utilisateur ldap système a été créé.

[root@localhost]# id ldap 
uid=55(ldap) gid=55(ldap) groups=55(ldap)
[root@localhost]#

Générez nos informations d'identification LDAP.

[root@localhost]# slappasswd  
New password:  
Re-enter new password:  
{SSHA}20RSyjVv6S6r43DFPeJgASDLlLoSU8g.a10

[root@localhost]#

Nous devons enregistrer la sortie de slappasswd.

Configurer Open LDAP

Step 1 - Configurez LDAP pour le domaine et ajoutez un utilisateur administratif.

Tout d'abord, nous voulons mettre en place notre environnement openLDAP. Voici un modèle à utiliser avec la commande ldapmodify .

dn: olcDatabase={2}hdb,cn=config 
changetype: modify 
replace: olcSuffix 
olcSuffix: dc=vmnet,dc=local 
dn: olcDatabase = {2}hdb,cn=config 
changetype: modify 
replace: olcRootDN 
olcRootDN: cn=ldapadm,dc=vmnet,dc=local 
dn: olcDatabase = {2}hdb,cn=config 
changetype: modify 
replace: olcRootPW 
olcRootPW: <output from slap

Apportez des modifications à: /etc/openldap/slapd.d/cn=config/olcDatabase = {1} monitor.ldif avec la commande ldapmodify.

[root@localhost]# ldapmodify -Y EXTERNAL -H ldapi:/// -f /home/rdc/Documents/db.ldif  
SASL/EXTERNAL authentication started 
SASL username: gidNumber = 0+uidNumber = 0,cn=peercred,cn=external,cn=auth 
SASL SSF: 0 
modifying entry "olcDatabase = {2}hdb,cn=config" 
modifying entry "olcDatabase = {2}hdb,cn=config" 
modifying entry "olcDatabase = {2}hdb,cn=config" 

[root@localhost cn=config]#

Vérifions la configuration LDAP modifiée.

root@linux1 ~]# vi /etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif

[root@centos]# cat /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{2\}hdb.ldif
 # AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify. 
 # CRC32 a163f14c
dn: olcDatabase = {2}hdb
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {2}hdb
olcDbDirectory: /var/lib/ldap
olcDbIndex: objectClass eq,pres
olcDbIndex: ou,cn,mail,surname,givenname eq,pres,sub
structuralObjectClass: olcHdbConfig
entryUUID: 1bd9aa2a-8516-1036-934b-f7eac1189139
creatorsName: cn=config
createTimestamp: 20170212022422Z
olcSuffix: dc=vmnet,dc=local
olcRootDN: cn=ldapadm,dc=vmnet,dc=local
olcRootPW:: e1NTSEF1bUVyb1VzZTRjc2dkYVdGaDY0T0k = 
entryCSN: 20170215204423.726622Z#000000#000#000000 
modifiersName: gidNumber = 0+uidNumber = 0,cn=peercred,cn=external,cn=auth
modifyTimestamp: 20170215204423Z

[root@centos]#

Comme vous pouvez le voir, nos modifications d'entreprise LDAP ont réussi.

Ensuite, nous voulons créer un certificat SSL auto-signé pour OpenLDAP. Cela sécurisera la communication entre le serveur d'entreprise et les clients.

Step 2 - Créez un certificat auto-signé pour OpenLDAP.

Nous utiliserons openssl pour créer un certificat ssl auto-signé. Allez au chapitre suivant,Create LDAP SSL Certificate with opensslpour obtenir des instructions pour sécuriser les communications avec OpenLDAP. Ensuite, lorsque les certificats SSL seront configurés, nous aurons terminé notre configuration d'entreprise OpenLDAP.

Step 3 - Configurez OpenLDAP pour utiliser des communications sécurisées avec certificat.

Créez un fichier certs.ldif dans vim avec les informations suivantes -

dn: cn=config
changetype: modify
replace: olcTLSCertificateFile
olcTLSCertificateFile: /etc/openldap/certs/yourGeneratedCertFile.pem

dn: cn=config
changetype: modify
replace: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/openldap/certs/youGeneratedKeyFile.pem

Ensuite, à nouveau, utilisez la commande ldapmodify pour fusionner les modifications dans la configuration OpenLDAP.

[root@centos rdc]# ldapmodify -Y EXTERNAL  -H ldapi:/// -f certs.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber = 0+uidNumber = 0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "cn=config"

[root@centos]#

Enfin, testons notre configuration OpenLADP.

[root@centos]# slaptest -u 
config file testing succeeded 
[root@centos]#

Step 4 - Configurer la base de données slapd.

cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG && 
chown ldap:ldap /var/lib/ldap/*

Met à jour le schéma OpenLDAP.

Ajoutez les schémas LDAP cosinus et nis.

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

Enfin, créez le schéma d'entreprise et ajoutez-le à la configuration OpenLDAP actuelle.

Voici pour un domaine appelé vmnet. local avec un administrateur LDAP appelé ldapadm .

dn: dc=vmnet,dc=local
dc: vmnet
objectClass: top
objectClass: domain

dn: cn=ldapadm ,dc=vmnet,dc=local
objectClass: organizationalRole
cn: ldapadm
description: LDAP Manager

dn: ou = People,dc=vmnet,dc=local
objectClass: organizationalUnit
ou: People

dn: ou = Group,dc=vmnet,dc=local 
objectClass: organizationalUnit 
ou: Group

Enfin, importez-le dans le schéma OpenLDAP actuel.

[root@centos]# ldapadd -x -W -D "cn=ldapadm,dc=vmnet,dc=local" -f ./base.ldif
 Enter LDAP Password:
adding new entry "dc=vmnet,dc=local"

adding new entry "cn=ldapadm ,dc=vmnet,dc=local"

adding new entry "ou=People,dc=vmnet,dc=local"

adding new entry "ou=Group,dc=vmnet,dc=local"

[root@centos]#

Step 5 - Mettre en place un OpenLDAP Enterprise Users.

Ouvrez vim ou votre éditeur de texte préféré et copiez le format suivant. Ceci est configuré pour un utilisateur nommé "entacct" sur le domaine LDAP "vmnet.local".

dn: uid=entacct,ou=People,dc=vmnet,dc=local 
objectClass: top
objectClass: account 
objectClass: posixAccount 
objectClass: shadowAccount 
cn: entacct 
uid: entacct 
uidNumber: 9999 
gidNumber: 100 
homeDirectory: /home/enyacct 
loginShell: /bin/bash 
gecos: Enterprise User Account 001 
userPassword: {crypt}x 
shadowLastChange: 17058 
shadowMin: 0 
shadowMax: 99999 
shadowWarning: 7

Importez maintenant les fichiers ci-dessus, tels qu'ils ont été enregistrés, dans le schéma OpenLdap.

[root@centos]# ldapadd -x -W -D "cn=ldapadm,dc=vmnet,dc=local" -f entuser.ldif 
 Enter LDAP Password:
adding new entry "uid=entacct,ou=People,dc=vmnet,dc=local" 

[root@centos]#

Avant que les utilisateurs puissent accéder à LDAP Enterprise, nous devons attribuer un mot de passe comme suit -

ldappasswd -s password123 -W -D "cn=ldapadm,dc=entacct,dc=local" -x "uid=entacct 
,ou=People,dc=vmnet,dc=local"

-s spécifie le mot de passe de l'utilisateur

-x est le nom d'utilisateur auquel le mot de passe mis à jour est appliqué

-D est le * nom distinctif "pour s'authentifier par rapport au schéma LDAP.

Enfin, avant de vous connecter au compte Entreprise, vérifions notre entrée OpenLDAP .

[root@centos rdc]# ldapsearch -x cn=entacct -b dc=vmnet,dc=local
 # extended LDIF
 #
 # LDAPv3
 # base <dc=vmnet,dc=local> with scope subtree
 # filter: cn=entacct
 # requesting: ALL 
 # 
 # entacct, People, vmnet.local 
dn: uid=entacct,ou=People,dc=vmnet,dc=local 
objectClass: top 
objectClass: account 
objectClass: posixAccount 
objectClass: shadowAccount 
cn: entacct 
uid: entacct 
uidNumber: 9999 
gidNumber: 100 
homeDirectory: /home/enyacct 
loginShell: /bin/bash 
gecos: Enterprise User Account 001 
userPassword:: e2NyeXB0fXg= 
shadowLastChange: 17058 
shadowMin: 0 
shadowMax: 99999 
shadowWarning: 7

La conversion d'éléments tels que / etc / passwd et / etc / groups en authentification OpenLDAP nécessite l'utilisation d'outils de migration. Ceux-ci sont inclus dans le package migrationtools . Ensuite, installé dans / usr / share / migrationtools .

[root@centos openldap-servers]# ls -l /usr/share/migrationtools/
total 128
-rwxr-xr-x. 1 root root  2652 Jun  9  2014 migrate_aliases.pl
-rwxr-xr-x. 1 root root  2950 Jun  9  2014 migrate_all_netinfo_offline.sh
-rwxr-xr-x. 1 root root  2946 Jun  9  2014 migrate_all_netinfo_online.sh
-rwxr-xr-x. 1 root root  3011 Jun  9  2014 migrate_all_nis_offline.sh
-rwxr-xr-x. 1 root root  3006 Jun  9  2014 migrate_all_nis_online.sh
-rwxr-xr-x. 1 root root  3164 Jun  9  2014 migrate_all_nisplus_offline.sh
-rwxr-xr-x. 1 root root  3146 Jun  9  2014 migrate_all_nisplus_online.sh
-rwxr-xr-x. 1 root root  5267 Jun  9  2014 migrate_all_offline.sh
-rwxr-xr-x. 1 root root  7468 Jun  9  2014 migrate_all_online.sh
-rwxr-xr-x. 1 root root  3278 Jun  9  2014 migrate_automount.pl
-rwxr-xr-x. 1 root root  2608 Jun  9  2014 migrate_base.pl

Step 6 - Enfin, nous devons autoriser l'accès au service slapd afin qu'il puisse répondre aux demandes.

firewall-cmd --permanent --add-service=ldap 
firewall-cmd --reload

Configurer l'accès client LDAP

La configuration de l'accès client LDAP nécessite les packages suivants sur le client: openldap, clients open-ldap et nss_ldap.

La configuration de l'authentification LDAP pour les systèmes clients est un peu plus simple.

Step 1 - Installer les packs dépendants -

# yum install -y openldap-clients nss-pam-ldapd

Step 2- Configurez l'authentification LDAP avec authconfig .

authconfig --enableldap --enableldapauth --ldapserver=10.25.0.1 --
ldapbasedn="dc=vmnet,dc=local" --enablemkhomedir --update

Step 3 - Redémarrez le service nslcd.

systemctl restart  nslcd