Nexolinux
Sistemas Linux, servidores web, certificaciones, LPIC, Linux básico y profesional
Navigation
  • Home
  • Bash
  • LPIC
  • Noticias
  • Seguridad
  • Servicios
  • HowTo’s
You are here: Home › LPIC › Autenticación PAM en Linux, Elevando la seguridad.

Autenticación PAM en Linux, Elevando la seguridad.

7 marzo, 2013 | Filed under: LPIC, Seguridad and tagged with: /etc/pam.conf, /etc/pam.d, autenticacion linux, lpi pam, pam linux, servidor, servidores

PAM (Pluggable Authentication Modules) es un mecanismo flexible para la autenticación de usuarios centralizado. Permite modelar políticas de seguridad personalizada dependiendo el servicio para distintos usuarios.

Red hat lo implementa por defecto en su sistema. Permite el desarrollo de programas independientes del mecanismo de autenticación que utilicemos, es un refuerzo de estos como por ejemplo del clásico /etc/passwd que cifra la contraseña en el /etc/shadow

Grupos de gestión.

Se puede dividir la gestión en grupos independientes.

account: tareas no relacionadas con la autenticación. Como permitir o denegar el acceso en función de un horario, recursos o ubicación geográfica.

authentication: tareas encaminadas a comprobar el usuario. Es la tarea más genérica y la que más identifica a PAM

password: Mantiene actualizado el elemento autenticador de cada usuario, como por ejemplo su contraseña. Se comprueba la fortaleza y que cumpla las políticas definidas, longitud, tipo de caracteres, repeticiones, descartar palabras de diccionario.

sesion: Engloba tareas que se deben llevar a cabo antes del inicio del servicio y cuando finaliza.

1 – Ficheros de configuración

El fichero de configuración por defecto es el /etc/pam.conf pero también podemos configurar cada servicio (lo más aconsejado) de forma individual en el /etc/pam.d, como es habitual si modificamos el .conf, haremos backup con fecha del mismo por si nos surgen problemas. Siempre la configuración modular es más recomendable.

La diferencia más notable es que en el pam.conf hay que indicar el servicio, mientras que en el pam.d el fichero se llama con el mismo nombre del servicio que implementa, siendo más intuitivo y más fácil de administrar.

Este es el listado de un fichero de ejemplo

root@nexolinux ~ # ls /etc/pam.d/
atd gdmsetup pm-suspend sshd system-config-network
authconfig gnome-screensaver pm-suspend-hybrid su system-config-network-cmd
authconfig-gtk gnome-system-log poweroff sudo system-config-printer
authconfig-tui gssftp ppp sudo-i system-config-rootpassword
chfn halt pup su-l system-config-securitylevel
chsh kbdrate reboot system-auth system-config-selinux
config-util kshell remote system-auth-ac system-config-services
cpufreq-selector ksu rhn_register system-cdinstall-helper system-config-soundcard
crond login run_init system-config-authentication system-config-time
cups neat runuser system-config-date system-config-users
cvs newrole runuser-l system-config-display system-install-packages
dateconfig other sabayon system-config-kdump vmtoolsd
eject passwd serviceconf system-config-keyboard xserver
ekshell pirut setup system-config-language
gdm pm-hibernate smtp system-config-lvm
gdm-autologin pm-powersave smtp.sendmail system-config-netboot

2- Reglas

Los ficheros de configuracion tienen una serie de reglas, una por línea. Se ignoran las que comienzan por el clásico «#» y pueden ser varias a la vez con «\»

Siguen esta nomenclatura:

servicio tipo control ruta [argumentos]

Un detalle, los campos rutas y argumentos respetan mayúsculas, el resto no.
Este es un ejemplo del fichero sudo:

root@nexolinux ~ # cat /etc/pam.d/sudo
#%PAM-1.0
auth include system-auth
account include system-auth
password include system-auth
session optional pam_keyinit.so revoke
session required pam_limits.so

 

2.1 Servicio

Nombre de la aplicación o servicio, sólo se usa en el fichero pam.conf

2.2 Tipo

Pam se divide en las cuatro tareas vistas anteriormente, tipo define en cual definimos la regla. auth,account, session o password.

2-3 Control

