Serie RHCSA: Configuración de la autenticación basada en LDAP en RHEL 7-Parte 14

Comenzaremos este artículo describiendo algunos conceptos básicos de LDAP. (qué es, dónde se usa y por qué) y mostraremos cómo configurar un servidor LDAP y configurar un cliente para autenticarse contra él usando Sistemas Red Hat Enterprise Linux 7.

 Configurar el servidor LDAP y la autenticación del cliente Serie RHCSA: Configurar el servidor LDAP y la autenticación del cliente-Parte 14

Como Verá, hay varios otros escenarios de aplicación posibles, pero en esta guía nos centraremos completamente en la autenticación basada en LDAP. Además, tenga en cuenta que debido a la amplitud del tema, solo cubriremos sus conceptos básicos aquí, pero puede consultar la documentación descrita en el resumen para obtener más detalles.

Para Por la misma razón, notará que he decidido omitir varias referencias a las páginas de manual de las herramientas LDAP en aras de la brevedad, pero las explicaciones correspondientes están al alcance de la mano ( man ldapadd. por ejemplo ).

Dicho esto, comencemos.

Nuestro entorno de prueba

Nuestro entorno de prueba consta de dos cuadros de RHEL 7.

Servidor. 192.168.0.18. FQDN. rhel7.mydomain.com Cliente. 192.168.0.20. FQDN. ldapclient.mydomain.com freestar.config.enabled_slots.push

Si lo desea, puede usar la máquina instalada en la Parte 12: Automatizar las instalaciones de RHEL 7 utilizando Kickstart como cliente.

¿Qué es LDAP?

LDAP. significa Protocolo ligero de acceso a directorios. y consiste en un conjunto de protocolos que permite a un cliente acceder, a través de una red, a información almacenada de forma centralizada (como un directorio de shells de inicio de sesión, rutas absolutas a directorios de inicio y otra información típica del usuario del sistema, por ejemplo) que deberían ser accesibles desde diferentes lugares o estar disponibles para una gran cantidad de usuarios finales (otro ejemplo sería un directorio de direcciones de inicio y números de teléfono de todos los empleados de una empresa).

Mantener tal (y más) información de manera centralizada significa que todos los que tienen permisos para usarla pueden mantenerla y acceder a ella más fácilmente.

El siguiente diagrama ofrece un diagrama simplificado de LDAP. y se describe a continuación con mayor detalle:

 Diagrama LDAP Diagrama LDAP

Explicación detallada del diagrama anterior.

  1. Una entrada. en un directorio LDAP representa una sola unidad o información y se identifica de forma única por lo que se llama un nombre distinguido.
  2. Un atributo. es una parte de información asociada con una entrada (por ejemplo, direcciones, números de teléfono de contacto disponibles y direcciones de correo electrónico).
  3. A cada atributo se le asigna uno o más valores. que consisten en una lista separada por espacios . Un valor que es único por entrada se denomina Nombre Distinguido Relativo.

Dicho esto, procedamos con las instalaciones del servidor y del cliente.

Instalación y configuración de un servidor y cliente LDAP

En RHEL 7. OpenLDAP. implementa LDAP. Para instalar el servidor y el cliente, use los siguientes comandos, respectivamente:

# yum update && yum install openldap openldap-clients openldap-servers # yum update && yum install openldap openldap-clients nss-pam-ldapd

Una vez la instalación está completa, hay algunas cosas que analizamos. Los siguientes pasos deben realizarse solo en el servidor, a menos que se indique explícitamente:

1.. Asegúrese de que SELinux. no se interponga habilitando el siguiendo booleanos. de forma persistente, tanto en el servidor como en el cliente:

# setsebool-P allow_ypbind = 0 authlogin_nsswitch_use_ldap = 0

Donde allow_ypbind. es necesario para LDAP-autenticación basada, y authlogin_nsswitch_use_ldap. pueden ser necesarias para algunas aplicaciones.

2.. Habilite e inicie el servicio:

# systemctl enable slapd. service # systemctl start slapd.service

