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

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

Comenzaremos este artículo describiendo algunos Ldap Conceptos básicos (qué es, donde se usa y por qué) y muestre cómo configurar un servidor LDAP y configurar un cliente para autenticarse contra él utilizando Red Hat Enterprise Linux 7 sistemas.

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

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

Por la misma razón, notará que he decidido dejar de lado varias referencias a las páginas del hombre de las herramientas LDAP en aras de la brevedad, pero las explicaciones correspondientes están a la distancia de una punta de los dedos (hombre ldapadd, Por ejemplo).

Dicho esto, comencemos.

Nuestro entorno de prueba

Nuestro entorno de prueba consta de dos Rhel 7 cajas:

Servidor: 192.168.0.18. FQDN: rhel7.mi dominio.comunicarse Cliente: 192.168.0.20. FQDN: ldapclient.mi dominio.comunicarse 

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

¿Qué es LDAP??

Ldap representa Protocolo de acceso de directorio liviano y consiste en un conjunto de protocolos que permite que un cliente acceda, a través de una red, la información almacenada central (como un directorio de shells de inicio de sesión, rutas absolutas a los directorios de inicio y otra información típica del usuario del sistema, por ejemplo) que debería ser accesible Desde diferentes lugares o disponibles para una gran cantidad de usuarios finales (otro ejemplo sería un directorio de direcciones de viviendas y números de teléfono de todos los empleados en una empresa).

Mantener esa (y más) información de manera central significa que puede ser más fácilmente fácil de mantener y acceder por todos los que se les ha otorgado permisos para usarla para usarla.

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

Diagrama LDAP

Explicación del diagrama anterior en detalle.

  1. Un entrada En un directorio LDAP representa una sola unidad o información y se identifica de manera única por lo que se llama un nombre distinguido.
  2. Un atributo es una 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 consiste en una lista separada por el espacio. Un valor único por entrada se llama nombre relativo distinguido.

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

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

En Rhel 7, LDAP se implementa por Abre. Para instalar el servidor y el cliente, use los siguientes comandos, respectivamente:

# Yum Update && Yum Instale OpenLDAP OpenLDAP-Clients OpenLDAP-Mervers # Yum Update && Yum Instale OpenLDAP OpenLDAP-Clients nss-pam-ldapd 

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

1. Cerciorarse Selinux no se interpone en el camino habilitando lo siguiente booleanos Persistentemente, tanto en el servidor como en el cliente:

# setseBool -p plod_ypbind = 0 authlogin_nsswitch_use_ldap = 0 

Dónde PETH_YPBIND se requiere para la autenticación basada en LDAP, y authlogin_nsswitch_use_ldap puede ser necesario por algunas aplicaciones.

2. Habilitar e iniciar el servicio:

# SystemCTL Habilitar SLAPD.Servicio # SystemCTL Start Slapd.servicio 

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

# SystemCTL Disable Slapd.Servicio # SystemCTL reiniciar SLAPD.Servicio # SystemCTL Stop Slapd.servicio 

3. Desde el abatimiento El servicio se ejecuta como el usuario de LDAP (que puede verificar con ps -e -o pid, uname, comunicación | Grep Slapd), dicho usuario debe ser dueño del /var/lib/ldap Directorio para que el servidor pueda modificar las entradas creadas por 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 manera recursiva, copie el archivo de configuración de la base de datos de muestra para abatimiento en ello:

# cp/usr/share/openldap-servers/db_config.Ejemplo/var/lib/ldap/db_config # chown -r ldap: ldap/var/lib/ldap 

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

# slappasswd 

Como se muestra en la siguiente imagen:

Establecer contraseña de administrador de LDAP

y crear un Ldif archivo (ldaprootpasswd.ldif) con los siguientes contenidos:

dn: olcdatabase = 0 config, cn = configure changeType: modificar add: olcrootpw olcrootpw: ssha contraseña 

dónde:

  1. CONTRASEÑA ¿La cadena hash se obtuvo anteriormente?.
  2. CN = config indica opciones de configuración global.
  3. olcdatabase indica un nombre de instancia de base de datos específico y se puede encontrar típicamente dentro /etc/openldap/slapd.d/cn = config.

Refiriéndose a los antecedentes teóricos proporcionados anteriormente, el ldaprootpasswd.ldif El archivo agregará una entrada al directorio LDAP. En esa entrada, cada línea representa un atributo: el par de valores (donde DN, ChangeType, Add y OlCrootPW son los atributos y las cadenas a la derecha de cada colon son sus valores correspondientes).

