Google
Web dns.bdat.net

Validación centralizada

Configuración general

Uno de los muchos problemas que se puede encontrar encontrar un administrador de una red local es el mantenimiento de las distintas bases de datos de usuarios que pueden acceder a los distintos recursos que se comparten. Por un lado el aumento de máquinas en la red aumenta exponencialmente el trabajo de mantener las bases de datos de usuarios. Por otro lado existen distintos métodos de validación de usuarios que tienen que convivir en el entorno. Sería deseable que cuando damos de alta una cuenta de usuario en un servidor, esta cuenta se creara automáticamente en todas las máquinas configuradas a tal fin.

El objetivo que perseguimos es unificar las distintas bases de datos de usuarios de en un único sistema centralizado de forma que sirva, para validar usuarios de la máquina local y para actuar como servidor de validación para otros ordenadores en red como complemento a los datos de sus ficheros locales.

En esencia, la información que queremos centralizar y compartir son las cuentas de usuario y grupo, incluyendo las correspondientes contraseñas. La gestión de cuentas incluye dos aspectos diferenciados, la obtención de los nombres de los usuarios y la comprobación de contraseñas:

NSS (Name Service Switch) es una interfaz genérica para consultar los parámetros de una cuenta como su UID, GID, shell inicial, directorio personal, etc.). Cuando alguien intenta iniciar una sesión el proceso de validación pregunta si el nombre es un nombre válido para el sistema, y si es así el proceso de "login" lo utiliza para crear el proceso de atención inicial del usuario.

PAM (Pluggable Authentication Module) es una interfaz genérica de autenticación accesible a cualquier aplicación compilada con soporte PAM, prácticamente todas. El mecanismo de validación subyacente puede ser cualquiera (ficheros locales, Kerberos, LDAP, etc.). El proceso de validación ya conoce el nombre de usuario y ahora tiene que comparar la contraseña leída con la contraseña almacenada y decirle al proceso si coinciden o no.

Hemos visto que ambos sistemas son interfaces genéricos por lo que que tendremos que "enseñarlos" para que tomen la información de donde nos interesa, tendremos que configurar PAM en el directorio /etc/pam.d y NSS en el fichero /etc/nsswitch.conf.

LDAP corresponde a las iniciales de Lightweight Directory Access Protocol (Protocolo Ligero de Acceso a Directorio), y es un protocolo que proporciona servicios de directorio. LDAP organiza la información en forma de árbol jerárquico garantizando así la unicidad de la información y la posibilidad de dividir la gestión por ramas.

En http://dns.bdat.net/documentos/ldap/ hay una descripción de todos los conceptos necesarios sobre la configuración genérica de LDAP, tanto del servidor como del cliente.

Con LDAP, lo que pretendemos es tener una cuenta de usuario que nos puede servir para guardar sus datos correspondientes al libro de direcciones. Pero si a esta cuenta le agregamos la propiedad "shadowAccount" entonces esta cuenta va a servir como cuenta del sistema, pero si además le agegamos la propiedad "sambaSAMAcount" entonces esta cuenta también será una cuenta del servidor Samba. Resumiendo, podemos tener unidos distintos tipos de cuentas en un servidor centralizado que puede ser utilizado desde cualquier cliente en la red.