Tenga en cuenta que también puede desactivar, reiniciar o detener el servicio con systemctl:

# systemctl disable slapd.service # systemctl restart slapd.service # systemctl stop slapd .service

3.. Dado que el servicio slapd. se ejecuta como el usuario ldap (que puede verificar con ps-e-o pid, uname, comm | grep slapd </str ong>), dicho usuario debe poseer el directorio /var/lib/ldap. para que el servidor pueda modificar las entradas creadas por las herramientas administrativas que solo se pueden ejecutar como root (más sobre esto en un minuto).

Antes de cambiar la propiedad de este directorio de forma recursiva, copie el archivo de configuración de la base de datos de muestra para slapd. en él:

# cp/usr/share/openldap-servers/DB_CONFIG .example/var/lib/ldap/DB_CONFIG # chown-R ldap: ldap/var/lib/ldap

4.. Configure un usuario administrativo OpenLDAP y asigne una contraseña:

# slappasswd

como se muestra en la siguiente imagen:

Establecer contraseña de administrador LDAP  Establecer contraseña de administrador LDAP

Establecer contraseña de administrador LDAP

y cree un archivo LDIF. ( ldaprootpasswd.ldif. con la siguiente contenido bajo:

dn: olcDatabase = 0 config, cn = config changetype: modificar agregar: olcRootPW olcRootPW: SSHA PASSWORD

donde:

  1. PASSWORD. es la cadena hash obtenida anteriormente.
  2. cn = config. indica opciones de configuración global.
  3. olcDatabase. indica una nombre de instancia de base de datos específico y normalmente se puede encontrar dentro de /etc/openldap/slapd.d/cn=config.

Haciendo referencia a los antecedentes teóricos proporcionados anteriormente, el El archivo ldaprootpasswd.ldif agregará una entrada al directorio LDAP. En esa entrada, cada línea representa un par de atributo: valor (donde dn, changetype, add y olcRootPW son los atributos y las cadenas a la derecha de cada dos puntos son sus valores correspondientes).

Es posible que desee tener esto en cuenta a medida que avanzamos, y tenga en cuenta que estamos usando los mismos nombres comunes (cn =) en el resto de este artículo, donde cada paso depende del anterior. .

5.. Ahora, agregue la entrada LDAP correspondiente especificando el URI. refiriéndose al servidor ldap, donde solo los campos de protocolo/host/puerto están permitidos.

# ldapadd-H ldapi:///-f ldaprootpasswd.ldif

La salida debe ser similar a:

 Configuración LDAP Configuración LDAP

e importar algunas definiciones LDAP básicas iniciones del directorio/etc/openldap/schema:

# para def en cosine.ldif nis.ldif inetorgperson.ldif; do ldapadd-H ldapi:///-f/etc/openldap/schema/$ def; hecho  Definiciones LDAP Definiciones LDAP

6.. Haga que LDAP use su dominio en su base de datos.

Cree otro archivo LDIF. que llamaremos ldapdomain.ldif, con el siguiente contenido, reemplazando su dominio (en el Componente Dominio dc =) y contraseña según corresponda:

dn: olcDatabase = 1 monitor, cn = config changetype: modificar reemplazar: olcAccess olcAccess: 0 a * por dn.base = “gidNumber = 0 + uidNumber = 0, cn = peercred, cn = external, cn = auth” leído por dn.base = “cn = Manager, dc = mydomain. dc = com” leído por * none dn: olcDatabase = 2 hdb, cn = config changetype: modificar reemplazar: olcSuffix olcSuffix: dc = mydomain. dc = com dn: olcDatabase = 2 hdb, cn = config changetype: modificar reemplazar: olcRootDN olcRootDN: cn = Manager, dc = midominio. dc = com dn: olcDatabase = 2 hdb, cn = config changetype: modificar agregar: olcRootPW olcRootPW: SSHA CONTRASEÑA dn: olcDatabase = 2 hdb, cn = config changetype: modificar agregar: olcAccess olcAccess: 0 a attrs = userPassword, shadowLastChange por dn = “cn = Manag er, dc = mydomain. dc = com “escribir por autenticación anónima por autoescritura por * none olcAccess: 1 a dn.base =” “por * read olcAccess : 2 to * by dn = “cn = Manager, dc = mydomain, dc = com” write by * read

Luego cárguelo de la siguiente manera:

# ldapmodify-H ldapi:///-f ldapdomain.ldif  Configuración de dominio LDAP Configuración del dominio LDAP

7.. Ahora es el momento de agregar algunas entradas a nuestro LDAP directorio. Los atributos y valores están separados por dos puntos (:) en el siguiente archivo, que llamaremos baseldapdomain.ldif:

dn: dc = mydomain, dc = com objectClass: top objectClass: dcObject objectclass: organization o: mydomain com dc: mydomain dn: cn = Manager, dc = mydomain, dc = com objectClass: organizationRole cn: Manager description: Directory Manager dn: ou = People, dc = mydomain, dc = com objectClass: organizationUnit ou: People dn: ou = Group, dc = mydomain, dc = com objectClass: organizationUnit ou: Group

Agregue las entradas al directorio LDAP:

# ldapadd-x-D cn = Manager, dc = mydomain, dc = com-W-f baseldapdomain.ldif  Agregar atributos y valores de dominio LDAP Agregar valores y atributos de dominio LDAP

8.. Cree un usuario LDAP llamado ldapuser. ( adduser ldapuser. , luego cree las definiciones para un LDAP group en ldapgroup.ldif.

# adduser ldapuser # vi ldapgroup.ldif

Agregue el siguiente contenido.

dn: cn = Manager, ou = Group, dc = mydomain, dc = com objectClass: top objectClass : posixGroup gidNumber: 1004

donde gidNumber. es el GID en /etc/group. para ldapuser) y cárguelo:

# ldapadd-x-W-D “cn = Manager, dc = mydomain, dc = com”-f ldapgroup.ldif

9.. Agregue un archivo LDIF con las definiciones para el usuario ldapuser (ldapuser.ldif):

dn: uid = ldapuser, ou = People, dc = mydomain, dc = com objectClass: top objectClass: cuenta objectClass: posixAccount objectClass: shadowAccount cn: ldapuser uid: ldapuser uidNumber: 1004 gidNumber: 1004 homeDirectory:/home/ldapuser userPassword: SSHA fiN0YqzbDuDI0Fpqq9UudWmjZQY28S3M loginShell:/bin/bash gecos: ldapuser shadowLastChange: 0 shadowMax: 0 shadowWarning: 0

y cárguelo:

# ldapadd-x-D cn = Manager, dc = com-W-f ldapuser.ldif Configuración de usuario LDAP Configuración de usuario LDAP

Del mismo modo, puede eliminar la entrada de usuario que acaba de crear:

# ldapdelete-x-W-D cn = Manager, dc = mydomain, dc = com “uid = ldapuser, ou = People, dc = mydomain, dc = com ”

10.. Permita la comunicación a través del firewall:

# firewall-cmd–add-service = ldap

11.. Último, pero no menos importante, permita que el cliente se autentique mediante LDAP.

Para ayudarnos en este paso final, usaremos la utilidad authconfig. (una interfaz para configurar los recursos de autenticación del sistema).

Usando el siguiente comando, el directorio de inicio para el usuario solicitado se crea si no existe después de que la autenticación contra el servidor LDAP sea exitosa:

# authconfig–enableldap–enableldapauth–ldapserver = rhel7.mydomain.com–ldapbasedn = ” dc = midominio, dc = com “–enablemkhomedir–update Configuración del cliente LDAP Configuración del cliente LDAP

Resumen

En este artículo hemos explicado cómo configurar la autenticación básica contra un servidor LDAP. Para configurar aún más la configuración descrita en la presente guía, consulte el Capítulo 13-Configuración LDAP en la Guía del administrador del sistema RHEL 7, prestando especial atención a la configuración de seguridad mediante TLS.

No dude en dejar cualquier pregunta es posible que tenga utilizando el formulario de comentarios a continuación.