Es posible que desee tener esto en cuenta a medida que avanzamos más, y tenga en cuenta que estamos utilizando los mismos nombres comunes (CN =) Durante 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 se permiten los campos de protocolo/host/puerto.

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

La salida debe ser similar a:

Configuración LDAP

e importar algunas definiciones básicas de LDAP del /etc/openldap/esquema directorio:

# para Def en coseno.ldif nis.Ldif inetorgperson.ldif; do ldapadd -h ldapi: /// -f/etc/openldap/schema/$ def; hecho 
Definiciones LDAP

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

Crea otro Ldif archivo, que llamaremos ldapdapdomain.ldif, Con el siguiente contenido, reemplazar su dominio (en el componente de dominio DC =) y la contraseña según corresponda:

dn: olcdatabase = 1 monitor, cn = config gangeType: modificar reemplazar: olcaccess olcaccess: 0 a * por dn.base = "gidnumber = 0+uidnumber = 0, cn = parcred, cn = externo, cn = auth" leído por dn.base = "CN = Manager,DC = Mydomain,dc = com "leído por * ninguno Dn: olcdatabase = 2 hdb, cn = config ChangeType: modificar reemplazo: olcsuffix olcsuffix: DC = Mydomain,dc = com dn: olcdatabase = 2 hdb, cn = config ChangeType: modificar reemplazo: olcrootdn olcrootdn: cn = gerente,DC = Mydomain,dc = com dn: olcdatabase = 2 hdb, cn = config ChangeType: modificar add: olcrootpw olcrootpw: ssha contraseña dn: olcdatabase = 2 hdb, cn = configure changeType: modificar add: olcacess olcaccess: 0 a attrs = userPassword, shadowloastchange por dn = "cn = gerente,DC = Mydomain,dc = com "Escribir por Auth Auth by Self Write by * Ninguno Olcaccess: 1 a DN.base = "" por * leer olcaccess: 2 a * por dn = "cn = ganager, dc = mydomain, dc = com" Escribir por * leer 

Luego cargalo de la siguiente manera:

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

7. Ahora es el momento de agregar algunas entradas a nuestro directorio LDAP. Los atributos y los valores están separados por un colon (:) En el siguiente archivo, que nombraremos Baseldapdapdapdapdapdapdap.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: OrganizationalRole CN: Manager Descripción: Directory Manager DN: OU = People, DC = MyDomain, DC = Com ObjectClass: OrganizationalUnit OU: People DN: OU = Group, DC = MyDomain, DC = Com ObjectClass: OrganizationalUnit OU: Group 

Agregue las entradas al directorio LDAP:

# ldapadd -x -d cn = ganager, dc = mydomain, dc = com -w -f BaselDapdomain.ldif 
Agregar atributos y valores de dominio LDAP

8. Crear un usuario de LDAP llamado ldapuser (adduser ldapuser), luego cree las definiciones para un grupo LDAP en ldapgroup.ldif.

# Adduser Ldapuser # VI LDAPGROUP.ldif 

Agregar contenido siguiente.

DN: CN = Manager, OU = Group, DC = Mydomain, DC = Com ObjectClass: Top ObjectClass: PosixGroup GidNumber: 1004 

dónde number es el GID en /etc/grupo para ldapuser) y cargalo:

# ldapadd -x -w -d "cn = ganager, 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 = personas, 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 shadowlastastchange: 0 shadowmax: 0 shadowwarning: 0 

y cargarlo:

# ldapadd -x -d cn = ganager, dc = mydomain, dc = com -w -f ldapuser.ldif 
Configuración del usuario de LDAP

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

# ldapdelete -x -w -d cn = ganager, dc = mydomain, dc = com "uid = ldapuser, ou = personas, dc = mydomain, dc = com" 

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

# firewall-cmd --add-service = ldap 

11. Por último, pero no menos importante, habilita que el cliente se autentique usando LDAP.

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

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

# authconfig --enableldap --eNablelDapauth --Dapserver = RHEL7.mi dominio.com --dapBaseedn = "dc = mydomain, dc = com" --enablemkhomedir -update 
Configuración del cliente LDAP

Resumen

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

Siéntase libre de dejar cualquier pregunta que pueda tener utilizando el formulario de comentarios a continuación.