PDF de programación - Pluggable Authentication Modules (PAM)

Imágen de pdf Pluggable Authentication Modules (PAM)

Pluggable Authentication Modules (PAM)gráfica de visualizaciones

Publicado el 5 de Febrero del 2017
799 visualizaciones desde el 5 de Febrero del 2017
189,1 KB
29 paginas
Creado hace 20a (28/04/2004)
Pluggable Authentication Modules (PAM)

Imobach González Sosa

Manolo Padrón Martínez

[email protected]

[email protected]

Versión 1.0

Curso 2003/04

Licencia

Copyright (c) 2004 Manolo Padrón Martínez, Imobach González Sosa.

Permission is granted to copy, distribute and/or modify this document under the terms

of the GNU Free Documentation License, Version 1.2 or any later version published by

the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no

Back-Cover Texts. A copy of the license is included in the section entitled ”GNU Free

Documentation License”.

Índice

1. Acerca de este documento

2. Fundamentos básicos

2.1. ¿Qué es PAM?

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.2. Grupos de gestión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3. Arquitectura

4. Configuración

4.1. Enfoques de la organización de la configuración . . . . . . . . . . . . . . .

4.2. Reglas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5. Algunos módulos disponibles

1

2

2

3

4

6

6

6

11

5.1. pam console.so . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

5.2. pam cracklib.so . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

5.3. pam deny.so . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

5.4. pam env.so . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

5.5. pam limits.so . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

5.6. pam nologin.so . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

5.7. pam permit.so . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

5.8. pam rootok.so . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

5.9. pam securetty.so . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

5.10. pam stack.so . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

5.11. pam wheel.so . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

5.12. pam xauth.so . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

6. Ejemplos de configuración

17

6.1.

login . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

6.2. passwd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

6.3. su . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

Ampliación de sistemas operativos

Índice

6.4. other . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

A. Valores devueltos por los módulos de PAM

22

A.1. authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

A.2. account

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

A.3. password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

A.4. session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

B. Referencias

24

Ampliación de sistemas operativos

Índice

1. Acerca de este documento

Los Pluggable Authentication Modules se han convertido en el estándar de facto

para la autenticación de usuarios en los sistemas UNIX. Su gran flexibilidad ofrece a

administradores y desarrolladores un control muy valioso.

Gracias a PAM,

los administradores de sistemas pueden modelar e implementar

diferentes políticas de autenticación para los distintos usuarios de forma individualizada

para cada servicio. Pero hay que manejar estas facilidades con sumo cuidado, ya que una

mala decisión o, simplemente, un despiste pueden comprometer gravemente la seguridad

del sistema. Por tanto, el administrador tiene que conocer muy bien cómo funciona PAM

si, realmente, quiere afinar al máximo el proceso de autenticación de su sistema.

Este documento pretende servir como introducción a PAM, centrándose en la

implementación desarrollada por Red Hat para GNU/Linux, Linux-PAM, si bien los

conceptos básicos son los mismos que presentara Sun en su momento allá por 1995.

Como siempre, para obtener información más precisa, lo mejor es consultar directa-

mente la documentación oficial del proyecto, en http://www.kernel.org/pub/linux/libs/pam/.

Ampliación de sistemas operativos

Página 1

2. Fundamentos básicos

2.1.

¿Qué es PAM?

La idea original de los Pluggable Authentication Modules, en adelante PAM, fue de Sun

y sus especificaciones se encuentran recogidas en [5]. Sin embargo, muchos otros sistemas

adoptaron esta solución y cuentan desde hace tiempo con sus propias implementaciones.

En este sentido, GNU/Linux no es una excepción y, gracias a Red Hat, disfruta ya desde

hace años de la funcionalidad que ofrece Linux-PAM1.

Pero, ¿qué es PAM exactamente? Tal y como puede leerse en la FAQ2 oficial del

proyecto, PAM es, básicamente, un mecanismo flexible para la autenticación de usuarios.

Y quizás esta característica, la flexibilidad, sea su aportación más importante.

A lo largo de los años, desde los primeros sistemas UNIX,

los mecanismos de

autenticación han ido evolucionando y han aparecido nuevas opciones: desde mejoras

del clásico /etc/passwd —como la shadow — hasta dispositivos hardware orientados a la

autenticación. Y, claro está, cada vez que aparecía y se popularizaba un nuevo método,

los desarrolladores debían modificar sus programas para darles soporte.

PAM permite el desarrollo de programas independientes del mecanismo de autenti-

cación a utilizar. Así es posible que un programa que aproveche las facilidades ofrecidas

por PAM sea capaz de utilizar desde el sencillo /etc/passwd hasta dispositivos hardware

—como lectores de huella digital—, pasando por servidores LDAP 3 o sistemas de gestión

de bases de datos. Y, por supuesto, todo esto sin cambiar ni una sola línea de código.

Pero PAM va más allá todavía, permitiendo al administrador del sistema construir

políticas diferentes de autenticación para cada servicio.

En resumen, podrían sintetizarse las ventajas más importantes de PAM en los

siguientes puntos:

Ofrece un esquema de autenticación común y centralizado.

Permite a los desarrolladores abstraerse de las labores de autenticación.

Facilita el mantenimiento de las aplicaciones.

1A no ser que se indique lo contrario, a partir de ahora se hará referencia “PAM” y “Linux-PAM”

indistintamente.

2Frequently Asked Questions, http://www.kernel.org/pub/linux/libs/pam/FAQ
3Lightweight Directory Access Protocol

Ampliación de sistemas operativos

Página 2

Ofrece flexibilidad y control tanto para el desarrollador como para el administrador

de sistema.

2.2. Grupos de gestión

A pesar de lo que se ha explicado anteriormente, la misión de PAM no es, únicamente,

comprobar que un usuario es quien dice ser —autenticación—. Su alcance es mucho mayor

y pueden dividirse sus tareas en cuatro grupos independientes de gestión, cada uno de los

cuáles se encarga de un aspecto diferente de los servicios restringidos.

account (cuenta) En este grupo se engloban tareas que no están relacionadas

directamente con la autenticación. Algunos ejemplos son permitir/denegar el acceso

en función de la hora, los recursos disponibles o, incluso, la localización. Ofrece

verificación de cuentas de usuario. Por ejemplo, se encarga de determinar si el usuario

tiene o no acceso al servicio, si su contraseña ha caducado, etc.

authentication (autenticación) Tareas encaminadas a comprobar que, efectivamente,

el usuario es realmente quien dice ser. A menudo, cuando se habla de PAM, sólo

se tiene en cuenta esta tarea, ignorando las demás. Estas tareas ofrecen incluso un

sistema de credenciales que permiten al usuario ganar ciertos privilegios —fijados

por el administrador—.

password (contraseña) Se encarga de mantener actualizado el elemento de autenti-

cación asociado a cada usuario —por ejemplo, su contraseña—. Acciones como

comprobar la fortaleza de una clave son típicas de este grupo.

session (sesión) En este grupo se engloban tareas que se deben llevar a cabo antes

de iniciarse el servicio y después de que este finalice. Es especialmente útil para

mantener registros de acceso o hacer accesible el directorio home del usuario.

Ampliación de sistemas operativos

Página 3

3. Arquitectura

Hasta ahora se ha estudiado cuál es la misión de PAM y qué grupos de tareas lleva a

cabo. Así que, la siguiente pregunta es: ¿cómo se organizan todas estas ideas?

La figura 1, extraída de [?], ilustra de forma clara su arquitectura.

+

+----------+

+----------------+
| application: X |
+----------------+
| authentication-[---->--\--] Linux-
|
|[conversation()][--+
|
+----------------+
|
|
|
|
|
A
|
|
|
+------|-----|---------+ -----+------+
+----------------+
|

+================+
|--<--| PAM config file|
|
|================|
[----<--/--]
| X auth .. a.so |
|
|
| X auth .. b.so |
+-n--n-----+
|
__|
_____/
|____,-----’

service user

|
|
A

PAM

|
V

/

\
/

|

|

|--[ a ]--[ b ]--[ c ]

acct....

auth....

+---u-----u----+
|
+--------------+
|
+--------------+
|
+--------------+
|
+--------------+

password

session

|--[ b ]--[ d ]

|--[ b ]--[ c ]

|--[ e ]--[ c ]

Figura 1: Arquitectura de Linux-PAM

Supóngase que una aplicación X quiere hacer uso de las facilidades ofrecidas por PAM.

Para ello, interactúa con la biblioteca de Linux-PAM, sin tener que conocer ningún detalle

acerca de como está configurado el sistema para la aplicación X. Será precisamente esta

biblioteca quien se encargue de leer la configuración de PAM para conocer qué política de

autenticación ha de aplicarse —combinando de forma conveniente una serie de módulos—.

Los módulos se colocan en una pila según el grupo de gestión y el orden en el que

aparecen en la configuración —un módulo puede pertenecer a varios grupos—, para ser
  • Links de descarga
http://lwp-l.com/pdf2274

Comentarios de: Pluggable Authentication Modules (PAM) (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad