\newpage Projet et rendu =============== ## Sujet Vous allez commencer aujourd'hui un projet qui s'étendra au prochain TP et qui consistera à réaliser la partie d'isolation de la moulinette des ACUs ! Cette semaine, il faudra faire en sorte de restreindre un groupe de processus pour qu'il ne puisse pas faire de déni de service sur notre machine. Il n'y a pas de restriction sur le langage utilisé, vous pouvez tout aussi bien utiliser du C, du C++, du Python, etc. L'usage de bibliothèques **non relatives** au projet est autorisé : le but de ce sujet est d'évaluer votre compréhension et votre utilisation de la tuyauterie bas-niveau du noyau liée à la virtualisation légère, à partir du moment où vous n'utilisez pas une bibliothèque qui abstrait complètement cette plomberie, n'hésitez pas à l'utiliser ! Gardez en tête que ce projet sera à continuer au prochain TP, où il sera principalement question de faire des appels système. ### Stage 1 : Restreindre l'environnement Après avoir mis en place les bases de votre programme, ### Stage 2 : Réduire les capabilities ### Stage 3 : Script d'initialisation ### Stage 4 : Utilisable par un utilisateur Une autre solution ### Stage 5 : Création de l'environnement d'exécution Plutôt que d'utiliser votre système hôte complet, il faudrait utiliser un système contenant le struct minimum. ### Stage 6 : Isolation du pauvre Nous n'avons pas encore vu de meilleure méthode pour mieux isoler l'environnement que de faire un `chroot`, ajouter à votre programme cette isolation rudimentaire. ### Stage 7 (bonus) : automatisation de l'environnement LVM ## Modalité de rendu Un service automatique s'occupe de réceptionner vos rendus, de faire les vérifications nécessaires et de vous envoyer un accusé de réception (ou de rejet). Ce service écoute sur l'adresse , c'est donc à cette adresse et exclusivement à celle-ci que vous devez envoyer vos rendus. Tout rendu envoyé à une autre adresse et/ou non signé et/ou reçu après la correction ne sera pas pris en compte. ## Tarball Tous les fichiers identifiés comme étant à rendre pour ce TP sont à placer dans une tarball (pas d'archive ZIP, RAR, ...). Les réponses aux questions sont à regrouper dans un fichier `questions.txt` à placer à la racine de votre rendu. Voici une arborescence type: ``` login_x-TP3/questions.txt login_x-TP3/ ``` ## Astuces