viernes, 16 de septiembre de 2011

Limites de usuarios con PAM en GNU Linux

Casi todas las distribuciones GNU/Linux vienen con soporte PAM (Pluggable Authentication Modules) haciéndolo universalmente disponible. PAM limits provee una simple y estandarizada interfaz para aplicar límites a los usuarios, en vez de tener que escribir ficheros de configuración bash complejos (como /etc/profile) simplemente editamos el fichero /etc/security/limits.conf. Como es algo más complejos aplicar limites de forma selectiva a través del shell, con PAM aplicar dihcos limites de forma global, en gurpos o usuarios individuales es muy simple. 

Para habilitar PAM limits necesitamos agregar (si es que no existe) la siguiente línea al fichero /etc/pam.d/sshd:
$ sudo nano /etc/pam.d/sshd

session required /lib/security/pam_limits.so

Podemos entonces definir los límites, que regularmente se configuran en el fichero /etc/security/limits.conf u otra ubicación similar. Debido a que la mayoría de estos límites son realizados por el shell el sistema no puede registrar todas las violaciones de dichos límites (se nos notificará en syslog cuando un usuario exceda el número de veces que está permitido loguearse, sin embargo no se recibe una advertencia si el usuario intenta usar más espacio en disco del que tiene permitido). Esta última parte es un trabajo excelente para Quotas.

Los límites disponibles son:

core -- Limits the core file size (KB); usually set to 0 for most users to prevent core dumps.
data -- Maximum data size (KB).
fsize -- Maximum file size (KB).
memlock -- Maximum locked-in-memory address space (KB).
nofile -- Maximum number of open files.
rss -- Maximum resident set size (KB).
stack -- Maximum stack size (KB).
cpu -- Maximum CPU time (MIN).
nproc -- Maximum number of processes.
as -- Address space limit.
maxlogins -- Maximum number of logins for this user or group.
priority -- The priority to run user process with.

Los límites pueden aplicarse a usuario por su nombre, por grupos usando la sintaxis "@group" o de forma global usando asterisco "*".

Como ejemplo, podemos limitar el número de veces que un usuario puede loguearse es muy recomendable para la mayoría de situaciones los usuarios no necesitan loguearse en un servidor más de una vez, y permitirles hacer eso consume más recursos de lo adecuado. Entonces este límite nos permite detectar actividades sospechosas, si los usuarios saben que pueden loguearse solo una vez, varios intentos de logueo pueden verse como una actividad sospechosa (como un atacante con un password robado tratando de accesar la cuenta ya en uso).

Esto lo haremos agregando la siguiente línea para todo un grupo de usuarios:

$ sudo nano /etc/security/limits.conf

@users hard maxlogins 1

O para un usuario en particular (fraterneo)

fraterneo hard maxlogins 2

Fuente: Linux Poison


Artículos relacionados



Widget by Hoctro | Jack Book

0 comments:

Publicar un comentario