GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo instalar el servidor de directorio LDAP 389 en Linux con pasos detallados

389 Directory Server es un servidor LDAP empresarial de código abierto.

Esto puede manejar un gran volumen de datos. Uno de los grandes beneficios del servidor 389 LDAP es que es increíblemente rápido y procesa para manejar varios miles de operaciones por segundo.

Tiene varias funciones avanzadas, incluida la replicación multimaestro asíncrona para el escalado horizontal, que a su vez proporciona una tolerancia a fallas del 100 % y un rendimiento extremadamente alto.

Además, tenga en cuenta que esto admite TLS, SASL para autenticación y transporte. 389 El servidor de directorio es totalmente compatible con LDAPv3.

Este tutorial explica cómo puede instalar y configurar el servidor de directorios 389 en su entorno Linux.

Configurar repositorio EPEL

Si no tiene configurado el repositorio de EPEL, asegúrese de configurarlo, ya que instalaremos los paquetes relacionados con 389 de EPEL.

Primero, descargue epel rpm del sitio web de Fedora como se muestra a continuación.

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

A continuación, instale el repositorio de epel en su servidor.

# 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 está interesado en OpenLDAP en lugar del servidor de directorio 389, consulte esto:Cómo instalar y configurar OpenLDAP en Linux

Configurar correctamente el archivo /etc/host

Asegúrese de que el archivo de host esté configurado correctamente.

En este ejemplo, la siguiente es la configuración actual del archivo /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

En lo anterior:

  • 192.168.101.10:es la dirección IP del servidor
  • deploy.thegeekstuff.com:este es el FQDN del servidor donde se está instalando el servidor de directorio 389
  • implementar:este es el nombre de host del servidor

Configurar los parámetros de sysctl apropiados

Agregue la siguiente línea a su archivo /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

Dependiendo de la cantidad de recursos que tenga en su sistema, es posible que desee aumentar un poco más el número máximo de archivos anterior.

Ejecute el comando "sysctl -p" como se muestra a continuación para asegurarse de que los cambios anteriores se realicen en su sistema.

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

Verifique que se hayan realizado los cambios:

# 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

Establecer valores límite adecuados

Establezca el valor ulimit en 8192 como se muestra a continuación en su archivo /etc/profile.

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

Verifique que esta entrada se agregue al archivo /etc/profile.

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

Modificar el archivo de inicio de sesión pam.d

Modifique el archivo /etc/pam.d/login y agregue la siguiente línea para incluir el archivo pam_limits.so como se muestra a continuación.

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

Asegúrese de que el archivo pam_limits.so esté presente en su sistema.

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

Nota:en 32 bits, use lo siguiente, ya que la ubicación de este archivo es diferente.

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

Crear usuario administrador de LDAP

Cree un usuario llamado ldapadmin y asigne una contraseña como se muestra a continuación:

useradd ldapadmin

passwd ldapadmin

Una vez que haya configurado correctamente el servidor LDAP, esto le ayudará:Cómo agregar usuarios y grupos LDAP

Instalar 389 Directory Server Base y OpenLDAP Client

Lo siguiente es instalar el paquete base del servidor de directorios 389 y los paquetes de utilidades del cliente OpenLDAP. Necesitamos instalar estos dos paquetes:

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

Usando el comando yum, instale los dos paquetes anteriores:

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

Además de instalar el paquete 389-ds-base y openldap-client, dependiendo de su sistema, esto también instalará los siguientes paquetes dependientes:

  • 389-ds-base-libs
  • GeoIP
  • bind-libs
  • utilidades de enlace
  • cyrus-sasl-gssapi
  • cyrus-sasl-md5
  • libicu
  • Perl-Archive-Tar
  • perl-DB_Archivo
  • perl-IO-Zlib
  • perl-Mozilla-LDAP
  • perl-NetAddr-IP
  • Constantes-del-paquete-perl
  • svcore

En este sistema en particular, los siguientes paquetes también se actualizaron cuando se instalaron los dos paquetes anteriores:

  • bind-libs-lite
  • licencia vinculante
  • openldap

Si está utilizando el repositorio EPEL por primera vez en su sistema, es posible que le pida que acepte la clave como se muestra a continuación. Diga "y" aquí.

Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
Importing GPG key 0x352C64E5:
 Userid     : "Fedora EPEL (7) <epel@fedoraproject.org>"
 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

Instalar los paquetes de administración del servidor de directorio 389

A continuación, instale los siguientes paquetes relacionados con la administración del servidor 389 LDAP:

  • 389-ds.noarch Esta es la suite de directorio, administración y consola 389
  • 389-admin.x86_64 Este es el administrador de 389 Administration Server
  • 389-adminutil.x86_64 Contiene las utilidades y bibliotecas necesarias para la administración 389
  • 389-ds-console-doc.noarch Estos son documentos basados ​​en web para la consola de administración del servidor de directorio 389

Use el comando yum e instale estos paquetes relacionados con la administración del servidor de directorio 389 como se muestra a continuación:

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

Además de instalar esos 4 paquetes, dependiendo de su sistema, esto también instaló los siguientes paquetes dependientes:

  • 389-admin-consola
  • 389-admin-consola-doc
  • 389-consola
  • 389-ds-consola
  • 389-dsgw
  • copiar-jdk-configs
  • idm-console-marco
  • java-1.8.0-openjdk-sin cabeza
  • javapackages-herramientas
  • jss
  • ldapjdk
  • libxslt
  • herramientas lksctp
  • mod_nss
  • perl-CGI
  • perl-FCGI
  • paquetes Python-Java
  • python-lxml
  • tzdata-java

En este sistema en particular, los siguientes paquetes también se actualizaron cuando se instalaron los paquetes anteriores:

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

Configurar 389 Directory Server:ejecutar setup-ds-admin.pl

Después de instalar los paquetes del servidor 389 LDAP necesarios, ejecute el script setup-ds-admin.pl, que configurará la configuración del servidor del directorio 389 en su sistema.

# setup-ds-admin.pl 

El programa anterior le pedirá que ingrese varios valores. La mayoría de ellos son intuitivos y directos.

Pero, he mostrado una salida parcial de dondequiera que esté solicitando la entrada del usuario a continuación.

Configuración del servidor de directorio 389:mensaje de advertencia inicial

Durante las primeras indicaciones del script setup-ds-admin.pl anterior, según la configuración de su sistema, es posible que aparezcan los siguientes mensajes de ADVERTENCIA. Puedes decir "sí" para continuar aquí:

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

Configurar 389 Directory Server:elija el tipo de configuración típica

En la siguiente pantalla, si es nuevo en el servidor de directorio 389, elija la configuración típica, que configurará todas las opciones de configuración comunes por usted.

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

Configurar el servidor de directorio 389:ingrese FQDN

Si configuró su archivo /etc/hosts correctamente como se explica en uno de los pasos anteriores, debería recoger correctamente el nombre de su computadora aquí como se muestra a continuación.

Solo tienes que pulsar-enter aquí y continuar.

Computer name [deploy.thegeekstuff.com]: 

Si su servidor no tiene la configuración adecuada de FQDN, verá este mensaje de error durante la ejecución del script setup-ds-admin.pl. Presione Ctrl-C y salga de esto, solucione el problema de FQDN y luego vuelva a ejecutar setup-ds-admin.pl nuevamente.

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

También puede pasar el FQDN como parámetro al script setup-ds-admin.pl como se muestra a continuación:

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

Configurar el servidor de directorio 389:ingrese el usuario administrador de LDAP

De forma predeterminada, utilizará dirsrv como nombre de usuario y grupo. Dado que creamos un usuario llamado ldapadmin en uno de nuestros pasos anteriores, especifíquelo aquí.

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

Configurar 389 Servidor de Directorio – Configurar Servidor de Directorio

Dado que esta es la primera configuración que estamos haciendo, aún no tenemos un servidor de directorio de configuración. Por lo tanto, presione Entrar aquí para aceptar la opción predeterminada, que es "no".

Pero cuando realiza una instalación múltiple de esto, es posible que ya tenga la configuración del servidor del directorio de configuración, en cuyo caso, debe decir "sí" y especificar esa información allí.

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

Configurar el servidor de directorio 389:especifique el nombre de usuario y la contraseña del administrador

En esta etapa, debe especificar el nombre de usuario y la contraseña de administrador para el nuevo servidor de directorio que se va a configurar.

Usarás este uid y contraseña para iniciar sesión en la consola.

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

Configurar 389 Directory Server:ingresar parámetros adicionales

Los siguientes son algunos parámetros adicionales que indicará el script setup-ds-admin.pl. Este nombre de dominio se obtuvo del FQDN que hemos definido en el archivo /etc/hosts:

Administration Domain [thegeekstuff.com]: 

El número de puerto predeterminado, como puede imaginar por el nombre, es 389. Simplemente déjelo como está presionando enter:

Directory server network port [389]: 

Ingrese el identificador único para su servidor de directorio.

Directory server identifier [deploy]: 

Configuración del servidor de directorio 389:configuración de la estructura de árbol LDAP

Primero, configure su árbol de directorios en consecuencia. En este ejemplo, esta es la raíz de nuestro árbol de directorios, que comienza con thegeekstuff.com desglosado por dc como se muestra a continuación.

Suffix [dc=thegeekstuff, dc=com]: 

A continuación, especifique el administrador del directorio, que es un DN donde tendrá el usuario administrativo que realizará ciertas operaciones del servidor de directorio.

Pulse Intro para aceptar el nombre predeterminado. Introduzca aquí la contraseña de su usuario administrador de directorios.

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

Especifique el puerto de administración. Tenga en cuenta que esto es diferente de su servidor de aplicaciones o puerto de servidor web. Simplemente acepte el valor predeterminado aquí.

Administration port [9830]: 

Configuración del servidor de directorios 389:etapas finales de la configuración

Diga "sí" al siguiente mensaje de confirmación final para iniciar la configuración del servidor de directorio en función de los valores que ha ingresado hasta ahora.

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

Verá el siguiente resultado que indica que la secuencia de comandos está configurando los servidores de directorio en función de sus valores de configuración.

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 no tiene instalado SELinux y no está configurado correctamente, recibirá el siguiente mensaje de ERROR. En este caso, es posible que desee deshabilitar temporalmente SELinux y ejecutar el script de configuración.

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

Verificar archivo de registro de configuración

La última línea del script de configuración mostrará el nombre del archivo de registro.

Abra el archivo de registro para asegurarse de que no haya ningún mensaje de error. Debería ser algo como lo siguiente:

# 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 . . .

Inicie 389 Directory Server usando Systemctl

dirsrv es el nombre del programa de inicio.

Use systemctl para iniciar 389 Directory Server como se muestra a continuación.

Antes de empezar:

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

Destacar el servidor de directorio 389:

# systemctl start dirsrv.target

Después de empezar:

# 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.
..

Inicie 389 Directory Server usando start-dirsrv

En lugar de usar systemctl, también puede usar el comando start-dirsrv como se muestra a continuación para iniciar el servidor de directorio:

# start-dirsrv
Starting instance "deploy"

Utilice stop-dirsrv para detenerlo:

# stop-dirsrv
Stopping instance "deploy"

A continuación se mostrará el estado del servidor de directorio

# 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"
? dirsrv@deploy.service - 389 Directory Server deploy.
   Loaded: loaded (/usr/lib/systemd/system/dirsrv@.service; 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/dirsrv@deploy.service
           +-4761 /usr/sbin/ns-slapd -D /etc/dirsrv/slapd-deploy -i /var/run/dirsrv/slapd-deploy.pid

Inicie 389 Directory Server Admin usando Systemctl

Para controlar el servidor de administración de su directorio 389, use systemctl como se muestra a continuación.

El programa de administración se conoce como dirsrv-admin, como se muestra a continuación.

# 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)
..

También puede usar el comando stop-ds-admin para detener el Servidor de administración 389

Valide la configuración usando el comando LDAPSearch

Finalmente, use el comando ldapsearch para validar que la configuración se haya realizado correctamente.

El siguiente es el resultado parcial del comando 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. Cómo instalar el servidor web Nginx en Linux

  2. Cómo instalar Nextcloud con Docker en su servidor Linux

  3. Cómo instalar LDAP 389 Directory Server en un CentOS 6 VPS

  4. Cómo instalar Apache 2 con SSL en Linux (con mod_ssl, openssl)

  5. Cómo instalar un servidor Linux de virtualización

¿Cómo instalar Softaculous en un servidor Linux con cPanel?

Cómo instalar Apache en Arch Linux

Cómo instalar y configurar el servidor web Caddy con PHP en Rocky Linux 8

Cómo instalar Webmin en Ubuntu Linux

Cómo instalar Jenkins en Rocky Linux 8

Cómo instalar Configurar cliente LDAP para 389 Directory Server