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