mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
54 lines
3.6 KiB
Markdown
54 lines
3.6 KiB
Markdown
# PAM - Módulos de Autenticación Pluggable
|
|
|
|
{{#include ../../banners/hacktricks-training.md}}
|
|
|
|
### 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 según varios criterios. Es similar a un portero digital, asegurando que solo los usuarios autorizados puedan interactuar con servicios específicos mientras potencialmente limita su uso para prevenir sobrecargas del sistema.
|
|
|
|
#### Archivos de Configuración
|
|
|
|
- **Los sistemas Solaris y basados en UNIX** utilizan típicamente 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
|
|
|
|
- [https://hotpotato.tistory.com/434](https://hotpotato.tistory.com/434)
|
|
|
|
{{#include ../../banners/hacktricks-training.md}}
|