jueves, 15 de mayo de 2008

PAM

"Pluggable Authentication Modules" para Linux, es una suite de librerías compartidas que permiten al administrador local del sistema escoger cómo autentifican a los usuarios las aplicaciones. Literalemente extraído de la documentación de PAM, yo no lo hubiera podido decir mejor. ¿Pero qué significa en realidad? Por ejemplo, tomemos el programa "login", cuando un usuario se conecta a un tty (vía puerto serie o sobre la red), un programa responde la llamada (getty para líneas en serie, normalmente telnet o ssh para conexiones de red) e inicia el programa "login", y luego pide el típico nombre de usuario, seguido de la contraseña, lo cual se compara con el fichero /etc/passwd. Todo esto está bien y es muy mono, hasta que tienes una fenomenal tarjeta de autentificación nueva y quieres utilizarla. Bueno, pues tendrás que recompilar login ( y cualquier otra aplicación que vaya a hacer la autentificación según el nuevo método) de modo que soporten el sistema nuevo. Como te puedes imaginar, esto lleva bastante trabajo y está sujeto a errores.

PAM introduce una capa de middleware entre la aplicación y el mecanismo real de autentificación. Una vez que el programa está PAMificado, podrá ser utilizado por el programa cualquier método de autentificación que soporte PAM. Además de esto, PAM puede manejar cuentas y datos de sesiones, lo cual no suelen hacer bien los mecanismos habituales de autentificación. Por ejemplo, usando PAM se puede deshabilitar con facilidad el acceso de login a los usuarios normales entre las 6pm y las 6am, y cuando hagan login, se les puede autentificar vía scanner retinal. Por defecto, los sistemas Red Hat son conscientes de PAM, y las versiones más recientes de Debian también (más abajo puedes echar un vistazo a la tabla de sistemas PAMificados). De esta forma, en un sistema con soporte PAM, todo lo que tengo que hacer para implementar el shadow en contraseñas es convertir los ficheros de contraseñas y de grupos, y posiblemente añadir una o dos líneas a algunos ficheros de configuración de PAM (si no las tienen ya añadidas). En resumen, PAM proporciona una gran cantidad de flexibilidad al manejar la autentificación de usuarios, y soportará otras características en el futuro, como firmas digitales, con el único requerimiento de uno o dos módulos PAM para manejarlo. Es necesario este tipo de flexibilidad si se pretende que Linux sea un sistema operativo de tipo empresarial. Las distribuciones que no vengan como "PAMificadas" se pueden convertir, pero requiere mucho esfuerzo (tienes que recompilar todos los programas con soporte PAM, instalar PAM, etc), probablemente sea más fácil cambiarse a una distribución PAMificada si va a suponer un requisito. PAM suele venir con documentación completa, y si estás buscando una vista general, deberías visitar: http://www.sun.com/software/solaris/pam/∞.

Otros beneficios de un sistema orientado a PAM es que ahora se puede hacer uso de un dominio NT para autentificar usuarios, lo cual quiere decir que se pueden plantar estaciones Linux en una red Microsoft ya existente sin tener que comprar NIS / NIS+ para NT y pasar por el calvario de instalarlo.

|| Distribución || Versión || Soporte PAM ||
|| Red Hat || 5.0, 5.1, 5.2, 6.0 || Completamente ||
|| Debian || 2.1 || Sí ||
|| Caldera || 1.3, 2.2 || Completamente ||
|| TurboLinux || 3.6 || Completamente ||

Existen más distribuciones que soportan PAM y que no aparecen en la lista, así que por favor, infórmame de ellas.

PAM Cryptocard Module

http://www.jdimedia.nl/igmar/pam/∞

Pam Smart Card Module

http://www.linuxnet.com/applications/applications.html

No hay comentarios: