Hola,
¿Existe alguna forma de permitir únicamente la ejecución de un listado de binarios en Linux?
Es decir, lo que busco es un sistema para permitir únicamente la ejecución de determinados servicios/aplicaciones y el resto no permitir su ejecucción, algo así como un firewall con una lista blanca de binarios permitidos (por rutas al fichero, MD5, etc.) y para el resto -j DROP ;)
He encontrado varios proyectos, como por ejemplo "ninja" [1], pero se basan en procesos que ya están en ejecucción, es decir: se saca un listado procesos y si alguno de ellos no pertenece al listado se envía un "kill -X".
El problema de este mecanismo es que el proceso llega a iniciarse, lo que estoy buscando es que no llegue a ejecutarse a no ser que esté explicitamente en la lista blanca y/o similar, ¿Existe algo en Linux que permita hacer esto, quizás con SELinux sería posible? thanks!
Saludos,
[1] http://forkbomb.org/ninja/
El 10 de mayo de 2010 13:13, Santi Saez santisaez@woop.es escribió:
Hola,
¿Existe alguna forma de permitir únicamente la ejecución de un listado de binarios en Linux?
Es decir, lo que busco es un sistema para permitir únicamente la ejecución de determinados servicios/aplicaciones y el resto no permitir su ejecucción, algo así como un firewall con una lista blanca de binarios permitidos (por rutas al fichero, MD5, etc.) y para el resto -j DROP ;)
He encontrado varios proyectos, como por ejemplo "ninja" [1], pero se basan en procesos que ya están en ejecucción, es decir: se saca un listado procesos y si alguno de ellos no pertenece al listado se envía un "kill -X".
El problema de este mecanismo es que el proceso llega a iniciarse, lo que estoy buscando es que no llegue a ejecutarse a no ser que esté explicitamente en la lista blanca y/o similar, ¿Existe algo en Linux que permita hacer esto, quizás con SELinux sería posible? thanks!
Saludos,
[1] http://forkbomb.org/ninja/
Santi Saez http://woop.es
Con Selinux podrias llegar a eso :)
Saludos.
Atte. César Sepúlveda Barra.
El 11/05/10 0:57, César Sepúlveda escribió:
¿Existe alguna forma de permitir únicamente la ejecución de un listado de binarios en Linux? Es decir, lo que busco es un sistema para permitir únicamente la ejecución de determinados servicios/aplicaciones y el resto no permitir su ejecucción, algo así como un firewall con una lista blanca de binarios permitidos (por rutas al fichero, MD5, etc.) y para el resto -j DROP ;)
(..)
Con Selinux podrias llegar a eso :)
Hola Cesar :)
¿Tendrías a mano algún ejemplo/tutorial por donde empezar?
En todos los manuales de SELinux que ya había ojeado no se hace referencia a ninguna funcionalidad de este tipo.. por lo que algún ejemplo de referencia me sería de gran ayuda.
Saludos,
El 10 de mayo de 2010 19:13, Santi Saez santisaez@woop.es escribió:
Hola,
¿Existe alguna forma de permitir únicamente la ejecución de un listado de binarios en Linux?
Es decir, lo que busco es un sistema para permitir únicamente la ejecución de determinados servicios/aplicaciones y el resto no permitir su ejecucción, algo así como un firewall con una lista blanca de binarios permitidos (por rutas al fichero, MD5, etc.) y para el resto -j DROP ;)
He encontrado varios proyectos, como por ejemplo "ninja" [1], pero se basan en procesos que ya están en ejecucción, es decir: se saca un listado procesos y si alguno de ellos no pertenece al listado se envía un "kill -X".
El problema de este mecanismo es que el proceso llega a iniciarse, lo que estoy buscando es que no llegue a ejecutarse a no ser que esté explicitamente en la lista blanca y/o similar, ¿Existe algo en Linux que permita hacer esto, quizás con SELinux sería posible? thanks!
Saludos,
[1] http://forkbomb.org/ninja/
Santi Saez http://woop.es _______________________________________________ CentOS-es mailing list CentOS-es@centos.org http://lists.centos.org/mailman/listinfo/centos-es
Una opción es usar un usuario sin privilegios, lo añades a sudo y en la configuración de sudo permitir solo los binarios que necesites.
El 11/05/10 10:51, Felipe Gordillo escribió:
Hola Felipe!
Una opción es usar un usuario sin privilegios, lo añades a sudo y en la configuración de sudo permitir solo los binarios que necesites.
Gracias por el tip, es buena idea pero solo cubre una parte del problema, el usuario root va a poder seguir ejecutando cualquier binario, y es otra parte que se quiere evitar ;)
On Tue, 2010-05-11 at 11:14 +0200, Santi Saez wrote:
Gracias por el tip, es buena idea pero solo cubre una parte del problema, el usuario root va a poder seguir ejecutando cualquier binario, y es otra parte que se quiere evitar ;)
anula la posibilidad q el usuario root se pueda loguear al sistema poniendole un password inusable (! en /etc/shadow)
de todas maneras siempre necesitaras un usuario con privilegios de superusuario para poder arreglar cualquier problema q se presente.
-- Yonsy Solis aka Black Hand
El 11/05/10 12:35, BlackHand escribió:
Hola!
anula la posibilidad q el usuario root se pueda loguear al sistema poniendole un password inusable (! en /etc/shadow)
de todas maneras siempre necesitaras un usuario con privilegios de superusuario para poder arreglar cualquier problema q se presente.
Vaya, esta solución tampoco sirve, ya que root y el resto de usuarios deben convivir y ejecutar aplicaciones (la famosa "lista blanca"), pero de ese listado ninguno de los 2 grupos se debería poder salir ;)
El compañero Cesar, ha comentado que sería posible hacerlo con SELinux, a ver si nos arroja algo de luz o algún ejemplo ;)
Muchas gracias a todos por las sugerencias que estaís enviando :)