Sistema de cuentas centralizadas con LDAP y NFS

Perfiles móviles con LDAP y NFS en Debian Jessie.
Comparte con tus amigos










Enviar

Basándonos en el directorio LDAP básico creado en anteriormente y documentado en la entrada Instalar OpenLDAP en Debian Jessie y crear un directorio LDAP básico, crearemos un sistema de cuentas centralizados en el que se puedan identificar usuarios remotamente y hacer uso de un servicio NFS.

Partiremos de dos máquinas virtuales sobre Vagrant: un servidor llamado ldap con dirección IP 192.168.100.1 y un cliente llamado cliente con dirección IP 192.168.100.10.

Comenzamos comprobando nuestra estructura de directorio LDAP con el comando slapcat en nuestro servidor LDAP, que devolverá los objetos en formato LDIF.

Tras comprobar que tenemos una estructura lógica, con al menos un usuario y perteneciente a un grupo, instalamos el servidor de archivos NFS que permite el acceso de forma remota a un sistema de archivos a través de la red.

Configuración del servidor LDAP y NFS

Instalamos el paquete del servidor NFS con apt-get install nfs-kernel-server

El fin es que, cuando un usuario se loguee en nuestro servidor NFS desde un cliente, este monte un directorio personal ubicado en la ruta /home/nfs/ del servidor. Por ello, con usuario root, creamos el directorio, además de asignarle permisos de escritura para el grupo.

En el directorio /home/, con usuario root, creamos el directorio nfs para evitar el solapamiento de los directorios personales de usuarios locales. En su interior creamos el directorio EvaristoGZ y le asignamos a este el UID de usuario y grupo 2000, correspondiente al usuario EvaristoGZ y al grupo Usuarios.

En el fichero /etc/exports añadimos la línea /home/nfs *(rw,fsid=0,subtree_check) que permitirá el acceso de los clientes NFS al sistema de ficheros. En él se puede especificar la red para la que estará disponible este recurso, cambiando el asterisco por la dirección de la red.

Tras realizar estas configuraciones, reiniciamos el servicio de NFS con la instrucción /etc/init.d/nfs-kernel-server restart

Instalación Name Service Switch (NSS), Pluggable Authentication Module (PAM) y Name Service Cache Daemon (NSCD)

En el servidor LDAP, instalamos los distintos paquetes que permiten que el sistema sea capaz de resolver nombres de usuarios (UID) y grupos (GID), consultar información a un directorio LDAP, identificarse o cachear la resolución de nombres: apt-get install libnss-ldapd libpam-ldapd nscd

Comenzamos con la configuración del paquete nscd. Este es un demonio de caché para el servicio de nombres, lo cual evitará repetir consultas de las bases de datos de passwd, group y hosts.

En el primer paso de la configuración de este paquete establecemos la URI del servidor LDAP, que en este caso, al tratarse de una instalación en nuestro propio servidor, ponemos la dirección IP 127.0.0.0 para hacer referencia a localhost.

Configuring nslcd para utilizar un servidor LDAP.

En él establecemos localhost, ya que consultará al propio servidor.

En la siguiente pantalla escribimos el dominio de búsqueda de nuestro servidor LDAP, que bien puede ser escrito como egarcia.gonzalonazareno.org o dc=egarcia,dc=gonzalonazareno,dc=org
Configuración de un servidor LDAP y NFS.

A continuación, nos mostrará la pantalla de configuración de libnss-ldapd donde seleccionamos los servicios que estarán disponibles para la consulta de LDAP. Este paquete permite obtener nombres de usuario, grupos y otro tipo de información almacenada en servidores LDAP como redes o servicios. Puede ser configurado nuevamente en /etc/nsswitch.conf o reconfigurando el paquete dpkg-reconfigure libnss-ldapd

Servicios disponibles para las búsquedas de LDAP.

Configuración del paquete libnss-ldapd.

Para comprobar el correcto funcionamiento en el servidor, nos logueamos con el usuario y contraseña de nuestro directorio LDAP. En él comprobamos que tenemos permiso de escritura y que hace resolución de nombres en el directorio que se le ha asignado el grupo y usuario 2000.
Configurar un sistema de cuentas centralizadas con LDAP y NFS.

Configuración del cliente LDAP y NFS

Las siguientes configuraciones son necesarias para cada cliente que desee utilizar el sistema de cuentas descentralizada.

