Je démarre actuellement un projet d'évaluation de programmes non approuvés (affectations d'étudiants) dans un environnement sandbox sécurisé. L'idée principale est de créer une application web pour les emballages GlassFish et Java autour de lxc-utils pour gérer les conteneurs LXC. Il aura une file d'attente de programmes en attente et un wrapper Java maintiendra un nombre fixe (pool) de conteneurs LXC, attribuant à chaque programme un conteneur (inutilisé).
Chaque conteneur doit être sécurisé avec SELinux pour protéger le système hôte.
Ma question est: est-ce une bonne idée de créer un tel mécanisme pour un environnement sandbox, ou existe-t-il une meilleure solution appropriée à ce problème? Il doit être léger et protégé contre la créativité des étudiants.
Pour exécuter des programmes non fiables, les espaces de noms Linux restent la meilleure solution. Il est plus facile à configurer que KVM et nécessite moins de ressources. Vous pouvez essayer LXC, mais LXC a été conçu comme un sandbox plus générique pour exécuter des images de distribution Linux complètes. Deux autres sandbox d'espaces de noms Linux viennent à l'esprit:
la source