pam pluggable authentication modulessopa.dis.ulpgc.es/curso_adsrydl/presentaciones/pam.pdf · pam...

23
1 PAM Pluggable Authentication Modules Bibliografía: manual de referencia • /usr/share/doc/pam-<version-number>/ (donde <version-number> es el número de versión para PAM). • /www.kernel.org/pub/linux/libs/pam/index.html

Upload: others

Post on 16-Jan-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PAM Pluggable Authentication Modulessopa.dis.ulpgc.es/curso_adsrydl/presentaciones/pam.pdf · PAM Ventajas de utilizar módulos PAM: • Un esquema de autenticación común que se

1

PAM Pluggable Authentication Modules

Bibliografía:• manual de referencia

• /usr/share/doc/pam-<version-number>/ (donde <version-number> es el número de versión para PAM).

• /www.kernel.org/pub/linux/libs/pam/index.html

Page 2: PAM Pluggable Authentication Modulessopa.dis.ulpgc.es/curso_adsrydl/presentaciones/pam.pdf · PAM Ventajas de utilizar módulos PAM: • Un esquema de autenticación común que se

2

PAMVentajas de utilizar módulos PAM: • Un esquema de autenticación común que se

puede usar con una gran variedad de aplicaciones.

• Permite gran flexibilidad y control de la autentificación para el administrador del sistema y el desarrollador de la aplicación.

• Los desarrolladores de aplicaciones no necesitan desarrollar su programa para usar un determinado esquema de autenticación. En su lugar, pueden concentrarse puramente en los detalles de su programa.

Page 3: PAM Pluggable Authentication Modulessopa.dis.ulpgc.es/curso_adsrydl/presentaciones/pam.pdf · PAM Ventajas de utilizar módulos PAM: • Un esquema de autenticación común que se

3

PAM Pluggable Authentication Modules

• Herramienta para configurar normas, control y políticas de autenticación (longitud mínima, tipos de caracteres a usar).

• Se aplica a servicios del sistema y aplicaciones que tengan implementado en su código librerías PAM. Por ejemplo passwd.

• ¿Cuáles son? Dos formas de saberlo:- Las que tengan fichero de configuración en /etc/pam.d/- Con el comando ldd, que muestra las librerías de una aplicación.

Page 4: PAM Pluggable Authentication Modulessopa.dis.ulpgc.es/curso_adsrydl/presentaciones/pam.pdf · PAM Ventajas de utilizar módulos PAM: • Un esquema de autenticación común que se

4

PAM Pluggable Authentication Modules

Esta formado por:• Un conjunto de módulos en forma de librerias en

/lib/security/pam_xxxx . Esta librerias tienen una interfase standar API (Application ProgrammingInterface)

• Un archivo de configuración para cada aplicación o servicio que requiere autenticación, con el mismo nombre que el servicio. Están ubicados en el directorio /etc/pam.d/.

Page 5: PAM Pluggable Authentication Modulessopa.dis.ulpgc.es/curso_adsrydl/presentaciones/pam.pdf · PAM Ventajas de utilizar módulos PAM: • Un esquema de autenticación común que se

5

/etc/pam.d/-rw-r--r-- 1 root root 282 feb 24 2003 apacheconf-rw-r--r-- 1 root root 245 feb 19 2003 authconfig-rw-r--r-- 1 root root 260 feb 25 2003 chsh-rw-r--r-- 1 root root 260 feb 25 2003 console-rw-r--r-- 1 root root 282 feb 26 2003 dateconfig-rw-r--r-- 1 root root 169 feb 25 2003 halt-rw-r--r-- 1 root root 329 feb 25 2003 login-rw-r--r-- 1 root root 230 feb 10 2003 other-rw-r--r-- 1 root root 169 feb 13 2003 passwd-rw-r--r-- 1 root root 169 feb 25 2003 poweroff-rw-r--r-- 1 root root 204 ene25 2003 ppp-rw-r--r-- 1 root root 200 feb 13 2003 printconf-rw-r--r-- 1 root root 169 feb 25 2003 reboot-rw-r--r-- 1 root root 257 mar14 2003 samba-rw------- 1 root root 354 feb 14 2003 sshd-rw-r--r-- 1 root root 699 feb 18 2003 su-rw-r--r-- 1 root root 222 ene 25 2003 sudo

Page 6: PAM Pluggable Authentication Modulessopa.dis.ulpgc.es/curso_adsrydl/presentaciones/pam.pdf · PAM Ventajas de utilizar módulos PAM: • Un esquema de autenticación común que se

6

/lib/security

