viernes, 22 de marzo de 2013

Controlar el número de procesos en ejecución

Fork_bomb

Uno de los principales problemas de los sistemas operativos actuales es la gran cantidad de procesos que necesitan para su funcionamiento, tanto en Linux como en Windows. La ejecución de un elevado número de procesos puede tener nefastas consecuencias para nuestro equipo, comenzando por un comportamiento inestable del sistema operativo hasta sufrir un ataque informático mediante una bomba fork.

Una bomba fork  es un ataque basado en la saturación del sistema operativo, para ello se van creando procesos masivamente  hasta llegar a la saturación del sistema operativo completamente.  Impidiendo de esta forma el funcionamiento correcto del sistema operativo, ralentizándolo y llegando en casos mas extremos  a volverlos inutilizables por falta de memoria en el equipo.

Aunque no suele ser habitual recibir un ataque de estas características, puede provocar graves problemas en nuestro equipo. Por ello debemos tomar una serie de medidas para evitar en la medida de lo posible el ataque mediante bombas fork.

Para evitar un ataque mediante una bomba fork basta con limitar el número de procesos máximos que se pueden ejecutar, de esta forma evitaremos que nuestro sistema operativo se colapse. En Linux podemos realizar dicha limitación de una forma sencilla y rápida, tanto para usuarios concretos como de forma general, mediante la modificación del fichero limits.conf.

Antes de realizar la modificación del fichero, debemos realizar unos consultas previas para determinar el número de procesos máximo que puede ejecutar nuestro sistema, así como el número de procesos que necesita nuestro sistema operativo para funcionar correctamente. Para ello debemos abrir un shell de Linux y ejecutar los siguientes comandos:

ulimit –u nos devuelve el número máximo de procesos que permite nuestro sistema operativo.

  ps aux | wc –l  nos informa del número de procesos que se están ejecutando en nuestro equipo.

Conociendo estos dos datos, podemos hacernos una idea del número de procesos que necesita nuestro sistema operativo para funcionar con normalidad  y así podremos fijar un tope de procesos máximo, sin llegar al máximo permitido ya que en tal caso saturaría el sistema.

Dado que ya conocemos los datos necesarios, con los comandos anteriores, ya podemos realizar la modificación del fichero limits.conf. Podemos localizarlo en la ruta /etc/security y para poder modificarlo debemos editarlo con los permisos de root. Debemos insertar al final del fichero una línea o varias con el siguiente formato

<dominio><tipo><item><valor>

<dominio>  indica el usario o grupos de usuarios que deseamos limitar,  si quieres limitar todos los usuarios y grupos.

<tipo> tiene dos posibilidades, soft para limitaciones suaves o hard para limitaciones duras, sin posibilidad de cambio.

<valor> dispone de gran cantidad de opciones pero la que nos interesa es nproc que controla el número máximo de procesos.

<limite> indicamos el número máximo de procesos permitidos.

Aunque puede resultar algo complicado, es bastante sencillo, veamos algunos ejemplos  para comprobarlo:

               hard  nproc 500
             @user hard nproc 890

Las anteriores instruccions limitan a 500 y 890 el número de procesos activos, en el primer caso para todos los usuarios y en el segundo solamente la limitación afecta a los usuarios del grupo @user.

Una vez tengamos modificado el fichero limits.conf debemos reiniciar el sistema para que los cambios realizados entren en vigor, una vez reiniciado podemos comprobar si los cambios se han realizado para ello ejecutaremos el comando ulimit – u

Tags de búsquedas:

formatear el ordenador con linux,limitar número de procesos

No hay comentarios:

Publicar un comentario

Registrate y Recibe noticias directo a tu correo, te invito a comentar las publicaciones