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