domingo, 20 de marzo de 2011

Linux Modulos Pam

PAM ofrece las ventajas siguientes:

Un esquema de autenticación común que se puede usar con una gran variedad de aplicaciones.

Gran flexibilidad y control de la autentificación tanto para los administradores de sistemas como para los desarrolladores de la aplicación.
Una biblioteca bien documentada que permite a los desarrolladores de aplicaciones desarrollar programas sin tener que crear sus propios esquemas de autenticación.

Archivos de configuración y servicios PAM

El directorio /etc/pam.d/ contiene los archivos de configuración de PAM para cada aplicación tipo PAM. En versiones antiguas de PAM se utilizaba /etc/pam.conf, pero este archivo ya no se utiliza y solamente es usado si el directorio /etc/pam.d/ no existe.

Cada aplicación tipo PAM o servicios tiene un archivo dentro del directorio /etc/pam.d/. Cada uno de estos archivos llevan el nombre del servicio para el cual controla el acceso. Depende del programa tipo PAM definir el nombre de su servicio e instalar su archivo de configuración en el directorio /etc/pam.d/. Por ejemplo, el programa login define su nombre de servicio como login e instala el archivo de configuración PAM /etc/pam.d/login

Formato de archivo de configuración PAM

Cada archivo de configuración PAM contiene un grupo de directivas formateadas como sigue:

Cada aplicación tipo PAM o servicios tiene un archivo dentro del directorio /etc/pam.d/. Cada uno de estos archivos llevan el nombre del servicio para el cual controla el acceso. Depende del programa tipo PAM definir el nombre de su servicio e instalar su archivo de configuración en el directorio /etc/pam.d/. Por ejemplo, el programa login define su nombre de servicio como login e instala el archivo de configuración PAM /etc/pam.d/login

<module interface>
<control flag>
<module name>
<module arguments>



Interfaz de Modulo

Hay cuatro tipos de módulos PAM disponibles. Cada uno corresponde con un aspecto diferente del proceso de autorización:

auth: Esta interfaz de módulo autentifican el uso. Por ejemplo, solicita y verifica la validez de una contraseña. Los módulos con esta interfaz también pueden establecer credenciales, tales como membrecías de grupo o tickets Kerberos.

account: Esta interfaz de módulo verifica que sea permitido el acceso. Por ejemplo, puede verificar que la cuenta no haya caducado o que el usuario tenga permiso de iniciar sesiones a una hora del día particular.
password: Este módulo se usa para establecer y verificar contraseñas.

session: Esta interfaz de módulo configura y administra las sesiones de usuarios. Los módulos con esta interfaz también pueden realizar tareas adicionales que son requeridas para permitir acceso, como el montaje de directorios principales de usuarios y hacer el buzón de correo del usuario disponible.
NOTA: Un módulo individual puede proporcionar una o todas las interfaces de módulos mencionadas anteriormente. Por ejemplo, pam_unix.so proporciona todas las cuatro interfaces. En un archivo de configuración PAM, la interfaz del módulo es el primer campo a definir. Por ejemplo, una línea típica de una configuración sería: auth required pam_unix.so
Esto provoca que PAM utilice la interfaz pam_unix.so del módulo auth.

Indicadores de Control

Todos los módulos PAM generan un resultado de éxito o fracaso cuando se les llama. Los indicadores de control le dicen a PAM qué hacer con el resultado. Como los módulos pueden apilarse en un determinado orden, los indicadores de control le dan la posibilidad de fijar la importancia de un módulo con respecto al objetivo final del proceso de autenticación para el servicio.

Hay cuatro indicadores de control definidos:
required: El resultado del módulo debe ser exitoso para que la autenticación continue. Si la prueba falla, el usuario no es notificado hasta que los resultados en todos los módulos referenciando esa interfaz sean completados.
requisite: El resultado del módulo debe ser exitoso para que la autenticación continúe. Sin embargo, si la prueba falla, el usuario es notificado inmediatamente con un mensaje reflejando el primer módulo requiredorequisite fallido.
sufficient: El resultado del módulo es ignorado si falla. Pero si el resultado del módulo con el indicador sufficient es exitoso y ningún módulo con indicador required ha fallado, entonces no se requiere ningún otro resultado y el usuario es autenticado para el servicio.
optional: Se ignora el resultado del módulo.Un módulo con una bandera optional sólo es necesario para la autenticación exitosa cuando no hay otros módulos haciendo referencia a la interfaz.

IMPORTANTE: El orden en el cual se llaman los módulos required no es crítico. Las banderas o indicadores de control sufficient y requisite provocan que el orden se vuelva importante. Ahora PAM dispone de una nueva sintaxis de control de banderas que permite un control más preciso. La página man de pam.d y la documentación de PAM, ubicadas en directorio /usr/share/doc/pam-<version-number>/ (donde <version-number> es el número de versión para PAM) describe esta nueva sintaxis detalladamente.






Archivos de configuracion PAM 

atd chsh common-password cron gdm-autologin newusers polkit-1 su
chfn common-account common-session cups gnome-screensaver other ppp sudo
chpasswd common-auth common-session-noninteractive gdm login passwd samba


Fuente : http://www.kernel.org/pub/linux/libs/pam/Linux-PAM-html/old/pam-5.html

2 comentarios:

  1. Oye en la sección de ¡PAM! En la que pone # here are the per-package modules (the "Primary" block) auth [success=1 default=ignore] pam_unix.so nullok_secure # here's the fallback if no module succeeds auth requisite pam_deny.so # prime the stack with a positive return value if there isn't one already; # this avoids us returning an error just because nothing sets a success code # since the modules above will each just jump around auth required pam_permit.so # and here are more per-package modules (the "Additional" block) auth optional pam_cap.so # end of pam-auth-update config
    /etc/pam.d/common-session
    # here are the per-package modules (the "Primary" block) session[default=1] pam_permit.so # here's the fallback if no module succeeds sessionrequisite pam_deny.so # prime the stack with a positive return value if there isn't one already; # this avoids us returning an error just because nothing sets a success code # since the modules above will each just jump around sessionrequired pam_permit.so QUE PUEDO HACER?

    ResponderEliminar