Cómo instalar OpenLDAP Server para la autenticación centralizada

El Protocolo ligero de acceso a directorios ( LDAP, por sus siglas en inglés) es un conjunto de protocolos estándar de la industria, ligero y ampliamente utilizado para acceder a los servicios de directorio. Un servicio de directorio es una infraestructura de información compartida para acceder, administrar, organizar y actualizar elementos cotidianos y recursos de red, como usuarios, grupos, dispositivos, direcciones de correo electrónico, números de teléfono, volúmenes y muchos otros objetos.

El modelo de información LDAP se basa en entradas. Una entrada en un directorio LDAP representa una sola unidad o información y se identifica de forma única mediante lo que se denomina un nombre distinguido ( DN ). Cada uno de los atributos de la entrada tiene un tipo y uno o más valores.

Un atributo es un dato asociado con una entrada. Los tipos suelen ser cadenas nemotécnicas, como ” cn ” para el nombre común o ” mail ” para la dirección de correo electrónico. A cada atributo se le asigna uno o más valores que consisten en una lista separada por espacios.

La siguiente es una ilustración de cómo se organiza la información en el directorio LDAP .

Modelo de información LDAPModelo de información LDAP

En este artículo, mostraremos cómo instalar y configurar el servidor OpenLDAP para la autenticación centralizada en Ubuntu 16.04 / 18.04 y CentOS 7 .

Paso 1: instalación del servidor LDAP

1. Primero, comience instalando OpenLDAP , una implementación de código abierto de LDAP y algunas utilidades tradicionales de administración de LDAP utilizando los siguientes comandos.

# yum install openldap openldap-servers    #CentOS 7
$ sudo apt install slapd ldap-utils    #Ubuntu 16.04/18.04

En Ubuntu , durante la instalación del paquete, se le pedirá que ingrese la contraseña para la entrada de administrador en su directorio LDAP, establezca una contraseña segura y confírmela.

Configurar la contraseña de administrador de SlapdConfigurar la contraseña de administrador de Slapd

Cuando se complete la instalación, puede iniciar el servicio como se explica a continuación.

2. En CentOS 7 , ejecute los siguientes comandos para iniciar el demonio del servidor openldap , habilítelo para que se inicie automáticamente en el momento del arranque y verifique si está en funcionamiento (en Ubuntu, el servicio debe iniciarse automáticamente en systemd, simplemente puede verificar su estado):

$ sudo systemctl start slapd
$ sudo systemctl enable slapd
$ sudo systemctl status slapd

3. A continuación, permita las solicitudes al demonio del servidor LDAP a través del firewall como se muestra.

# firewall-cmd --add-service=ldap    #CentOS 7
$ sudo ufw allow ldap                #Ubuntu 16.04/18.04

Paso 2: configurar el servidor LDAP

Nota : No se recomienda editar manualmente la configuración LDAP, debe agregar las configuraciones en un archivo y usar el comando ldapadd o ldapmodify para cargarlas en el directorio LDAP como se muestra a continuación.

4. Ahora cree un usuario administrativo OpenLDAP y asigne una contraseña para ese usuario. En el siguiente comando, se crea un valor hash para la contraseña dada, anótelo, lo usará en el archivo de configuración LDAP.

$ slappasswd

Crear usuario administrador LdapCrear usuario administrador Ldap

5. Luego cree un archivo LDIF ( ldaprootpasswd.ldif ) que se usa para agregar una entrada al directorio LDAP.

$ sudo vim ldaprootpasswd.ldif

Agregue el siguiente contenido en él:

dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}PASSWORD_CREATED

explicando los pares atributo-valor anteriores:

  • olcDatabase : indica un nombre de instancia de base de datos específico y normalmente se puede encontrar dentro de /etc/openldap/slapd.d/cn=config .
  • cn = config : indica las opciones de configuración global.
  • CONTRASEÑA : es la cadena hash obtenida al crear el usuario administrativo.

6. A continuación, agregue la entrada LDAP correspondiente especificando el URI que hace referencia al servidor ldap y al archivo anterior.

$ sudo ldapadd -Y EXTERNAL -H ldapi:/// -f ldaprootpasswd.ldif

Agregar parámetros desde el archivo de contraseña raízAgregar parámetros desde el archivo de contraseña raíz

Paso 3: configurar la base de datos LDAP

7. Ahora copie el archivo de configuración de la base de datos de muestra para slapd en el directorio / var / lib / ldap y establezca los permisos correctos en el archivo.

$ sudo cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
$ sudo chown -R ldap:ldap /var/lib/ldap/DB_CONFIG
$ sudo systemctl restart slapd

8. A continuación, importe algunos esquemas LDAP básicos del directorio / etc / openldap / schema de la siguiente manera.

$ sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
$ sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
$ sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif

9. Ahora agregue su dominio en la base de datos LDAP y cree un archivo llamado ldapdomain.ldif para su dominio.

$ sudo vim ldapdomain.ldif

Agregue el siguiente contenido en él (reemplace el ejemplo con su dominio y CONTRASEÑA con el valor hash obtenido antes):

dn: olcDatabase={1}monitor,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth"
  read by dn.base="cn=Manager,dc=example,dc=com" read by * none

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=example,dc=com

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=Manager,dc=example,dc=com

dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}PASSWORD

dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by
  dn="cn=Manager,dc=example,dc=com" write by anonymous auth by self write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by dn="cn=Manager,dc=example,dc=com" write by * read

10. Luego, agregue la configuración anterior a la base de datos LDAP con el siguiente comando.

$ sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f ldapdomain.ldif

Cargar configuración de dominioCargar configuración de dominio

11. En este paso, necesitamos agregar algunas entradas a nuestro directorio LDAP . Cree otro archivo llamado baseldapdomain.ldif con el siguiente contenido.

dn: dc=example,dc=com
objectClass: top
objectClass: dcObject
objectclass: organization
o: example com
dc: example

dn: cn=Manager,dc=example,dc=com
objectClass: organizationalRole
cn: Manager
description: Directory Manager

dn: ou=People,dc=example,dc=com
objectClass: organizationalUnit
ou: People

dn: ou=Group,dc=example,dc=com
objectClass: organizationalUnit
ou: Group

Guarde el archivo y luego agregue las entradas al directorio LDAP.

$ sudo ldapadd -Y EXTERNAL -x -D cn=Manager,dc=example,dc=com -W -f baseldapdomain.ldif

12. El siguiente paso es crear un usuario LDAP, por ejemplo , tecmint , y establecer una contraseña para este usuario de la siguiente manera.

$ sudo useradd tecmint
$ sudo passwd tecmint

13. Luego, cree las definiciones para un grupo LDAP en un archivo llamado ldapgroup.ldif con el siguiente contenido.

dn: cn=Manager,ou=Group,dc=example,dc=com
objectClass: top
objectClass: posixGroup
gidNumber: 1005

En la configuración anterior, gidNumber es el GID en / etc / group para tecmint y lo agrega al directorio OpenLDAP.

$ sudo ldapadd -Y EXTERNAL -x  -W -D "cn=Manager,dc=example,dc=com" -f ldapgroup.ldif

14. A continuación, cree otro archivo LDIF llamado ldapuser.ldif y agregue las definiciones para el usuario tecmint .

dn: uid=tecmint,ou=People,dc=example,dc=com
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: tecmint
uid: tecmint
uidNumber: 1005
gidNumber: 1005
homeDirectory: /home/tecmint
userPassword: {SSHA}PASSWORD_HERE
loginShell: /bin/bash
gecos: tecmint
shadowLastChange: 0
shadowMax: 0
shadowWarning: 0

luego cargue la configuración en el directorio LDAP.

$ ldapadd -Y EXTERNAL  -x -D cn=Manager,dc=example,dc=com -W -f  ldapuser.ldif

Una vez que haya configurado un servidor central para la autenticación, la parte final es permitir que el cliente se autentique usando LDAP como se explica en esta guía:

  1. Cómo configurar el cliente LDAP para conectar la autenticación externa

Para obtener más información, consulte la documentación correspondiente del catálogo de documentos del software OpenLDAP y los usuarios de Ubuntu pueden consultar la guía del servidor OpenLDAP .

Resumen

OpenLDAP es una implementación de código abierto de LDAP en Linux. En este artículo, hemos mostrado cómo instalar y configurar el servidor OpenLDAP para la autenticación centralizada, en Ubuntu 16.04 / 18.04 y CentOS 7. Si tiene una pregunta o ideas para compartir, no dude en comunicarse con nosotros a través del formulario de comentarios a continuación.

CentOS , Ldap , OpenLDAP , Ubuntu

Leave a Comment

Your email address will not be published. Required fields are marked *

Hazlo Linux