


Cette procédure décrit l'installation et la configuration d'OpenLDAP, ainsi que son intégration avec Control-M Enterprise Manager 9.0.22.030 afin de mettre en place une gestion centralisée des utilisateurs et des groupes.
Elle couvre :
Cette intégration permet de centraliser la gestion des identités et des accès dans Control-M Enterprise Manager, de simplifier l'administration des utilisateurs et des groupes, et de renforcer la sécurité grâce à une authentification centralisée.
Configuration de la VM pour OpenLDAP :
OS : AlmaLinux 8
Espace : 20 Go (disque 1 : 20Go)
RAM : 4096 Mo
Processeur : 1 CPU
Presse-papier partagé : Bidirectionnel
Glisser-Déposer : Bidirectionnel
Mode d'accès réseau : Accès par pont
Dossiers partagés : Activé (choisir son dossier avec les packages pour l'installation Control-M)
Installation de l'OS :
Mettre le clavier à la bonne langue
Choisir le bon fuseau horaire
Choisir le bon espace de stockage (disque 1)
Activer la carte réseau
Créer un utilisateur admin autre que root (jfatah dans mon cas)
Mises à jour de l'OS, installation des Guest Additions for VirtualBox, nommage du serveur et création ip statique :
su - root
yum -y update
yum -y install epel-release
yum -y install make gcc kernel-headers kernel-devel perl dkms bzip2
reboot
exit
=> Insérer l'image CD des Additions Invités et le lancer
su - root
mkdir /media/VBoxAdditions
mount -r /dev/cdrom /media/VBoxAdditions
uname -r
KERN_DIR=/usr/src/kernels/4.18.0-553.147.1.el8_10.x86_64
cd /media/VBoxAdditions
./VBoxLinuxAdditions.run
reboot
exit
su - root
hostnamectl set-hostname controlmsecurity
hostname
vi /etc/hosts
-------------------
192.168.1.XX controlmem
192.168.1.JJ controlmsecurity
-------------------
exit
su - root
nmtui
nmcli con show "enp0s3"
nmcli con mod "enp0s3" ipv4.addresses "192.168.1.JJ/24" ipv4.gateway "192.168.1.254" ipv4.dns "192.168.1.254" ipv4.method manual ipv4.ignore-auto-dns yes
nmcli con down "enp0s3" && nmcli con up "enp0s3"
reboot
exit
Installation et configuration OpenLDAP :
su - root
dnf config-manager --set-enabled powertools
dnf repolist
dnf clean all
dnf makecache
dnf list available | grep openldap
dnf install openldap openldap-clients openldap-servers -y
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown ldap:ldap /var/lib/ldap/DB_CONFIG
systemctl enable --now slapd
systemctl status slapd
ss -tlnp | grep slapd
ldapsearch -Y EXTERNAL -H ldapi:/// -b cn=config
ldapsearch -Y EXTERNAL -H ldapi:/// -b cn=config olcDatabase
slappasswd
-------------------
controlmsecurity {SSHA}gqWRIgkZcPtHbmOlL9jFRpevDRWPbWi/
-------------------
vi /root/db-config.ldif
-------------------
dn: olcDatabase={2}mdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=lab,dc=local
-
replace: olcRootDN
olcRootDN: cn=admin,dc=lab,dc=local
-
replace: olcRootPW
olcRootPW: {SSHA}gqWRIgkZcPtHbmOlL9jFRpevDRWPbWi/
-------------------
ldapmodify -Y EXTERNAL -H ldapi:/// -f /root/db-config.ldif
ldapsearch -Y EXTERNAL -H ldapi:/// -b olcDatabase={2}mdb,cn=config olcSuffix olcRootDN
vi /root/rootpw.ldif
-------------------
dn: olcDatabase={2}mdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=Manager,dc=lab,dc=local
-
replace: olcRootPW
olcRootPW: {SSHA}gqWRIgkZcPtHbmOlL9jFRpevDRWPbWi/
-------------------
ldapmodify -Y EXTERNAL -H ldapi:/// -f /root/rootpw.ldif
ldapsearch -Y EXTERNAL -H ldapi:/// -b olcDatabase={2}mdb,cn=config olcRootDN olcRootPW
vi /root/change-rootdn.ldif
-------------------
dn: olcDatabase={2}mdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=admin,dc=lab,dc=local
-------------------
ldapmodify -Y EXTERNAL -H ldapi:/// -f /root/change-rootdn.ldif
ldapsearch -Y EXTERNAL -H ldapi:/// -b olcDatabase={2}mdb,cn=config olcSuffix olcRootDN
vi /root/base.ldif
-------------------
dn: dc=lab,dc=local
objectClass: top
objectClass: dcObject
objectClass: organization
o: Control-M Lab
dc: lab
dn: ou=Users,dc=lab,dc=local
objectClass: organizationalUnit
ou: Users
dn: ou=Groups,dc=lab,dc=local
objectClass: organizationalUnit
ou: Groups
-------------------
ldapadd -x -D "cn=admin,dc=lab,dc=local" -W -f /root/base.ldif
ldapsearch -x -D "cn=admin,dc=lab,dc=local" -W -b "dc=lab,dc=local"
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
ldapsearch -Y EXTERNAL -H ldapi:/// -b cn=schema,cn=config dn
slappasswd
-------------------
ctmadmin {SSHA}wabB55juZWu0p232SHUb5J25Yhgff3jo
ctmbrowse {SSHA}AF+IZoo5pXrl+Hfevialom96SQUtM7+7
-------------------
vi /root/users.ldif
-------------------
dn: uid=ctmadmin,ou=Users,dc=lab,dc=local
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
uid: ctmadmin
sn: Admin
givenName: ControlM
cn: Control-M Administrator
mail: ctmadmin@lab.local
userPassword: {SSHA}wabB55juZWu0p232SHUb5J25Yhgff3jo
dn: uid=ctmbrowse,ou=Users,dc=lab,dc=local
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
uid: ctmbrowse
sn: Browse
givenName: ControlM
cn: Control-M Browse
mail: ctmbrowse@lab.local
userPassword: {SSHA}AF+IZoo5pXrl+Hfevialom96SQUtM7+7
-------------------
ldapadd -x -D "cn=admin,dc=lab,dc=local" -W -f /root/users.ldif
ldapsearch -x -D "cn=admin,dc=lab,dc=local" -W -b "ou=Users,dc=lab,dc=local"
ldapwhoami -x -D "uid=ctmadmin,ou=Users,dc=lab,dc=local" -W
ldapwhoami -x -D "uid=ctmbrowse,ou=Users,dc=lab,dc=local" -W
vi /root/groups.ldif
-------------------
dn: cn=ControlM_Admins,ou=Groups,dc=lab,dc=local
objectClass: top
objectClass: groupOfNames
cn: ControlM_Admins
member: uid=ctmadmin,ou=Users,dc=lab,dc=local
dn: cn=ControlM_Browses,ou=Groups,dc=lab,dc=local
objectClass: top
objectClass: groupOfNames
cn: ControlM_Browses
member: uid=ctmbrowse,ou=Users,dc=lab,dc=local
-------------------
ldapadd -x -D "cn=admin,dc=lab,dc=local" -W -f /root/groups.ldif
ldapsearch -x -D "cn=admin,dc=lab,dc=local" -W -b "ou=Groups,dc=lab,dc=local"
firewall-cmd --permanent --add-port=389/tcp
firewall-cmd --reload
exit
Configuration de la résolution de noms, installation des outils OpenLDAP et validation de la connectivité au serveur LDAP à l'aide d'une requête de test (ldapsearch) :
su - root
vi /etc/hosts
-------------------
192.168.1.XX controlmem
192.168.1.YY controlmserver
192.168.1.JJ controlmsecurity
-------------------
dnf install openldap openldap-clients -y
ldapsearch -x -H ldap://controlmsecurity -D "cn=admin,dc=lab,dc=local" -W -b "dc=lab,dc=local"
exit
Configuration de Control-M Enterprise Manager pour l'intégration avec un annuaire OpenLDAP :
su - ctmem
cp $HOME/ctm_em/etc/DirectoryServiceType.cfg $HOME/ctm_em/etc/DirectoryServiceType.cfg.bak
vi $HOME/ctm_em/etc/DirectoryServiceType.cfg
-------------------
[Active Directory]
DirectoryUsersDnAttr=distinguishedName
DirectoryUsersIDAttr=sAMAccountName
DirectoryGroupIDAttr=sAMAccountName
DirectoryGroupMembersAttr=member
DirectoryGroupMembersIDAttr=distinguishedName
DirectoryGroupsObjectClassAttr=group
[iPlanet]
DirectoryUsersDnAttr=dn
DirectoryUsersIDAttr=cn
DirectoryGroupIDAttr=cn
DirectoryGroupMembersAttr=uniqueMember
DirectoryGroupMembersIDAttr=dn
DirectoryGroupsObjectClassAttr=groupOfUniqueNames
[OpenLDAP]
DirectoryUsersDnAttr=dn
DirectoryUsersIDAttr=uid
DirectoryGroupIDAttr=cn
DirectoryGroupMembersAttr=member
DirectoryGroupMembersIDAttr=dn
DirectoryGroupsObjectClassAttr=groupOfNames
-------------------
exit
Depuis l'onglet Configuration => System Settings => Active Directory LDAP => activer la fonctionnalité :
Login Domain : lab_local (Default)
LDAP Search User : cn=admin,dc=lab,dc=local
LDAP Search Password : ************
Communication Protocol : TCP
LDAP Directory Server Type : OpenLDAP
Server Name : controlmsecurity
Port : 389
Search Base 1 : ou=Users,dc=lab,dc=local
Search Base 2 : ou=Groups,dc=lab,dc=local
Depuis l'onglet Configuration => Rôles => dans chaque groupe mappé le groupe LDAP :
Admin => Associated With Organizational Groups : ControlM_Admins
BrowseGroup => Associated With Organizational Groups : ControlM_Browses
Depuis l'onglet Configuration => Users (faire la recherche des users) :
Organizational Groups : ctmadmin et ctmbrowse