Edit a subject
This commit is contained in:
parent
330199cf24
commit
cad67995ae
14 changed files with 156 additions and 288 deletions
|
@ -1,4 +1,4 @@
|
|||
SOURCES = tutorial.md installation.md chroot.md pseudofs.md capabilities.md cgroups.md project.md
|
||||
SOURCES = tutorial.md installation.md chroot.md pseudofs.md capabilities.md cgroups.md project-intro.md project-body.md project-rendu.md
|
||||
PANDOCOPTS = --latex-engine=xelatex \
|
||||
--standalone \
|
||||
--normalize \
|
||||
|
|
|
@ -1,35 +1,3 @@
|
|||
\newpage
|
||||
|
||||
Projet et rendu
|
||||
===============
|
||||
|
||||
Les exercices de ce TP ne sont pas à rendre.
|
||||
|
||||
|
||||
## Sujet
|
||||
|
||||
**Ce projet, étalé sur ce TP et le TP suivant, constitue le cœur de la notation
|
||||
de ce cours.**
|
||||
|
||||
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, du shell, 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 (2 points)
|
||||
|
||||
Après avoir mis en place les bases de votre programme, commencez par créer les
|
||||
|
@ -116,32 +84,3 @@ L'usage est laissé à votre discrétion : vous pouvez ajouter un/des paramètre
|
|||
votre moulette pour indiquer le volume LVM à utiliser ou le définir en dur ou
|
||||
encore séparer la création de l'environnement et de la snapshot initiale dans
|
||||
un programme distinct.
|
||||
|
||||
|
||||
## 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/mymoulette/README
|
||||
login_x-TP3/mymoulette/...
|
||||
```
|
30
tutorial/3/project-intro.md
Normal file
30
tutorial/3/project-intro.md
Normal file
|
@ -0,0 +1,30 @@
|
|||
\newpage
|
||||
|
||||
Projet et rendu
|
||||
===============
|
||||
|
||||
Les exercices de ce TP ne sont pas à rendre.
|
||||
|
||||
|
||||
## Sujet
|
||||
|
||||
**Ce projet, étalé sur ce TP et le TP suivant, constitue le cœur de la notation
|
||||
de ce cours.**
|
||||
|
||||
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, du shell, 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.
|
27
tutorial/3/project-rendu.md
Normal file
27
tutorial/3/project-rendu.md
Normal file
|
@ -0,0 +1,27 @@
|
|||
## 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/mymoulette/README
|
||||
login_x-TP3/mymoulette/...
|
||||
```
|
|
@ -1,4 +1,4 @@
|
|||
SOURCES = tutorial.md mount.md namespaces.md networkns.md pidns.md mountns.md userns.md project.md
|
||||
SOURCES = tutorial.md mount.md namespaces.md networkns.md pidns.md mountns.md userns.md project-intro.md project-body.md project-rendu.md sondage.md
|
||||
PANDOCOPTS = --latex-engine=xelatex \
|
||||
--standalone \
|
||||
--normalize \
|
||||
|
|
|
@ -1,30 +1,4 @@
|
|||
\newpage
|
||||
|
||||
Projet et rendu
|
||||
===============
|
||||
|
||||
## Sujet
|
||||
|
||||
**Ce projet, étalé sur ce TP et le TP précédent, constitue le cœur de la
|
||||
notation de ce cours.**
|
||||
|
||||
Vous allez continuer aujourd'hui le projet qui s'étendra depuis le TP précédent
|
||||
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 s'exécute indépendemment de votre système.
|
||||
|
||||
Il n'y a pas de restriction sur le langage utilisé, vous pouvez tout aussi bien
|
||||
utiliser du C, du C++, du Python, du shell, 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 !
|
||||
|
||||
|
||||
### Stage 5 : Une vraie isolation
|
||||
### Stage 5 : Une vraie isolation (3 points)
|
||||
|
||||
En plus du `chroot`, assignez de nouveaux namespaces au processus que vous
|
||||
allez lancer : CGroups, IPC, mount, net, PID, UTS, user.
|
||||
|
@ -35,7 +9,7 @@ namespaces !
|
|||
Astuce : `unshare(2)`.
|
||||
|
||||
|
||||
### Stage 6 : Empêcher les fuites d'information
|
||||
### Stage 6 : Empêcher les fuites d'information (2 points)
|
||||
|
||||
Démonter tous les sytèmes de fichiers qui ne sont pas nécessaire au
|
||||
fonctionnement de votre conteneur et remontez les partitions
|
||||
|
@ -46,7 +20,7 @@ est nécessaire pour terminer l'étape d'isolation.
|
|||
Astuce : `mount(2)`.
|
||||
|
||||
|
||||
### Stage 7 : Identification du conteneur
|
||||
### Stage 7 : Identification du conteneur (1 point)
|
||||
|
||||
Maintenant que vous avez votre conteneur, personalisez-le un peu en lui donnant
|
||||
un nom unique.
|
||||
|
@ -54,7 +28,7 @@ un nom unique.
|
|||
Astuce : `sethostname(2)`
|
||||
|
||||
|
||||
### Stage 8 : `pivot_root`
|
||||
### Stage 8 : `pivot_root` (4 points)
|
||||
|
||||
Effectuer un `pivot_root(2)` de telle sorte qu'il ne reste plus de trace du
|
||||
système de fichiers hôte.
|
||||
|
@ -62,7 +36,7 @@ système de fichiers hôte.
|
|||
Astuce : `pivot_root(2)`, `umount(2)`.
|
||||
|
||||
|
||||
### Stage 9 : Bac à sable connecté
|
||||
### Stage 9 : Bac à sable connecté (4 points)
|
||||
|
||||
Partant d'une liste d'interfaces sur la machine hôte similaire à :
|
||||
|
||||
|
@ -103,7 +77,7 @@ Astuces : vous pouvez utiliser la `libnetlink(3)` ou même faire des appels aux
|
|||
programmes `ip(8)`, `brctl(8)`, ...
|
||||
|
||||
|
||||
### Stage 10 (bonus) : seccomp
|
||||
### Stage 10 (bonus) : seccomp (2 points)
|
||||
|
||||
Filtrez les appels systèmes de telle sorte qu'aucun programme exécuté dans
|
||||
votre bac à sable ne puisse plus appeler les appels systèmes suivants :
|
||||
|
@ -113,33 +87,3 @@ votre bac à sable ne puisse plus appeler les appels systèmes suivants :
|
|||
* `pivot_root(2)`.
|
||||
|
||||
Astuce : `seccomp(2)`.
|
||||
|
||||
|
||||
## 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
|
||||
|
||||
Le projet à rendre pour ce cours est à placer dans une tarball (pas d'archive
|
||||
ZIP, RAR, ...).
|
||||
|
||||
Voici une arborescence type:
|
||||
|
||||
```
|
||||
login_x-mymoulette/README
|
||||
login_x-mymoulette/...
|
||||
```
|
||||
|
||||
## Sondage
|
||||
|
||||
Afin de me permettre d'améliorer ce cours, je vous invite à répondre à
|
||||
[ces quelques questions](https://virli.nemunai.re/survey/). Merci d'avance !
|
24
tutorial/4/project-intro.md
Normal file
24
tutorial/4/project-intro.md
Normal file
|
@ -0,0 +1,24 @@
|
|||
\newpage
|
||||
|
||||
Projet et rendu
|
||||
===============
|
||||
|
||||
## Sujet
|
||||
|
||||
**Ce projet, étalé sur ce TP et le TP précédent, constitue le cœur de la
|
||||
notation de ce cours.**
|
||||
|
||||
Vous allez continuer aujourd'hui le projet qui s'étendra depuis le TP précédent
|
||||
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 s'exécute indépendemment de votre système.
|
||||
|
||||
Il n'y a pas de restriction sur le langage utilisé, vous pouvez tout aussi bien
|
||||
utiliser du C, du C++, du Python, du shell, 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 !
|
23
tutorial/4/project-rendu.md
Normal file
23
tutorial/4/project-rendu.md
Normal file
|
@ -0,0 +1,23 @@
|
|||
## 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
|
||||
|
||||
Le projet à rendre pour ce cours est à placer dans une tarball (pas d'archive
|
||||
ZIP, RAR, ...).
|
||||
|
||||
Voici une arborescence type:
|
||||
|
||||
```
|
||||
login_x-mymoulette/README
|
||||
login_x-mymoulette/...
|
||||
```
|
Loading…
Add table
Add a link
Reference in a new issue