GNU/Linux >> Tutoriels Linux >  >> Linux

Comment installer le serveur d'annuaire LDAP 389 sur Linux avec des étapes détaillées

389 Directory Server est un serveur LDAP d'entreprise open source.

Cela peut gérer un volume de données très important. L'un des énormes avantages du serveur LDAP 389 est qu'il est rapide et traite jusqu'à gérer plusieurs milliers d'opérations par seconde.

Cela a plusieurs fonctionnalités avancées, y compris la réplication multi-maître asynchrone pour la mise à l'échelle horizontale, qui à son tour fournit une tolérance aux pannes de 100 % et un débit extrêmement élevé.

Gardez également à l'esprit que cela prend en charge TLS, SASL pour l'authentification et le transport. Le serveur d'annuaire 389 est entièrement compatible LDAPv3.

Ce tutoriel explique comment vous pouvez installer et configurer le serveur d'annuaire 389 sur votre environnement Linux.

Configurer le référentiel EPEL

Si vous n'avez pas configuré le référentiel EPEL, assurez-vous de le configurer, car nous installerons les 389 packages associés à partir d'EPEL.

Tout d'abord, téléchargez le RPM epel depuis le site Web de Fedora comme indiqué ci-dessous.

wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-9.noarch.rpm

Ensuite, installez le dépôt epel sur votre serveur.

# rpm -ivh epel-release-7-9.noarch.rpm 
warning: epel-release-7-9.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 352c64e5: NOKEY
Preparing...             ################################# [100%]
Updating / installing...
   1:epel-release-7-9    ################################# [100%]

Si vous êtes intéressé par OpenLDAP au lieu du serveur d'annuaire 389, consultez ceci :Comment installer et configurer OpenLDAP sur Linux

Configurer correctement le fichier /etc/host

Assurez-vous que le fichier hôte est correctement configuré.

Dans cet exemple, voici la configuration actuelle du fichier /etc/host.

# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.101.10  deploy.thegeekstuff.com deploy

Dans ce qui précède :

  • 192.168.101.10 - est l'adresse IP du serveur
  • deploy.thegeekstuff.com - Il s'agit du nom de domaine complet du serveur sur lequel le serveur d'annuaire 389 est installé
  • deploy – Il s'agit du nom d'hôte du serveur

Configurer les paramètres sysctl appropriés

Ajoutez la ligne suivante à votre fichier /etc/sysctl.conf :

# cat /etc/sysctl.conf 
net.ipv4.tcp_keepalive_time = 300
net.ipv4.ip_local_port_range = 1024 65000
fs.file-max = 64000

En fonction de la quantité de ressources dont vous disposez sur votre système, vous souhaiterez peut-être augmenter un peu plus le nombre maximal de fichiers ci-dessus.

Exécutez la commande "sysctl -p" comme indiqué ci-dessous pour vous assurer que les modifications ci-dessus sont apportées à votre système.

# sysctl -p
net.ipv4.tcp_keepalive_time = 300
net.ipv4.ip_local_port_range = 1024 65000
fs.file-max = 64000

Vérifiez que les modifications ont bien été apportées :

# sysctl fs.file-max net.ipv4.tcp_keepalive_time net.ipv4.ip_local_port_range
fs.file-max = 64000
net.ipv4.tcp_keepalive_time = 300
net.ipv4.ip_local_port_range = 1024     65000

Définir les valeurs Ulimit appropriées

Définissez la valeur ulimit sur 8192 comme indiqué ci-dessous dans votre fichier /etc/profile.

# echo "ulimit -n 8192" >> /etc/profile

Vérifiez que cette entrée est ajoutée au fichier /etc/profile.

# tail /etc/profile
..
..
unset i
unset -f pathmunge
ulimit -n 8192

Modifier le fichier de connexion pam.d

Modifiez le fichier /etc/pam.d/login et ajoutez la ligne suivante pour inclure le fichier pam_limits.so comme indiqué ci-dessous.

# vi /etc/pam.d/login 
session    required     /usr/lib64/security/pam_limits.so

Assurez-vous que le fichier pam_limits.so est présent sur votre système.

# ls -l /usr/lib64/security/pam_limits.so 
-rwxr-xr-x. 1 root root 19584 Aug 18  2015 /usr/lib64/security/pam_limits.so

Remarque :Sur 32 bits, utilisez ce qui suit, car l'emplacement de ce fichier est différent.

# vi /etc/pam.d/login 
session    required     /lib/security/pam_limits.so

Créer un utilisateur administrateur LDAP

Créez un utilisateur appelé ldapadmin et attribuez un mot de passe comme indiqué ci-dessous :

useradd ldapadmin

passwd ldapadmin

Une fois que vous avez correctement configuré le serveur LDAP, ceci vous aidera :Comment ajouter des utilisateurs et des groupes LDAP

Installer 389 Directory Server Base et OpenLDAP Client

Ensuite, installez le package de base du serveur d'annuaire 389 et les packages d'utilitaires client OpenLDAP. Nous devons installer ces deux packages :

  • 389-ds-base.x86_64
  • openldap-clients.x86_64

À l'aide de la commande yum, installez les deux packages ci-dessus :

# yum install 389-ds-base.x86_64 openldap-clients.x86_64

Outre l'installation des packages 389-ds-base et openldap-client, selon votre système, cela installera également les packages dépendants suivants :

  • 389-ds-base-libs
  • GéoIP
  • bind-libs
  • bind-utils
  • cyrus-sasl-gssapi
  • cyrus-sasl-md5
  • libicu
  • perl-Archive-Tar
  • perl-DB_File
  • perl-IO-Zlib
  • perl-Mozilla-LDAP
  • perl-NetAddr-IP
  • perl-Package-Constants
  • svrcore

Sur ce système particulier, les packages suivants ont également été mis à niveau lors de l'installation des deux packages ci-dessus :

  • bind-libs-lite
  • lier-licence
  • openldap

Si vous utilisez le référentiel EPEL pour la première fois sur votre système, cela peut vous demander d'accepter la clé comme indiqué ci-dessous. Dites "y" ici.

Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
Importing GPG key 0x352C64E5:
 Userid     : "Fedora EPEL (7) <[email protected]>"
 Fingerprint: 91e9 7d7c 4a5e 96f1 7f3e 888f 6a2f aea2 352c 64e5
 Package    : epel-release-7-9.noarch (installed)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
Is this ok [y/N]: y

Installer 389 packages d'administration de serveur d'annuaire

Ensuite, installez les packages suivants liés à l'administration du serveur LDAP 389 :

  • 389-ds.noarch Il s'agit de la suite d'annuaire, d'administration et de console 389
  • 389-admin.x86_64 Ceci est l'administrateur du serveur d'administration 389
  • 389-adminutil.x86_64 Contient les utilitaires et bibliothèques nécessaires à l'administration 389
  • 389-ds-console-doc.noarch Il s'agit de documents Web pour la console de gestion de serveur d'annuaire 389

Utilisez la commande yum et installez ces packages liés à l'administration du serveur d'annuaire 389 comme indiqué ci-dessous :

# yum install 389-admin.x86_64 \
       389-adminutil.x86_64 389-ds.noarch \
       389-ds-base.x86_64 389-ds-console-doc.noarch

Outre l'installation de ces 4 packages, en fonction de votre système, cela a également installé les packages dépendants suivants :

  • 389-admin-console
  • 389-admin-console-doc
  • 389-console
  • 389-ds-console
  • 389-dsgw
  • copy-jdk-configs
  • idm-console-framework
  • java-1.8.0-openjdk-sans tête
  • javapackages-outils
  • jss
  • ldapjdk
  • libxslt
  • lksctp-tools
  • mod_nss
  • perl-CGI
  • perl-FCGI
  • python-javapackages
  • python-lxml
  • tzdata-java

Sur ce système particulier, les packages suivants ont également été mis à niveau lors de l'installation des packages ci-dessus :

  • chkconfig
  • nspr
  • nss
  • nss-softokn
  • nss-softokn-freebl
  • nss-sysinit
  • outils nss
  • nss-util

Configuration 389 Directory Server – Exécutez setup-ds-admin.pl

Après avoir installé les packages de serveur LDAP 389 requis, exécutez le script setup-ds-admin.pl, qui configurera la configuration du serveur d'annuaire 389 sur votre système.

# setup-ds-admin.pl 

Le programme ci-dessus vous demandera d'entrer plusieurs valeurs. La plupart d'entre eux sont intuitifs et directs.

Mais, j'ai montré une sortie partielle de chaque fois que cela demande une entrée utilisateur ci-dessous.

Configuration du serveur d'annuaire 389 – Message d'avertissement initial

Au cours des premières invites du script setup-ds-admin.pl ci-dessus, selon la configuration de votre système, cela peut vous donner les messages d'avertissement suivants. Vous pouvez dire "oui" pour continuer ici :

389 Directory Server system tuning analysis version 14-JULY-2016.

NOTICE : System is x86_64-unknown-linux3.10.0-327.10.1.el7.x86_64 (2 processors).

WARNING: There are only 1024 file descriptors (soft limit) available, which
limit the number of simultaneous connections.  

WARNING  : The warning messages above should be reviewed before proceeding.

Would you like to continue? [no]: yes

Configuration 389 Directory Server - Choisissez le type de configuration typique

Dans l'écran suivant, si vous êtes nouveau sur le serveur d'annuaire 389, choisissez la configuration typique, qui configurera toutes les options de configuration courantes pour vous.

1. Express
       Allows you to quickly set up the servers using the most
       common options and pre-defined defaults. Useful for quick
       evaluation of the products.

   2. Typical
       Allows you to specify common defaults and options.

   3. Custom
       Allows you to specify more advanced options. This is 
       recommended for experienced server administrators only.

To accept the default shown in brackets, press the Enter key.

Choose a setup type [2]: 2

Configuration du serveur d'annuaire 389 – Entrez le nom de domaine complet

Si vous avez correctement configuré votre fichier /etc/hosts comme expliqué dans l'une des étapes précédentes, il devrait correctement récupérer le nom de votre ordinateur ici, comme indiqué ci-dessous.

Il vous suffit d'appuyer sur Entrée ici et de continuer.

Computer name [deploy.thegeekstuff.com]: 

Si votre serveur ne dispose pas d'une configuration FQDN appropriée, vous verrez ce message d'erreur lors de l'exécution de votre script setup-ds-admin.pl. Appuyez sur Ctrl-C et sortez de cela, résolvez le problème de FQDN, puis relancez setup-ds-admin.pl.

WARNING: There are problems with the hostname.
The hostname 'deploy' does not look like a
fully qualified host and domain name.

Please check the spelling of the hostname and/or your network configuration.
If you proceed with this hostname, you may encounter problems.

Do you want to proceed with hostname 'deploy'? [no]: no  
Computer name [deploy]: ^C

Vous pouvez également transmettre le FQDN en tant que paramètre au script setup-ds-admin.pl comme indiqué ci-dessous :

# setup-ds-admin.pl General.FullMachineName=deploy.thegeekstuff.com
..
Computer name [deploy.thegeekstuff.com]: 
..

Configuration du serveur d'annuaire 389 - Entrez l'utilisateur administrateur LDAP

Par défaut, cela utilisera dirsrv comme nom d'utilisateur et groupe. Puisque nous avons créé un utilisateur appelé ldapadmin dans l'une de nos étapes précédentes, spécifiez-le ici.

System User [dirsrv]: ldapadmin
System Group [dirsrv]: ldapadmin

Configuration du serveur d'annuaire 389 – Configuration du serveur d'annuaire

Comme il s'agit de la première configuration que nous effectuons, nous n'avons pas encore de serveur d'annuaire de configuration. Alors, appuyez sur Entrée ici pour accepter le choix par défaut, qui est "non".

Mais lorsque vous effectuez plusieurs installations, vous avez peut-être déjà configuré le serveur d'annuaire de configuration, auquel cas vous devez dire "oui" et spécifier ces informations ici.

Do you want to register this software with an existing
configuration directory server? [no]: 

Configuration 389 Directory Server - Spécifiez le nom d'utilisateur et le mot de passe de l'administrateur

À ce stade, vous devez spécifier le nom d'utilisateur et le mot de passe de l'administrateur pour le nouveau serveur d'annuaire que cela va configurer.

Vous utiliserez cet uid et ce mot de passe pour vous connecter à la console.

Configuration directory server
administrator ID [admin]: 
Password: 
Password (confirm): 

Configuration 389 Directory Server - Entrez des paramètres supplémentaires

Voici quelques paramètres supplémentaires que le script setup-ds-admin.pl demandera. Ce nom de domaine a été récupéré à partir du FQDN que nous avons défini dans le fichier /etc/hosts :

Administration Domain [thegeekstuff.com]: 

Le numéro de port par défaut, comme vous pouvez l'imaginer d'après son nom, est 389. Laissez-le tel quel en appuyant sur Entrée :

