Uno de los muchos problemas que se puede 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.
El objetivo a lograr 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. Existen diferentes formas de autenticar clientes en una red GNU/Linux, pero
una de las más usadas es la combinación de tres herramientas diferentes: PAM,
NSS y LDAP.
- ¿Qué es LDAP?
LDAP (Protocolo compacto de acceso a directorios) es un protocolo
estándar que proporciona servicios de
directorio, organizando 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. Puede ejecutarse sobre TCP/IP o sobre cualquier otro
servicio de transferencia orientado a la conexión.
Se desarrolló en 1993 en la Universidad de
Michigan, reemplazó al protocolo DAP (utilizado para acceder a los servicios de
directorio X.500 por OSI) integrándose al TCP/IP. Desde 1995, DAP se convirtió
en LDAP independiente, con
lo cual se dejó de utilizar sólo para acceder a los directorios tipo X500. LDAP
es una versión más simple del protocolo DAP, de allí deriva su nombre Protocolo compacto de acceso a directorios. La nueva versión
(LDAPv3) se publicó en 1997 e integraba mecanismos de autenticación sencilla y
una capa de seguridad. Después de esto, la IETF ha añadido numerosas
extensiones y especificaciones propias que le han ido incorporando nuevas
capacidades.
- ¿Qué es NSS?
NSS (Name Service Switch) es un servicio que permite la resolución de
nombres de usuario y contraseñas (o grupos) mediante el acceso a diferentes
orígenes de información. Normalmente, esta información se halla en los ficheros
locales del sistema operativo, en concreto en /etc/passwd, /etc/shadow y
/etc/group, pero puede proceder de otras fuentes, como DNS (Domain Name
System), NIS (Network Information Service), LDAP (Lightweight Directory Access
Protocol) o WINS (Windows Internet Name Service).
Lo que pretende conseguir NSS es que los programas o los comandos del
sistema operativo puedan manejar información administrativa relacionada con los
usuarios, las contraseñas y los grupos sin tener que conocer el lugar donde se
encuentran almacenados.
- ¿Qué es PAM?
PAM (Pluggable Authentication Module) es una interfaz genérica de
autenticación accesible a cualquier aplicación compilada con soporte PAM. 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.
PAM complementa en algunos aspectos el funcionamiento de NSS ya que
mientras éste se centra en la búsqueda y mapeo de los usuarios, PAM controla la
autenticación, el inicio de sesión y su configuración.
En la actualidad, PAM es el método que utilizan la mayoría de las
aplicaciones y herramientas de GNU/Linux que necesitan relacionarse, de algún
modo, con la autenticación de los usuarios.