Capítulo 21. Autenticación con PAM

Tabla de contenidos

21.1. Estructura de un archivo de configuración PAM
21.2. Configuración PAM para sshd
21.3. Configuración de los módulos PAM
21.4. Información adicional

Resumen

PAM (del inglés Pluggable Authentication Modules) se utiliza en Linux para gestionar la comunicación entre el usuario y la aplicación durante el proceso de autenticación. Los módulos PAM están disponibles de manera centralizada y pueden ser activados desde cualquier aplicación. El contenido de este capítulo trata acerca de cómo se configura esta autenticación modular y de cómo funciona.

Frecuentemente, los administradores de sistema y desarrolladores desean limitar el acceso a determinadas zonas del sistema o la utilización de determinadas funcionalidades de una aplicación. Sin PAM, esto significaría que todas las aplicaciones tendrían que ser adaptadas cada vez que surgiera un nuevo procedimiento de autenticación como LDAP o Samba. Este método sería muy lento y sensible a posibles fallos. Si liberamos a la aplicación del trabajo de la autenticación y asignamos esta a un módulo central, estos inconvenientes desaparecen. En caso de que tenga que emplearse un nuevo esquema de autenticación, bastará con desarrollar o adaptar un módulo PAM, el cual podrá ser empleado por todas las aplicaciones.

Para cada programa que utiliza PAM, existe un archivo de configuración propio ubicado en /etc/pam.d/<servicio>. En este archivo se especifica qué módulos PAM deben utilizarse para la autenticación del usuario. Los archivos de configuración globales de la mayoría de los módulos PAM (localizados en /etc/security) determinan el comportamiento de estos módulos (por ejemplo pam_env.conf, pam_pwcheck.conf, pam_unix2.conf y time.conf). Una aplicación que utiliza un módulo PAM ejecuta un determinado conjunto de funciones PAM. Estas tratan la información de los distintos archivos de configuración y transmiten el resultado a la aplicación que las ha iniciado.

21.1. Estructura de un archivo de configuración PAM

Una línea de un archivo de configuración PAM está compuesta, como máximo, por cuatro columnas:

<Tipo de módulo; <Marcador de control> <Ruta del módulo> <Opciones>

Los módulos PAM se procesan por lotes. Cada módulo ofrece funciones distintas. Un módulo se encarga de la comprobación de la contraseña, otro identifica desde dónde tiene lugar el acceso y otro consulta las configuraciones del sistema específicas de un usuario en concreto.

PAM reconoce cuatro tipos distintos de módulos:

auth

Los módulos de este tipo sirven para autenticar al usuario. Esta comprobación se realiza de forma tradicional mediante la solicitud de una contraseña, aunque también puede llevarse a cabo a través de una tarjeta inteligente equipada con un chip o mediante la comprobación de características biométricas (huella digital, escaneo de retina).

account

Los módulos de este tipo comprueban si el usuario está autorizado para poder utilizar el servicio solicitado. De esta manera, se evita que un usuario pueda abrir una sesión en el sistema con una cuenta que haya expirado.

password

Esta clase de módulos sirven para modificar los datos de autenticación. En la la mayoría de los casos se trata de una contraseña.

session

Estos módulos están diseñados para llevar a cabo la administración y configuración de sesiones de usuario. Los módulos de este tipo se ejecutan antes y después de la autenticación a fin de registrar los intentos de inicio de sesión y proporcionar al usuario su propio entorno personalizado de trabajo (acceso al correo, directorio raíz, limitaciones del sistema etc.)

La segunda columna contiene los marcadores de control, con los que se activan los módulos deseados:

required

El módulo debe ser procesado con éxito para que la autenticación pueda seguir siendo procesada. En el caso de que la ejecución de un módulo required genere un error, se procesará el resto de módulos de este tipo antes de que el usuario reciba un aviso de que se ha producido un problema durante su intento de autenticación.

requisite

Estos módulos tienen que ser procesados con éxito del mismo modo que los módulos required. Si se produce un error, el usuario recibe una notificación inmediata y no se procesan más módulos. En caso de éxito, se sigue procesando el resto de módulos al igual que en el caso de los required. Este marcador puede configurarse como un filtro simple con el objeto de especificar el cumplimiento de determinadas condiciones, necesarias para una correcta autenticación.

sufficient

Si se ejecuta con éxito un modulo de este tipo, el programa que lo ha iniciado recibe inmediatamente una notificación de éxito y no se procesa ningún otro módulo, siempre y cuando anteriormente no haya fallado la ejecución de ningún módulo required. El hecho de que la ejecución de un módulo sufficient no se complete con éxito no supone ninguna consecuencia y los módulos siguientes siguen siendo procesados por orden.

optional

Su correcta ejecución o error de procesamiento no tienen ninguna consecuencia. Esta opción se utiliza, por ejemplo, en el caso de módulos que informan al usuario acerca de la recepción de un correo electrónico, pero no suponen mayores consecuencias.

include

Si esta opción está presente va acompañada del archivo especificado como argumento.

La ruta del módulo no se indica explícitamente en caso de que este se encuentre en el directorio estándar /lib/security (o en /lib64/security para todas las plataformas de 64 bits soportadas por SUSE LINUX). Como cuarta columna, se puede transferir a un módulo otra opción como, por ejemplo, debug (modo depuración) o nullok (se permiten contraseñas vacías).


SUSE LINUX Manual de administración 9.3