PAM - Pluggable Authentication Modules

Support HackTricks

Información Básica

PAM (Módulos de Autenticación Pluggable) actúa como un mecanismo de seguridad que verifica la identidad de los usuarios que intentan acceder a los servicios informáticos, controlando su acceso en función de varios criterios. Es similar a un portero digital, asegurando que solo los usuarios autorizados puedan interactuar con servicios específicos mientras limita potencialmente su uso para prevenir sobrecargas del sistema.

Archivos de Configuración

  • Los sistemas Solaris y basados en UNIX suelen utilizar un archivo de configuración central ubicado en /etc/pam.conf.

  • Los sistemas Linux prefieren un enfoque de directorio, almacenando configuraciones específicas de servicios dentro de /etc/pam.d. Por ejemplo, el archivo de configuración para el servicio de inicio de sesión se encuentra en /etc/pam.d/login.

Un ejemplo de una configuración de PAM para el servicio de inicio de sesión podría verse así:

auth required /lib/security/pam_securetty.so
auth required /lib/security/pam_nologin.so
auth sufficient /lib/security/pam_ldap.so
auth required /lib/security/pam_unix_auth.so try_first_pass
account sufficient /lib/security/pam_ldap.so
account required /lib/security/pam_unix_acct.so
password required /lib/security/pam_cracklib.so
password required /lib/security/pam_ldap.so
password required /lib/security/pam_pwdb.so use_first_pass
session required /lib/security/pam_unix_session.so

Reinos de Gestión de PAM

Estos reinos, o grupos de gestión, incluyen auth, account, password y session, cada uno responsable de diferentes aspectos del proceso de autenticación y gestión de sesiones:

  • Auth: Valida la identidad del usuario, a menudo solicitando una contraseña.

  • Account: Maneja la verificación de cuentas, comprobando condiciones como la membresía en grupos o restricciones de horario.

  • Password: Gestiona las actualizaciones de contraseñas, incluyendo verificaciones de complejidad o prevención de ataques de diccionario.

  • Session: Gestiona acciones durante el inicio o final de una sesión de servicio, como montar directorios o establecer límites de recursos.

Controles de Módulo PAM

Los controles dictan la respuesta del módulo ante el éxito o el fracaso, influyendo en el proceso de autenticación general. Estos incluyen:

  • Required: El fallo de un módulo requerido resulta en un eventual fracaso, pero solo después de que se verifiquen todos los módulos subsiguientes.

  • Requisite: Terminación inmediata del proceso al fallar.

  • Sufficient: El éxito omite el resto de las verificaciones del mismo reino a menos que un módulo subsiguiente falle.

  • Optional: Solo causa fallo si es el único módulo en la pila.

Escenario de Ejemplo

En una configuración con múltiples módulos de auth, el proceso sigue un orden estricto. Si el módulo pam_securetty encuentra el terminal de inicio de sesión no autorizado, los inicios de sesión de root son bloqueados, sin embargo, todos los módulos aún se procesan debido a su estado de "required". El pam_env establece variables de entorno, potencialmente ayudando en la experiencia del usuario. Los módulos pam_ldap y pam_unix trabajan juntos para autenticar al usuario, con pam_unix intentando usar una contraseña previamente suministrada, mejorando la eficiencia y flexibilidad en los métodos de autenticación.

Referencias

Support HackTricks

Last updated