16.3. Configuración de módulos PAM

Algunos de los módulos PAM se pueden configurar. Los archivos de configuración correspondientes se encuentran en /etc/security. Esta sección describe brevemente los archivos de configuración relevantes para el ejemplo de sshd: pam_unix2.conf, pam_env.conf, pam_pwcheck.conf y limits.conf.

16.3.1. pam_unix2.conf

El método tradicional de autenticación basada en contraseña está controlado a través del módulo PAM pam_unix2. Este módulo puede leer los datos necesarios desde /etc/passwd, /etc/shadow, mapas NIS, tablas NIS+ o bases de datos LDAP. El comportamiento de este módulo puede manipularse configurando las opciones PAM de la aplicación en sí o bien de manera global en /etc/security/pam_unix2.conf. En el caso más sencillo, este archivo de configuración tiene el aspecto mostrado en el Ejemplo 16.6, “pam_unix2.conf”.

Ejemplo 16.6. pam_unix2.conf

auth:   nullok
account:
password:       nullok
session:        none

La opción nullok de los tipos de módulos auth y password especifica que es posible incluir contraseñas vacías en el tipo de cuentas correspondiente. Los usuarios también pueden cambiar las contraseñas de sus cuentas. La opción none en el tipo de módulo session especifica que no se registran mensajes en su nombre (se trata de la opción por defecto). Puede obtener información acerca de otras opciones de configuración a través de los comentarios dentro del propio archivo y a través de la página de manual pam_unix2(8).

16.3.2. pam_env.conf

Este archivo se puede utilizar para definir un entorno estandarizado para usuarios, el cual se establecerá cada vez que se llame al módulo pam_env. Si se utiliza este archivo, las variables de entorno deberán predefinirse con la sintaxis siguiente:

VARIABLE  [DEFAULT=[valor]]  [OVERRIDE=[valor]]
VARIABLE

Nombre de la variable de entorno que definir.

[DEFAULT=[valor]]

Valor por defecto que desea definir el administrador.

[OVERRIDE=[valor]]

Valores que se pueden consultar y definir mediante pam_env, sustituyendo al valor por defecto.

Un ejemplo típico de cómo se podría utilizar pam_env sería adaptar la variable DISPLAY, que se podría cambiar cuando se inicie sesión de forma remota. Esta situación se muestra en el Ejemplo 16.7, “pam_env.conf”.

Ejemplo 16.7. pam_env.conf

REMOTEHOST     DEFAULT=localhost OVERRIDE=@{PAM_RHOST}
DISPLAY        DEFAULT=${REMOTEHOST}:0.0 OVERRIDE=${DISPLAY}

La primera línea define el valor de la variable REMOTEHOST en localhost, la cual se utilizará cada vez que pam_env no pueda determinar ningún otro valor. La variable DISPLAY, a su vez, contiene el valor de REMOTEHOST. Podrá obtener más información a través de los comentarios del archivo /etc/security/pam_env.conf.

16.3.3. pam_pwcheck.conf

Este archivo de configuración corresponde al módulo pam_pwcheck, que lee las opciones que incluye para todos los módulos del tipo password. Los ajustes almacenados en este archivo tienen preferencia sobre los ajustes PAM de una aplicación individual. Si no se han definido los ajustes específicos de la aplicación, ésta utiliza los ajustes globales. El Ejemplo 16.8, “pam_pwcheck.conf” le indica a pam_pwcheck que permita que se utilicen contraseñas vacías, así como que se modifiquen las contraseñas. El archivo /etc/security/pam_pwcheck.conf menciona otras opciones disponibles para el módulo.

Ejemplo 16.8. pam_pwcheck.conf

password:    nullok

16.3.4. limits.conf

Se pueden definir límites del sistema para usuarios o para grupos en el archivo limits.conf, el cual lee el módulo pam_limits. Este archivo le permite definir límites rígidos, que no se podrán sobrepasar en absoluto, y límites flexibles, que sí se pueden sobrepasar temporalmente. Lea los comentarios incluidos en el archivo para obtener más información sobre la sintaxis empleada y las opciones disponibles.