-rwxr-xr-x 1 root root 9696 feb 10 2003 pam_access.so-rwxr-xr-x 1 root root 6320 feb 10 2003 pam_chroot.so-rwxr-xr-x 1 root root 47584 feb 10 2003 pam_console.so-rwxr-xr-x 1 root root 12964 feb 10 2003 pam_cracklib.so-rwxr-xr-x 1 root root 3404 feb 10 2003 pam_deny.so-rwxr-xr-x 1 root root 6048 feb 10 2003 pam_ftp.so-rwxr-xr-x 1 root root 11148 feb 10 2003 pam_group.so-rwxr-xr-x 1 root root 8468 feb 10 2003 pam_lastlog.so-rwxr-xr-x 1 root root 9664 feb 10 2003 pam_mail.so-rwxr-xr-x 1 root root 4856 feb 10 2003 pam_nologin.so-rwxr-xr-x 1 root root 3708 feb 10 2003 pam_permit.so-rwxr-xr-x 1 root root 146336 feb 10 2003 pam_pwdb.so-rwxr-xr-x 1 root root 3936 feb 10 2003 pam_rootok.so-rwxr-xr-x 1 root root 6544 feb 10 2003 pam_securetty.so-rwxr-xr-x 1 root root 5520 feb 10 2003 pam_shells.so-rwxr-xr-x 1 root root 48544 feb 10 2003 pam_unix.so

Page 7: PAM Pluggable Authentication Modulessopa.dis.ulpgc.es/curso_adsrydl/presentaciones/pam.pdf · PAM Ventajas de utilizar módulos PAM: • Un esquema de autenticación común que se

7

Los archivos de configuración• Tienen el nombre del servicio o aplicación.• Define la conexión entre el servicio y el modulo

PAM.• Contienen las ordenes que debe realizar PAM

para ese servicio. • Contiene una línea por cada modulo que se

invoca para este servicio. • Un servicio puede utilizar varios módulos para

configurar su política de autentificación.• Cada línea tiene cuatro campos con el siguiente

formato:Tipo de módulo – Indicador de control – Ruta del módulo – Argumentos.

Page 8: PAM Pluggable Authentication Modulessopa.dis.ulpgc.es/curso_adsrydl/presentaciones/pam.pdf · PAM Ventajas de utilizar módulos PAM: • Un esquema de autenticación común que se

8

Tipo de móduloExisten cuatro tipos o interfase de módulos para el control

de las aplicaciones• authentication – Comprueba que el usuario es quien

dice ser, Pedir una contraseña. Verificar una “mochilla” hardware.

• account – Permite o restringe el acceso a los servicios. (Tiene este usuario permiso para el servicio?, tiene el usuario la contraseña caducada?).

• session – Tareas a realizar antes de autorizar el servicio (montar el directorio home del usuario) y tareas postconfiguración después de autorizar el servicio, para dejarlo listo para usar por otro usuario.

• password – Para pedir actualizar el elemento de autenticación del usuario.

Page 9: PAM Pluggable Authentication Modulessopa.dis.ulpgc.es/curso_adsrydl/presentaciones/pam.pdf · PAM Ventajas de utilizar módulos PAM: • Un esquema de autenticación común que se

9

Tipo de módulo• Un módulo PAM puede proporcionar todos o algunos de

los tipos.ejemplo, pam_unix.so tiene los cuatro.

• Los módulos pueden ser apilados dentro del fichero de configuración, para colocar varias condiciones.

• El orden de una pila de módulos es muy importante en el procedimiento de autenticación.

• El hecho de apilarlos permite al administrador poner diversas condiciones antes de permitir la autentificación del usuario.

• Por ejemplo, rlogin normalmente usa cinco módulos auth.

Page 10: PAM Pluggable Authentication Modulessopa.dis.ulpgc.es/curso_adsrydl/presentaciones/pam.pdf · PAM Ventajas de utilizar módulos PAM: • Un esquema de autenticación común que se

10

Indicadores de control

Existen cuatro controles o niveles de acción para cuando un módulo falla o se ejecuta correctamente.

• requisite – Si se produce un fallo el proceso termina inmediatamente.

• required - Necesario para que la autenticación tenga éxito. En caso de fallo se hace visible al usuario cuando finalicen el resto de los módulos.

• sufficient – Si este módulo tiene éxito ignora posibles fallos de anteriores módulos.

• optional – Se ignora el fallo de este modulo. El fallo de este modulo solo es importante si es el único modulo asociado directamente con el servicio.

La utilización de los controles sufficient y requisite hace que la ordenación de los módulos sea importante.

Page 11: PAM Pluggable Authentication Modulessopa.dis.ulpgc.es/curso_adsrydl/presentaciones/pam.pdf · PAM Ventajas de utilizar módulos PAM: • Un esquema de autenticación común que se

11

Ruta del módulo

• Es la ubicación del módulo en el sistema. Están en: /lib/security/pam_nombre del módulo.

Argumentos• Argumentos que puede requerir un módulo. •Se describen en cada módulo en particular.•Tienen la forma argumento=valor.

Page 12: PAM Pluggable Authentication Modulessopa.dis.ulpgc.es/curso_adsrydl/presentaciones/pam.pdf · PAM Ventajas de utilizar módulos PAM: • Un esquema de autenticación común que se

12

conjunto de módulos PAM• Existe un conjunto de módulos preinstalados en Red Hat.

(/lib/security/). • Contienen el software para realizar las comprobaciones y controles

de acceso oportunos.

El módulo pam_craklibComprueba la robustez de las contraseñas aplicando algoritmos de:• Detección de semejanza de la nueva contraseña con la antigua.• Detecta palíndromos entre la nueva contraseña abcde y la vieja

edcba.• Variaciones en mayúsculas ManuLop y manUloP.• Comprueba rotaciones abc123 y bc123a.Este módulo admite argumentos que pueden variar los algoritmos

Page 13: PAM Pluggable Authentication Modulessopa.dis.ulpgc.es/curso_adsrydl/presentaciones/pam.pdf · PAM Ventajas de utilizar módulos PAM: • Un esquema de autenticación común que se

13

pam_cracklib

• Ejemplo de línea en el fichero de configuración /etc/pam.d/passwd para el módulo pam_cracklib.

password required /lib/secuarity/pam_cracklib.so difok=5 minlen=16 dcredit=2 ocredit=2

Page 14: PAM Pluggable Authentication Modulessopa.dis.ulpgc.es/curso_adsrydl/presentaciones/pam.pdf · PAM Ventajas de utilizar módulos PAM: • Un esquema de autenticación común que se

14

pam_cracklib opciones• retry – número de veces que se le pedirá al usuario que

introduzca la contraseña.• difok – número de caracteres diferentes entre la nueva y

vieja contraseña. Si difieren en mas de la mitad de los caracteres se acepta.

• minlen – mínimo número de créditos que tiene que tener la contraseña. Un crédito por cada carácter, un crédito por tener caracteres de distinto tipo, (mezclar números con letras, mayúsculas y minúsculas). Los créditos se establecen en función de los parámetros:

• dcredit – máximo de créditos adicionales por incluir dígitos, a razón de un crédito por digito.