En nuestro cliente Debian Jessie ya se encuentra instalado el paquete nfs-common, el cual incluye programas para hacer uso de NFS. Aún así, debemos instalar igualmente los paquetes libnss-ldapd, libpam-ldapd y nscd: apt-get install libnss-ldapd libpam-ldapd nscd

En la primera pantalla de configuración del paquete nslcd introducimos la dirección IP 192.168.100.1, correspondiente a nuestro servidor LDAP y NFS. La definición del puerto es opcional y la configuración queda guardada en /etc/nslcd.conf
Introducción de la URI del servidor LDAP.

De la misma forma, tenemos que insertar la base de búsqueda del servidor LDAP que podía hacerse con egarcia.gonzalonazareno.org o dc=egarcia,dc=gonzalonazareno,dc=org
Sistema de autenticación descentralizada LDAP + NFS.

En el último paso, marcamos que se consulten los servicios group y passwd al igual que en el servidor LDAP y NFS.

En el fichero /etc/ldap/ldap.conf se establecen las configuraciones por defecto del cliente LDAP, el cual se encuentra configurado por defecto como muestro en la imagen adjunta.

Configuración de un cliente LDAP.

Fichero de configuración por defecto de un cliente LDAP.

En mi caso he descomentado las líneas de configuración y cambiado los parámetros BASE y URI, siendo este el contenido del fichero:

Comprobamos que podemos ver la información de montaje ofrecida por el servidor NFS 192.168.100.1, el cual también es el servidor LDAP.

Captura de pantalla de la ejecución del comando showmount y login.

Ejecución de showmount en el cliente NFS y LDAP.

También comprobamos que el logueo mediante libpam-ldapd es correcto, pero en la línea No directory, loggin in with HOME=/ indica que no monta su directorio home. Además, se encuentra en la raíz sin poder listar siquiera el directorio /home/nfs/
Configuración del funcionamiento de LDAP y NFS en el cliente.

Este error se debe a que es necesario montar el directorio /home/nfs/ para que sea accesible por el usuario EvaristoGZ en este caso. Por ello, creamos el directorio /home/nfs/ y realizamos el montaje con la instrucción: mount -t nfs 192.168.100.1:/home/nfs/ /home/nfs/ para comprobar su funcionamiento, ya que si queremos que sea persistente debemos añadir una línea al fichero /etc/fstab/ con el contenido 192.168.100.1:/home/nfs/ /home/nfs/ nfs rw 0 0.

Tras el montaje, volvemos a loguearnos para ver que se encuentra en el directorio correcto, que deja ver el fichero creado desde el servidor y que permite crear ficheros desde el cliente.
Comprobación del correcto funcionamiento del servidor LDAP y NFS.

Perfiles móviles usando LDAP y NFS en Debian Jessie.

Los ficheros reflejados tanto en cliente como en servidor.

Crear el directorio personal del usuario en el primer inicio de sesión

Nuevamente en el servidor LDAP y NFS, configuraremos el módulo libpam-mkhomedir para que se cree automáticamente el directorio personal de un usuario tal como inicie sesión.
Para ello es necesario editar el fichero /etc/pam.d/common-account y añadir la línea: session required pam_mkhomedir.so skel=/etc/skel/ umask=0022

Configuración de /etc/pam.d/common-account.

Automatizar la creación de directorios personales en el primer inicio de sesión.

Desde el servidor, añadimos un nuevo usuario LDAP llamado OtroUsuario o hacemos uso de otro cualquiera que no hayamos usado para realizar las pruebas de esta configuración.

Si intentamos loguearnos desde el cliente, veremos que no es posible y mostrará un error Login incorrect a pesar de ser usuario y contraseña correctos. Esto se debe a que no se permite crear la carpeta en el directorio /home/nfs/ del servidor.

Por lo tanto, es necesario modificar el fichero /etc/exports y añadir la cadena no_root_squash quedando la línea añadida anteriormente así: /home/nfs *(rw,fsid=0,subtree_check,no_root_squash)
Perfiles móviles de usuario usando NFS y LDAP.

Estructura del directorio /home/nfs.

Estructura del directorio /home/nfs/ desde el servidor.

Finalmente, ya tenemos montado nuestro sistema de cuentas centralizadas haciendo uso de un directorio LDAP y un servidor NFS.

Referencias

Compartir es agradecer. Si te ha gustado... ¡compartélo!
Comparte con tus amigos










Enviar

También te podría gustar...

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *