Limitación y monitorización de usuarios


Limitación de usuarios

Existen muchas cosas malas que puede hacer un usuario a un sistema si tiene la cuenta de shell interactiva. También existen muchas formas de evitar que esto ocurra. Las cuotas de usuario de utilización del disco, de CPU, etc. son un buen punto de partida, también pueden ayudar técnicas de monitorización más avanzadas, como monitorizar a usuarios con amplios entornos, etc. Una de las cosas más simples que puede hacer un usuario es ocupar toda la memoria lanzando múltiples copias de un programa que se coma la memoria, o utilizar todos los descriptores de ficheros con una "bomba fork".

PAM

La mayoría de los Linux modernos vienen con soporte PAM, y una de las cosas que proporciona PAM es la configuración de entorno. Configuraciones tales como limitar la cantidad de memoria que le está permitido utilizar al usuario. En Red Hat y Caldera se configura desde el directorio /etc/security , el cual contiene un determinado número de ficheros. El fichero más interesante es: /etc/security/limits.conf, que permite definir reglas para usuarios o grupos, ya sea una regla "soft" o "hard" (información sobre esto más adelante), y a qué se le aplica la regla, que puede ser CPU, memoria, tamaño máximo de fichero, etc. Por ejemplo:

* hard core 0

pepe soft nproc 100

pepe hard nproc 150

La primera regla deshabilita los core dumps para cualquiera, la segunda regla establece un límite soft para pepe de 100 procesos, y la tercera establece un límite hard para pepe de 150 procesos. Un límite soft se sobrepasar, suele ser una nota de advertencia, el límite hard no se puede sobrepasar. Como te puedes imaginar es bastante útil puesto que se le aplica a todos los logins de shells, y a otros servicios como ftp.

Bash

El bash viene con un limitador interno, al que se accede mediante ‘ulimit’. No se puede configurar más alto cualquier límite hard, de forma que si se tiene definido un límite en /etc/profile o en el fichero .bash_profile (suponiendo que no puedan borrar / editar esos ficheros) se pueden reforzar los límites de los usuarios de shell Bash. Esto es útil para distribuciones obsoletas que carecen de soporte PAM. También habrá que asegurarse de que el usuario no puede cambiar su shell de login. Configurar los límites es parecido al método de PAM. Se definen varios como:

ulimit –Sc 0

ulimit –Su 100

ulimit –Hu 150

Con estas tres reglas se conseguirían los mismos resultados que con el ejemplo PAM. La primera regla deshabilita los core dumps, la segunda establece un límite soft de 100 procesos y la tercera un límite hard de 150 procesos. Más información sobre ulimit disponible tecleando "help ulimit" desde el intérprete de shell.

Quota

La cuota es un sistema para restringir la utilización del disco por parte de los usuarios. Viene con la mayoría de las distribuciones y se encuentra disponible la ayuda mediante "man quota".

Monitorización de usuarios

Una tarea típica en la mayoría de servidores de shells es asegurarse de que los usuarios no abusan del servidor. Es algo bastante sencillo de monitorizar en cuanto a los recursos standard (como uso del disco duro, uso de CPU, etc.) sin embargo uno de los abusos más frecuentes es el de ancho de banda, aunque afortunadamente existe una variedad de métodos de monitorizar tal abuso.

ttysnoop

Por supuesto que todo esto va bien mientras no vaya mal. Pero qué pasa si realmente se quiere monitorizar lo que está haciendo un usuario (estás advertido, esto tiene implicaciones legales que pueden buscarte problemas, primero consulta con tus abogados). Es aquí donde entra en juego el ttysnoop. El ttysnoop te permite monitorizar lo que está haciendo un usuario y grabarlo. Se puede conseguir en: http://uscan.cjb.net

UserIPAcct

UserIPAcct te permite monitorizar el uso de ancho de banda por usuario, lo cual implica parchear el kernel y configurar las reglas (un concepto similar al del cortafuegos) para monitorizar la cantidad de datos que pueden enviar o recibir los programas de un usuario. Sin embargo, no se pueden contabilizar los datos para conexiones PPP, puesto que el demonio PPP no se ejecuta bajo el mismo nombre de usuario (aunque se podría modificar para que así lo hiciera). Lo recomendaría en servidores de shells para monitorizar a los usuarios (generalmente, sólo una pequeña minoría hará un uso excesivo). El paquete completo se puede descargar de: http://zaheer.grid9.net/useripacct/


Volver


Copyright © 1999, Kurt Seifried, José Antonio Revilla

Todos los derechos reservados.