• ocredit - máximo de créditos adicionales por incluir caracteres especiales, a razón de un crédito por carácter especial (# [ { *).

• ucredit - máximo de créditos adicionales por incluir mayúsculas, a razón de un crédito por mayúscula.

• lcredit - máximo de créditos adicionales por incluir minúsculas, a razón de un crédito por minúscula.

Page 15: PAM Pluggable Authentication Modulessopa.dis.ulpgc.es/curso_adsrydl/presentaciones/pam.pdf · PAM Ventajas de utilizar módulos PAM: • Un esquema de autenticación común que se

15

Ejemplos de archivos de configuración PAMArchivo de configuración “other”auth required /lib/security/pam_deny.soaccount required /lib/security/pam_deny.sopassword required /lib/security/pam_deny.sosession required /lib/security/pam_deny.so

• Todos los tipos de módulos tienen el control required, y se llama al módulo pam_deny.so

• Previene de que cualquier clase de autentificación pueda ocurrir, para que se produzca un fallo y obligar a que cualquier aplicación que usa PAM debe ser configurada.

Page 16: PAM Pluggable Authentication Modulessopa.dis.ulpgc.es/curso_adsrydl/presentaciones/pam.pdf · PAM Ventajas de utilizar módulos PAM: • Un esquema de autenticación común que se

16

Ejemplo muestra de archivo de configuración de aplicación PAM:

#%PAM-1.0

auth required /lib/security/pam_securetty.so

auth required /lib/security/pam_unix.so shadow nullok

auth required /lib/security/pam_nologin.so

account required /lib/security/pam_unix.so

password required /lib/security/pam_cracklib.so retry=3

password required /lib/security/pam_unix.so shadow nullok use_authtok

session required /lib/security/pam_unix.so

Page 17: PAM Pluggable Authentication Modulessopa.dis.ulpgc.es/curso_adsrydl/presentaciones/pam.pdf · PAM Ventajas de utilizar módulos PAM: • Un esquema de autenticación común que se

17

La primera línea es un comentario como lo es toda línea que inicie con el carácter (#).

Las líneas dos, tres y cuatro apilan tres módulos a usar para autentificaciones de inicio de sesión.

auth required /lib/security/pam_securetty.so

Este módulo se asegura de que si el usuario está tratando de conectarse como root, el tty en el cual el usuario se está conectando está listado en el archivo /etc/securetty, si ese archivo existe.

Page 18: PAM Pluggable Authentication Modulessopa.dis.ulpgc.es/curso_adsrydl/presentaciones/pam.pdf · PAM Ventajas de utilizar módulos PAM: • Un esquema de autenticación común que se

18

auth required /lib/security/pam_unix.so shadow nullok

• Este módulo le solicita al usuario por una contraseña y luego verifica la contraseña usando la información almacenada en /etc/passwd y, si existe /etc/shadow.

• El módulo pam_unix.so detecta automáticamente y utiliza contraseñas shadowpara autenticar usuarios.

• El argumento nullok instruye al módulo pam_unix.so a que permita una contraseña en blanco.

Page 19: PAM Pluggable Authentication Modulessopa.dis.ulpgc.es/curso_adsrydl/presentaciones/pam.pdf · PAM Ventajas de utilizar módulos PAM: • Un esquema de autenticación común que se

19

auth required /lib/security/pam_nologin.so

• Este es el paso final de autenticación. Sus resultados para ver si el archivo /etc/nologinexiste. Si nologin no existe y el usuario no es root, la autenticación falla.

Page 20: PAM Pluggable Authentication Modulessopa.dis.ulpgc.es/curso_adsrydl/presentaciones/pam.pdf · PAM Ventajas de utilizar módulos PAM: • Un esquema de autenticación común que se

20

account required /lib/security/pam_unix.so• Este módulo realiza cualquier verificación de cuenta necesaria. Por

ejemplo, las contraseñas shadow han sido activadas, el componente de la cuenta del módulo pam_unix.so verificará para ver si la cuenta ha expirado o si el usuario no ha cambiado la contraseña dentro del período de gracia otorgado.

password required /lib/security/pam_cracklib.so retry=3

• Si la contraseña ha expirado, el componente de la contraseña delmódulo pam_cracklib.so le pide por una nueva contraseña. Luego evalúa la nueva contraseña para ver si puede ser fácilmente determinado por un programa que descubre las contraseñas basadas en diccionario. Si esto falla la primera vez, le dá al usuario dos oportunidades más de crear una contraseña más robusta debido al argumento retry=3.

Page 21: PAM Pluggable Authentication Modulessopa.dis.ulpgc.es/curso_adsrydl/presentaciones/pam.pdf · PAM Ventajas de utilizar módulos PAM: • Un esquema de autenticación común que se

21

password required /lib/security/pam_unix.so shadow nullok use_authtok

• Esta línea especifica que si el programa cambia la contraseña del usuario, éste debería usar el componente password del módulo pam_unix.so para realizarlo. Esto sucederá tan sólo si la porción auth del módulo pam_unix.so ha determinado que la contraseña necesita ser cambiada.

• El argumento shadow le dice al módulo que cree contraseñas shadow cuando se actualiza la contraseña del usuario.

• El argumento nullok indica al módulo que permita al usuario cambiar su contraseña desde una contraseña en blanco, de lo contrario una contraseña vacía o en blanco es tratada como un bloqueo de cuenta.

Page 22: PAM Pluggable Authentication Modulessopa.dis.ulpgc.es/curso_adsrydl/presentaciones/pam.pdf · PAM Ventajas de utilizar módulos PAM: • Un esquema de autenticación común que se

22

session required /lib/security/pam_unix.so

• La última línea especifica que el componente de la sesión del módulo pam_unix.so gestionará la sesión. Este módulo registra el nombre de usuario y el tipo de servicio para /var/log/messages al inicio y al final de cada sesión. Puede ser suplementado apilándolo con otros módulos de sesión si necesita más funcionalidad.

Page 23: PAM Pluggable Authentication Modulessopa.dis.ulpgc.es/curso_adsrydl/presentaciones/pam.pdf · PAM Ventajas de utilizar módulos PAM: • Un esquema de autenticación común que se

23

Práctica:

Utilice PAM para mejorar la seguridad y dificultad de adivinar las contraseñas.

1. Estudie el módulo pam_cracklib y sus posibilidades.

2. /usr/share/doc/pam-<version-number>/3. Defina un perfil o estrategia.4. Introducir el módulo pam_cracklib en el

fichero /etc/pam.d/passwd, con la estrategia definida.