PAM (Español)
Los módulos de autenticación conectables de Linux (Linux Pluggable Authentication Modules, o simplemente PAM) proporcionan un marco para la autenticación de usuarios en todo el sistema. Para citar el proyecto:
- PAM proporciona una manera de desarrollar programas que son independientes del esquema de autenticación. Estos programas necesitan "módulos de autenticación" que se deben adjuntar en tiempo de ejecución para que funcionen. El módulo de autenticación que se adjuntará depende de la configuración del sistema local y queda a discreción del administrador del sistema local.
Este artículo explica los valores predeterminados de configuración base de Arch Linux para PAM para autenticar usuarios locales y remotos. La aplicación de cambios a los valores predeterminados está sujeta a artículos especializados reticulados por tema.
Instalación
El paquete pam es una dependencia del meta paquete base y, por lo tanto, instalado normalmente en un sistema Arch. Los módulos PAM están instalados exclusivamente en /usr/lib/security
.
Los repositorios contienen una serie de paquetes PAM opcionales, en #Configuración guiada se muestran unos ejemplos.
Configuración
Un número de rutas en /etc
son relevantes para PAM, ejecute pacman --query --list pam | grep /etc
para ver los archivos de configuración por defecto creados. Se relacionan con los #Parámetros de seguridad para los módulos, o la configuración #Apilado base de PAM.
Parámetros de seguridad
La ruta /etc/security
contiene la configuración específica del sistema para las variables que ofrecen los métodos de autenticación. La instalación básica lo puebla con los archivos de configuración predeterminados.
Note que Arch Linux no proporciona una configuración específica de distribución para estos archivos. Por ejemplo, el archivo /etc/security/pwquality.conf
se puede utilizar para definir los valores predeterminados de todo el sistema para la calidad de la contraseña. Sin embargo, para activarlo, el módulo pam_pwquality.so
debe añadirse al #Apilado base de PAM de los módulos, que no es el caso por defecto.
Véase #Configuración de los parámetros de seguridad para algunas de las posibilidades.
Apilado base de PAM
La ruta /etc/pam.d/
es exclusiva de la configuración de PAM para vincular las aplicaciones a los esquemas individuales de autenticación de los sistemas. Durante la instalación de la base del sistema se puebla con:
- el paquete pambase, que contiene la pila base de la configuración PAM específica de Arch Linux para ser utilizada por las aplicaciones, y
- otros paquetes base. Por ejemplo, util-linux añade la configuración para el inicio de sesión central y otros programas, el paquete shadow añade los valores predeterminados de Arch Linux para proteger y modificar la base de datos del usuario (véase Usuarios y grupos).
Los diferentes archivos de configuración de la instalación base se enlazan y apilan durante el tiempo de ejecución. Por ejemplo, en el inicio de sesión de un usuario local, la aplicación login carga la política system-local-login
, que a su vez carga otros:
/etc/pam.d/
login -> system-local-login -> system-login -> system-auth
Para una aplicación diferente, se puede aplicar una ruta diferente. Por ejemplo, openssh instala su política de PAM sshd
:
/etc/pam.d/
sshd -> system-remote-login -> system-login -> system-auth
En consecuencia, la elección del archivo de configuración en la pila es importante. Para el ejemplo anterior, se podría requerir un método de autenticación especial solo para sshd
o para todos los inicios de sesión remotos cambiando system-remote-login
; ambos cambios no afectarían los inicios de sesión locales. Aplicar el cambio a system-login
o system-auth
en cambio afectaría los inicios de sesión locales y remotos.
Al igual que en el ejemplo de sshd
, se requiere que cualquier aplicación consciente de PAM instale su política en /etc/pam.d
para integrar y confiar en la pila de PAM apropiadamente. Si una aplicación no lo hace, se aplica la política predeterminada para denegar de /etc/pam.d/other
y se registra una advertencia.
$ ldd /usr/bin/login | grep pam
libpam.so.0 => /usr/lib/libpam.so.0 (0x000003d8c32d6000) libpam_misc.so.0 => /usr/lib/libpam_misc.so.0 (0x000003d8c30d2000)la aplicación login es consciente de PAM y debe, por lo tanto, tener una política.
Las páginas del manual del paquete PAM pam(8) y pam.d(5) describen el contenido estandarizado de los archivos de configuración. En particular, explican los cuatro grupos de PAM: gestión de cuentas, autenticación, contraseña y sesión, así como los valores de control que pueden utilizarse para configurar el apilamiento y el comportamiento de los módulos.
Además, se ha instalado una extensa documentación en /usr/share/doc/Linux-PAM/index.html
que, entre varias guías, contiene páginas de manual navegables para cada uno de los módulos estándar.
Ejemplos
Dos ejemplos breves para ilustrar la advertencia anterior.
Primero, tomamos las siguientes dos líneas:
/etc/pam.d/system-auth
auth required pam_unix.so try_first_pass nullok auth optional pam_permit.so
De pam_unix(8): "El componente de autenticación pam_unix.so
realiza la tarea de verificar las credenciales (contraseña) de los usuarios. La acción predeterminada de este módulo es no permitir que el usuario acceda a un servicio si su contraseña oficial está en blanco." - siendo lo último para lo que se utiliza pam_permit.so
. Basta con intercambiar los valores de control required
y optional
para desactivar la autenticación de contraseña, es decir, cualquier usuario puede iniciar sesión sin proporcionar una contraseña.
Segundo, como ejemplo contrario, por configuración predeterminada de pam_nologin.so
en /etc/pam.d/login, creando el siguiente archivo:
# touch /etc/nologin
da como resultado que ningún usuario que no sea root pueda iniciar sesión (si se permiten inicios de sesión del superusuario, otro valor predeterminado para Arch Linux). Para volver a permitir los inicios de sesión, elimine el archivo. Posiblemente, desde la consola con la que lo creó.
Con eso como fondo, véase #Configuración del apilado y los módulos de PAM para configuraciones de casos de uso particulares.
Configuración guiada
Esta sección proporciona una descripción general del contenido que detalla cómo aplicar cambios a la configuración de PAM y cómo integrar nuevos módulos PAM especiales en la pila de PAM. Tenga en cuenta que, por lo general, se puede acceder a las páginas del manual de los módulos al eliminar la extensión .so
.
Configuración de los parámetros de seguridad
Las siguientes secciones describen ejemplos para cambiar la configuración predeterminada de parámetros de PAM:
- muestra cómo forzar contraseñas seguras con
pam_cracklib.so
.
- muestra cómo configurar los limites en los intentos de inicio de sesión con
pam_faillock.so
.
- limita los inicios de sesión de usuario con
pam_wheel.so
.
- detalla cómo configurar los límites del proceso del sistema con
pam_limits.so
.
- muestra ejemplos para establecer variables de entorno a través de
pam_env.so
.
Configuración del apilado y los módulos de PAM
Los siguientes artículos detallan cómo cambiar el #Apilado base de PAM para casos de uso especiales.
Módulos PAM de los repositorios oficiales:
- ejemplos detallados para utilizar
pam_mount.so
para montar automáticamente las rutas de directorio cifradas en el inicio de sesión del usuario.
- utiliza
pam_ecryptfs.so
para montar automáticamente un directorio cifrado.
- muestra cómo utilizar
pam_exec.so
para ejecutar un script personalizado en un inicio de sesión de usuario.
- utiliza
pam_winbind.so
ypam_krb5.so
para que los usuarios se identifiquen a través de servicios Active Directory (LDAP, Kerberos).
- LDAP authentication con su sección LDAP authentication#NSS and PAM
- es un artículo sobre la integración de la autenticación de cliente o servidor LDAP con
pam_ldap.so
.
- se basa en
pam_yubico.so
en la pila de PAM para activar la autenticación a través del protocolo propietario Yubikey.
- muestra un ejemplo para implementar la autenticación de dos factores (two-factor) basada en software con
pam_oath.so
.
- emplea
pam_fprintd.so
para configurar la autenticación mediante huellas digitales.
Módulos PAM del repositorio de usuarios de Arch:
- muestra cómo configurar
pam_usb.so
para utilizar un dispositivo USB para autenticar, opcionalmente, mediante dos factores.
- utiliza
pam_ssh.so
para autenticar como un usuario remoto.
- explica cómo se puede utilizar
pam_abl.so
para limitar los ataques de fuerza bruta a través de ssh.
- puede ser montado automáticamente a través
pam_encfs.so
.
- muestra cómo configurar la autenticación de dos factores con
pam_google_authenticator.so
.
- explica cómo configurar un chroot FTP con
pam_pwdfile.so
para autenticar usuarios sin una cuenta local de sistema.
Otros paquetes de PAM
Aparte de los paquetes mencionados hasta ahora, el repositorio de usuarios de Arch Contiene varios módulos y herramientas PAM adicionales.
Las utilidades de propósito general relacionadas con PAM son:
- libx32_pam — Biblioteca Arch Linux PAM x32 ABI
- http://linux-pam.org/ || libx32-pamAUR[enlace roto: package not found]
- Pamtester — Programa para probar la instalación de los módulos de autenticación conectables (PAM)
Tenga en cuenta que AUR cuenta con una etiqueta de palabra clave para PAM, pero no todos los paquetes disponibles se actualizan para incluirlo. Por lo tanto, puede ser necesario buscar en la descripción del paquete.
Véase también
- linux-pam.org - La página de inicio del proyecto
- Entendiendo y configurando PAM - Un artículo introductorio