|
|
||
|
||
|
|
| Red Hat Documentation |
Autenticación de Usuario con PAMLos programas que dan acceso a los usuarios a privilegios de cualquier tipo necesitan poder autenticar al usuario. Al conectarse al sistema, se da un nombre y una contraseña, y el proceso de conexión los utiliza para autenticar la conexión -- verificar que se es quien se dice que se es. Formas alternativas de autenticación aparte de las contraseñas existen, y es posible almacenar contraseñas de otras maneras. PAM, que significa Pluggable Authentication Modules (Módulos de Autenticación Cargables), es una forma de permitir al administrador del sistema establecer reglas de autenticación sin tener que recompilar los programas de autenticación. Con PAM, se controla como se cargan los módulos en los programas editanto un fichero de configuración. La mayoría de usuarios de Red Hat Linux nunca tendrán que tocar este fichero de configuración. Cuando se usa RPM pra instalar programas que requieren autenticación, se realizan automaticamente los cambios necesarios para la autenticación normal por contraseña. Sin embargo, puede quererse ajustar la configuración, en cuyo caso hay que entender el fichero de configuración. Módulos PAMHay cuatro tipos de módulos definidos por el estándar PAM.
Estos módulos pueden apilarse, pudiendo utilizarse así multiples módulos. Por ejemplo,, rlogin normalmente hace uso de dos modos de autenticación: si la autenticación rhosts tiene éxito, es suficiente para permitir la conexión; si falla, entonces se utiliza el método estándar de autenticación de contraseñas. Se pueden añadir nuevos módulos en cualquier momento, y se pued hacer que las aplicaciones que conocen el método PAM, los utilicen. Por ejemplo, si se tiene una calculadora de sistema de contraseña al instante, y se escribe un módulo para darle soporte (hay documentación sobre como escribir módulos incluida con el sistema en /usr/doc/pam*), PAM-aware programs can use the new module and work with the new one-time-password calculators without being recompiled or otherwise modified in any way. ServiciosCada programa que usa PAM define su propio nombre de "servicio". El programa de login define el tipo de servicio login, ftpd define el servicio de tipo ftp, y así con todos. En general, el tipo de servicio es el nombre del programa utilizado para access al servicio, no (si es que hay diferencia) el programa utilizado para proveer el servicio. Los ficheros de configuraciónEl directorio /etc/pam.d se utiliza para configurar las aplicaciones PAM. (Solía ser /etc/pam.conf en anteriores versiones de PAM; aunque todavía se lee el fichereo pam.conf si no se encuentra una entrada /etc/pam.d/, su uso está obsoleto). Cada aplicación (realmente, cada servicio) tiene su propio fichero. Un fichero tiene este aspecto:
La primera línea es un comentario. (Cualquier línea que empiece por # es un comentario.) Las líneas dos a cuatro apilan tres modulos para usar en la autorización de login o conexión. La línea dos asegura quee si el usuario intenta conectar como root, la tty en la que se conecta está en la lista del fichero /etc/securetty si el fichero existe. La línea tres hace que se pida una contraseña y se verifique. La línea cuatro comprueba si existe el fichero /etc/nologin, y si es así, muestra el contenido del fichero, y si el usuario no es root, no le deja conectarse. Hay que hacer notar quee los tres modulos son comprobados, incluso si el primero falla. Es una decisión de seguridad -- está diseñada para prevenir que el usuario sepa porque ha fallado su autenticación, porque saberlo podría ayudar a rompor la seguridad más facilmente. Puede cambiarse el comportaminto cambiando required a requisite; si cualquier módulo requisite falla, PAM falla también inmediatamentee sin llamar a más módulos. La quinta línea hace que se realice toda la contabilidad necesaria. Por ejemplo, si se han activado contraseñas ocultas (shadow passwords), el módulo pam_pwdb.so comprobará si la cuenta ha expirado, o si el usuario ha cambiado la contraseña y el periodo de gracia para cambiarla ha expirado. La sexta línea somete a una contraseña recién cambiada a una serie de tests para asegurar quee no puede, por ejemplo, ser facilmente determinada por un programa de busqueda de contraseñas basado en la técnica del diccionario. La septima línea (que puede ser más de una) especifica que si el programa login cambia la contraseña del usuario debería usar el módulo pam_pwdb.so para hacerlo. (Sólo lo hará si un módulo auth ha determinado que debe cambiarse la password --- por ejemplo, si una shadow password ha expirado). La octava y final especifica que el módulo pam_pwdb.so debería ser usado para gestionar la sesión. Actualmente el módulo no hace nada; podría ser reemplazado (o seguido de otro por apilamiento) por cualquier módulo que se necesite. Notese que el orden de las líneas dentro del fichero importa. Mientras que no importa mucho en que orden se llama los módulos required, hay otras opciones de control disponibles. Mientras que optional se usa raramente, y nunca por defecto en un sistema Red Hat Linux, sufficient and requisite hacen que el orden sea importante. Véase el fichero de configuración auth de rlogin:
Parece casi igual que la entrada login, pero hay una línea especificando un módulo extraan extra module, y los módulos están en distinto orden. Primero, pam_securetty.so impide conexiones como root desde terminales no seguros. Esto desactiva todos los intentos de acceder como root vía rlogin. Si se quieren permitir (en cuyo caso se recomienda no estar conectado a Internet o estarlo tras un buen firewall), se puede simplemente eliminar esa línea. Segundo, si pam_rhosts_auth.so autentica al usuario, user, PAM inmediatamente devuelve un código de éxito a rlogin sin comprobación de contraseña. Si pam_rhosts_auth.so no puede autenticar al usuario, se ignora el fallo. Tercero, si pam_rhosts_auth.so no autentica al usuario , el módulo pam_pwdb.so realiza autenticación normal por contraseña. Finalmente pam_nologin.so comprueba /etc/nologin, como se indica más arriab. Si no se quiere pedir contraseñas si la comprobación de securetty falla, se puede cambiar el módulo pam_securetty.so module de required a requisite. Shadow Passwords o Contraseñas OcultasEl módulo pam_pwdb.so detectará automáticamente que se están usando shadow passwords y hará todos los ajustes necesarios. Véase la sección de nombre Utilidades Shadow para más información. Rexec y PAMPor razones de seguridad, rexec no está activado en Red Hat Linux 6.2. Si se quisiera activar, habrá que descomentar una línea en el fichero /etc/pam.d/rexec. He aquí una muestra del fichero (el fichero puede variar de sistema a sistema):
Para habilitar rexec, la línea referida al módulo pam_nologin.so debe descomentarse:
Tras la modificación, rexec estará activado.
Más informaciónEsto es sólo una introducción a PAM. Se incluya más información en el directorio /usr/doc/pam*, incluyendo La Guía del Administrador de Sistemas, el Manual de Desarrollador de Módulos, el Manual de Desarrollador de Aplicaciones, y el estándar PAM, DCE-RFC 86.0. | |||||||||||||||
|
|