Indica a PAM que hacer en caso de éxito/fallo, se ejecutan en serio todos los del mismo tipo y ese orden (lee las reglas de arriba a a abajo, se denomina «pila») hay que tenerlo muy en cuenta a la hora de configurarlo Se pueden usar dos sintaxis:

Una sóla palabra o una más compleja que implica valor-acción

La sencilla la dividimos en cuatro valores:

2.3.1 required – Indica que es necesario que el módulo tenga éxito para que la pila lo tenga. Si hay fallo no lo veremos hasta que se procese el resto

2.3.2 requisite – Es igual que el anterior pero en caso de fallo nos devuelve a la aplicación.

2.3.3 sufficient – si en los anteriores no se ha producido fallo, da el visto bueno. A partir de este punto ignora los siguientes required posibles.

2.3.4 optional – PAM ignora los módulos marcados por este indicador, salvo si no se llega a ningún valor en concreto de éxito o fracaso.

La otra sintaxis es más complicada [valor=accion]

2.3.4.1 Valor (algunos ejemplos):

Se escriben sin el prefijo PAM_ y en minúscula.

PAM_AUTH_ERR – error de autenticación

PAM_MAXTRIES – alcanzado número máximo de intentos

PAM_USER_UNKNOW – nombre de usuario desconocido

PAM_ACCT_EXPIRED – cuenta de usuario expirada.

PAM_PERM_DENIED – permiso denegado.

2.3.4.2  Accion puede ser un número «n» o lo siguiente:

– ignore, si el valor es N se ignora.

– bad, si es el primer módulo en fallar, el valor que devuelva la pila será este módulo.

– die, equivalente al anterior, pero devuelve el control a la aplicación de inmediato.

– ok, si hasta este momento tiene éxito la lectura de la pila. El código será sobreescrito por este módulo.

– done, funciona como el anterior, pero llegado a este punto devuelve el control a la aplicación.

– reset, olvida el estado de la pila y sigue con el siguiente módulo.

Respecto al número «n» indica que deben saltarse los siguientes «n» módulos.

Por último esta es la tabla de equivalencias entre la sintaxis de control sencillo y control complejo:

required equivale a [success=ok newauthok_reqd=ok ignore=ignore default=bad].
requisite equivale a [success=ok newauthok_reqd=ok ignore=ignore default=die].
sufficient equivale a [success=done new_authok_reqd=done default=ignore].
optional equivale a [success=ok new_authtok_reqd=ok default=ignore].

2.4 Ruta

Contiene la ruta del módulo a utilizar, una ruta absoluta, o relativa a /lib/security

2.5 Argumentos.

Argumentos que pueden ser pasados al módulo. Específicos para cada módulo y deberían estar documentados.

Comparte esto:

  • Facebook
  • Twitter
  • LinkedIn

Me gusta esto:

Me gusta Cargando...

Deja un comentarioCancelar respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Categorías.

  • Bases de datos
  • Bash & Comandos
  • HowTo
  • Linux General
  • LPIC
  • LPIC-2
  • Nivel Avanzado
  • Nivel Basico
  • Noticias
  • Seguridad
  • Servicios
  • Servidor Web

Entradas y Páginas Populares

  • Comando fuser, Localizamos procesos que usan un fichero.
    Comando fuser, Localizamos procesos que usan un fichero.
  • Ejemplos usos mount y umount
    Ejemplos usos mount y umount
  • Ficheros de usuarios /etc/passwd y /etc/shadow
    Ficheros de usuarios /etc/passwd y /etc/shadow
  • Instruccion READ en Bash
    Instruccion READ en Bash
  • ¿Cómo cifra linux las contraseñas?
    ¿Cómo cifra linux las contraseñas?
  • Proxy Squid, control de accesos ACL (II)
    Proxy Squid, control de accesos ACL (II)
  • 15 dispositivos que funcionan con Linux
    15 dispositivos que funcionan con Linux
  • fichero fstab
    fichero fstab
  • HowTo:Ejecutar comando como otro usuario.
    HowTo:Ejecutar comando como otro usuario.
  • Comandos más usados para gestionar Iptables
    Comandos más usados para gestionar Iptables

© 2025 Nexolinux

Utilizamos cookies propias y de terceros para mejorar nuestros servicios y mostrar publicidad relacionada con tus preferencias. cerrar Política de cookies
Privacidad y política de cookies

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
Siempre activado
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Non-necessary
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
GUARDAR Y ACEPTAR
%d