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