Directory server network port [389]: 

Saisissez l'identifiant unique de votre serveur d'annuaire.

Directory server identifier [deploy]: 

Configurer le serveur d'annuaire 389 - Configurer l'arborescence LDAP

Tout d'abord, configurez votre arborescence de répertoires en conséquence. Dans cet exemple, il s'agit de la racine de notre arborescence de répertoires, qui commence par thegeekstuff.com décomposé par dc comme indiqué ci-dessous.

Suffix [dc=thegeekstuff, dc=com]: 

Ensuite, spécifiez le gestionnaire d'annuaire, qui est un DN où vous aurez l'utilisateur administratif qui effectuera certaines opérations du serveur d'annuaire.

Appuyez sur Entrée pour accepter le nom par défaut. Saisissez ici le mot de passe de votre gestionnaire d'annuaire.

Directory Manager DN [cn=Directory Manager]: 
Password: 
Password (confirm): 

Spécifiez le port administrateur. Veuillez noter qu'il est différent du port de votre serveur d'application ou de votre serveur Web. Acceptez simplement la valeur par défaut ici.

Administration port [9830]: 

Configuration du serveur d'annuaire 389 – Étapes finales de la configuration

Dites "oui" au message de confirmation final suivant pour démarrer la configuration du serveur d'annuaire en fonction des valeurs que vous avez saisies jusqu'à présent.

Are you ready to set up your servers? [yes]: yes

Vous verrez la sortie suivante indiquant que le script configure les serveurs d'annuaire en fonction de vos valeurs de configuration.

Creating directory server . . .
Your new DS instance 'deploy' was successfully created.
Creating the configuration directory server . . .
Beginning Admin Server creation . . .
Creating Admin Server files and directories . . .
Updating adm.conf . . .
Updating admpw . . .
Registering admin server with the configuration directory server
Updating adm.conf with information from configuration directory server
Updating the configuration for the httpd engine . . .
..
..
Starting admin server . . .
The admin server was successfully started.
Admin server was successfully created, configured, and started.
Exiting . . .
Log file is '/tmp/setupqxoZug.log'

Si vous n'avez pas configuré SELinux et configuré correctement, vous obtiendrez le message d'ERREUR suivant. Dans ce cas, vous pouvez désactiver temporairement SELinux et exécuter le script de configuration.

ERROR: policydb version 30 does not match my version range 15-29
ERROR: Unable to open policy //etc/selinux/targeted/policy/policy.30.
Traceback (most recent call last):
File "/usr/sbin/semanage", line 32, in 
  import seobject
File "/usr/lib/python2.7/site-packages/seobject/__init__.py", line 27, in 
  import sepolicy
File "/usr/lib64/python2.7/site-packages/sepolicy/__init__.py", line 798, in 
  raise e
ValueError: Failed to read //etc/selinux/targeted/policy/policy.30 policy file

Vérifier le fichier journal de configuration

La dernière ligne du script d'installation affichera le nom du fichier journal.

Ouvrez le fichier journal pour vous assurer qu'il n'y a pas de message d'erreur. Cela devrait ressembler à ceci :

# vi /tmp/setupqxoZug.log
[21:50:57] - [Setup] Info This program will set up the 389 Directory and Administration Servers.
[21:50:57] - [Setup] Info Would you like to continue with set up?
[21:50:58] - [Setup] Info yes
..
..
[21:55:50] - [Setup] Info Updating admpw . . .
[21:55:50] - [Setup] Info Registering admin server with the configuration directory server . . .
[21:55:50] - [Setup] Info Updating adm.conf with information from configuration directory server . . .
[21:55:50] - [Setup] Info Updating the configuration for the httpd engine . . .
[21:55:52] - [Setup] Info Starting admin server . . .
[21:55:53] - [Setup] Info The admin server was successfully started.
[21:55:53] - [Setup] Info Admin server was successfully created, configured, and started.
[21:55:53] - [Setup] Success Exiting . . .

Démarrer 389 Directory Server en utilisant Systemctl

dirsrv est le nom du programme de démarrage.

Utilisez systemctl pour démarrer le serveur d'annuaire 389 comme indiqué ci-dessous.

Avant de commencer :

# systemctl status dirsrv.target
? dirsrv.target - 389 Directory Server
   Loaded: loaded (/usr/lib/systemd/system/dirsrv.target; disabled; vendor preset: disabled)
   Active: inactive (dead)

Démarrer le serveur d'annuaire 389 :

# systemctl start dirsrv.target

Après le démarrage :

# systemctl status dirsrv.target
? dirsrv.target - 389 Directory Server
   Loaded: loaded (/usr/lib/systemd/system/dirsrv.target; disabled; vendor preset: disabled)
   Active: active since Fri 2017-07-07 21:58:26 UTC; 2s ago

21:58:26 deploy systemd[1]: Reached target 389 Directory Server.
21:58:26 deploy systemd[1]: Starting 389 Directory Server.
..

Démarrer 389 Directory Server en utilisant start-dirsrv

Au lieu d'utiliser systemctl, vous pouvez également utiliser la commande start-dirsrv comme indiqué ci-dessous pour démarrer le serveur d'annuaire :

# start-dirsrv
Starting instance "deploy"

Utilisez stop-dirsrv pour l'arrêter :

# stop-dirsrv
Stopping instance "deploy"

Ce qui suit affichera l'état du serveur d'annuaire

# status-dirsrv
? dirsrv.target - 389 Directory Server
   Loaded: loaded (/usr/lib/systemd/system/dirsrv.target; disabled; vendor preset: disabled)
   Active: active since Fri 2017-07-07 21:58:26 UTC; 1min 39s ago

21:58:26 deploy systemd[1]: Reached target 389 Directory Server.
21:58:26 deploy systemd[1]: Starting 389 Directory Server.
Status of instance "deploy"
? [email protected] - 389 Directory Server deploy.
   Loaded: loaded (/usr/lib/systemd/system/[email protected]; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2017-07-07 22:00:01 UTC; 4s ago
  Process: 4754 ExecStartPre=/usr/sbin/ds_systemd_ask_password_acl /etc/dirsrv/slapd-%i/dse.ldif (code=exited, status=0/SUCCESS)
 Main PID: 4761 (ns-slapd)
   Status: "slapd started: Ready to process requests"
   CGroup: /system.slice/system-dirsrv.slice/[email protected]
           +-4761 /usr/sbin/ns-slapd -D /etc/dirsrv/slapd-deploy -i /var/run/dirsrv/slapd-deploy.pid

Démarrer 389 Directory Server Admin en utilisant Systemctl

Pour contrôler le serveur d'administration de votre répertoire 389, utilisez systemctl comme indiqué ci-dessous.

Le programme d'administration est connu sous le nom de dirsrv-admin comme indiqué ci-dessous.

# systemctl start dirsrv-admin

# systemctl stop dirsrv-admin

# systemctl status dirsrv-admin
? dirsrv-admin.service - 389 Administration Server.
   Loaded: loaded (/usr/lib/systemd/system/dirsrv-admin.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
..

Vous pouvez également utiliser la commande stop-ds-admin pour arrêter le serveur d'administration 389

Valider la configuration à l'aide de la commande LDAPSearch

Enfin, utilisez la commande ldapsearch pour valider que la configuration est effectuée correctement.

Voici la sortie partielle de la commande ldapsearch :

# ldapsearch -x -b "dc=thegeekstuff,dc=com"
..
..
dn: dc=thegeekstuff,dc=com
objectClass: top
objectClass: domain
dc: thegeekstuff

# Directory Administrators, thegeekstuff.com
dn: cn=Directory Administrators,dc=thegeekstuff,dc=com
objectClass: top
objectClass: groupofuniquenames
cn: Directory Administrators
uniqueMember: cn=Directory Manager
..
..
search: 2
result: 0 Success

# numResponses: 10
# numEntries: 9

Linux
  1. Comment installer le serveur Web Nginx sur Linux

  2. Comment installer Nextcloud avec Docker sur votre serveur Linux

  3. Comment installer le serveur d'annuaire LDAP 389 sur un VPS CentOS 6

  4. Comment installer Apache 2 avec SSL sur Linux (avec mod_ssl, openssl)

  5. Comment installer Virtualization Linux Server

Comment installer Softaculous sur un serveur Linux avec cPanel ?

Comment installer Apache sur Arch Linux

Comment installer et configurer Caddy Web Server avec PHP sur Rocky Linux 8

Comment installer Webmin sur Ubuntu Linux

Comment installer Jenkins sur Rocky Linux 8

Comment installer Configurer le client LDAP pour le serveur d'annuaire 389