Actualmente estoy comenzando un proyecto que evalúa programas no confiables (tareas de estudiantes) en un entorno seguro de sandbox. La idea principal es crear una aplicación web para GlassFish y Java wrapper alrededor de lxc-utils para administrar contenedores LXC. Tendrá una cola de programas en espera y un contenedor Java mantendrá un número fijo (grupo) de contenedores LXC, asignando a cada programa un contenedor (no utilizado).
Cada contenedor debe asegurarse con SELinux para proteger el sistema host.
Mi pregunta es: ¿es una buena idea crear dicho mecanismo para un entorno de espacio aislado o hay alguna solución mejor para este problema? Debe ser ligero y seguro contra la creatividad del estudiante.
Para ejecutar programas no confiables, los espacios de nombres de Linux siguen siendo la mejor solución. Es más fácil de configurar que KVM, y requiere menos recursos. Puede probar LXC, sin embargo, LXC se creó como un entorno limitado más genérico para ejecutar imágenes de distribución de Linux completas. Me vienen a la mente otros dos entornos limitados de espacios de nombres de Linux:
fuente