2016-10-03 10:27:18 +00:00
|
|
|
\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
|
2016-10-05 09:13:56 +00:00
|
|
|
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
|
2016-10-03 10:27:18 +00:00
|
|
|
|
|
|
|
|
|
|
|
## 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 <virli@nemunai.re>, 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
|