Los sistemas operativos GNU/Linux utilizan un modulo de acceso y autentificacion para sus usuarios. Dicho modulo se llama PAM, y es el encargado principal de verificar si un usuario en especifico puede o no ingresar al sistema con la contraseña proveida. PAM se maneja mediante modulos, cada modulo pertenece a una aplicacion en especifico y estos se pueden configurar y manejar....
PAM puede ser configurado de 2 maneras;
* Mediante la modificacion de un unico archivo (/etc/pam.conf)
La configuracion de cada servicio esta guardado en /etc/pam.conf. Sin embargo, por motivos de mantenimiento y usabilidad, este archivo no viene incluido en todas las distribuciones linux. De hecho existen aun distribuciones linux que no utilizan PAM (Como es el caso de Slackware).
* Mediante la configuracion de modulos dentro de un directorio (/etc/pam.d/)
Esta es la manera mas comoda y manejable, ya que cada servicio tiene su propio archivo de configuracion dentro de este directorio. De esta manera, cualquier modificacion o cambio solo afectaria a dicho servicio y no a todos los servicios. Por ejemplo, si quieres realizar cualquier cambio para el servidor SSHD basta con que edites el documento /etc/pam.d/sshd.
De ahi que PAM se califique como un sistema modular y no estructurado, ya que dispone de distintos modulos individuales para autentificacion de cada servicio. Cada archivo de configuracion esta basado en 4 componentes:
TYPE
Declara el tipo de servicio al cual se hace referencia. Los modulos de PAM son procesados como pilas. Diferentes tipos de modulos tiene diferentes propositos. Por ejemplo, un modulo chequea la veracidad de la contraseña insertada, otro modulo verifica la localidad desde donde un usuario esta accediendo (Su IP), entre otros
.
Este tipo de modulo tiene 3 submodulos:
ACCOUNT
Este tipo de modulo verifica si el usuario posee permisos para utilizar el servicio que esta solicitando.
PASSWORD
Este modulo se encarga de permitir el cambio o actualizacion de una contraseña.
SESSION
Este modulo es responsable de manejar y configurar las sessiones de usuarios. Este modulo inicia inmediatamente antes y despues de que la autentificacion del usuario fue validada, ademas que este modulo configura el perfil del usuario que ingresa al sistema (Como correos, limites del sistema, etc).
CONTROL
Verifica el comportamiento de PAM. Este modulo posee 3 submodulos:
REQUIRED
Un modulo con este mandato indica que es obligatorio que sea procesado antes de verificar la autentificacion de usuario.
REQUISITED
Funciona similar al modulo Required.
SUFFICIENT
Se activa cuando toda la verificacion de autentificacion ha sido validada. Ningun otro modulo es procesado si este paso fue satisfactorio.
OPTIONAL
Indica que no es importante si la verificacion fue validada o denegada, y no causa ninguna consecuencia en ninguno de los 2 casos. Este tipo de modulo se utiliza en casos de modulos que solo reflejan mensajes en pantalla, como por ejemplo el correo local del sistema.
Algunos modulos de PAM son configurables, los archivos de configuracion estan en /etc/security. Colocare como ejemplo la configuracion revelante al demonio SSHD. En el archivo de configuracion de PAM referente al demonio SSHD, esta indicado como "requisite"=mandatorio, los submodulos
pam_env.conf
y
limits.conf
.
Como se esto? simple, si observamos el archivo de configuracion de SSHD en PAM
/etc/pam.d/sshd.
Podemos ver lo siguiente:
#%PAM-1.0
auth requisite pam_nologin.so
auth include common-auth
account requisite pam_nologin.so
account include common-account
password include common-password
session required pam_loginuid.so
session include common-session
Presta atencion al que esta sombreado de rojo, ya que en el proceso de verificacion de autentificacion "auth include" indica que es mandatorio la inclusion de ese o esos archivos. Y si leemos lo que viene dentro de common-auth tenemos:
auth required pam_env.so
auth required pam_unix2.so
Y si leemos lo que viene dentro de Common-Account:
account required pam_unix2.so
Y si leemos lo que viene dentro de Common-Session:
session required pam_limits.so
session required pam_unix2.so
session optional pam_umask.so
Etc. Esta explicacion es para que vayas comprendiendo, que PAM al incluir otro archivo de configuracion en un archivo de configuracion, verifica los demas modulos y sus mandatos, dependiendo si el tipo de solicitud es "required" o no.
Conociendo la manera como trabaja PAM con sus instrucciones y modulos, tendras una idea mas clara sobre que editar y como, ya que cualquier mal paso o ediccion erronea podria llevar a dicho servicio referente al modulo que editaste a no permitirte acceder a el, aun utilizando la contraseña correcta. Asi que hay que ser cuidadosos a la hora de editar un modulo en PAM, no debes tener miedo sino cuidados. Si quieres saber mas sobre PAM, te recomiendo leer en el directorio
/usr/share/doc/packages/pam.
No hay comentarios:
Publicar un comentario