diff --git a/slides/slides.md b/slides/slides.md index 54e9175..e74899a 100644 --- a/slides/slides.md +++ b/slides/slides.md @@ -121,10 +121,98 @@ Contrôle l'utilisation faite des ressources de la machine hôte par les machine ## Capabilities +### Résumé + +#### Historiquement + +* Processus privilégiés : `UID == 0`. +* Processus non-privilégiés : `UID != 0`. + +#### Depuis Linux 2.2 + +* Séparation des privilèges de l'UID 0. +* Chaque thread peut posséder ses propres capacités. +* `prctl(2)`, `execve(2)`, + +### Principales capacités + +#### Ne pas oublier de désactiver + +* `CAP_MKNOD` : `mknod` +* `CAP_NET_RAW` : permet d'écouter tout le réseau +* `CAP_SYS_MODULE` : charge et décharge des modules noyau +* `CAP_SYS_RAWIO` : accès brut aux entrées/sorties +* `CAP_SYS_RESOURCE` : dépassement des quotas, utilisation de l'espace réservé, ... +* `CAP_SYS_TIME` : changer l'heure de la machine +* `CAP_SYS_ADMIN` : misc + +#### Ne pas oublier d'activer + +* `` + + ## Namespaces +### Isolation de parties du système + +#### Mount Namespace + +Isole la vue des partitions montées. + +#### UTS Namespace + +Identification du système : nom de machine et de domaine. + +#### PID Namespace + +Crée un arbre d'exécution parallèle où le premier process à être +exécuté devient le PID 1 de cet arbre. + +#### Network Namespace + +Isole la pile réseau ; crée un nouveau groupe d'interfaces. + +#### User Namespace + +Crée une liste d'utilisateurs et de groupe distincte. + +#### IPC Namespace + +Isolation des files de messages de communication interprocessus (IPC). + + +### Implémentation + +```c +#include + +#define STACKSIZE (1024*1024) +static char child_stack[STACKSIZE]; + +int clone_flags = CLONE_NEWNET | SIGCHLD; +pid_t pid = clone(do_execvp, + child_stack + STACKSIZE, + clone_flags, + &args); +``` + ## cgroups +### Freezer cgroup subsystem + +### Device controller for cgroups + +### CPU accounting cgroup subsystem + +### Memory Resource Controller for Control Groups + +### Block IO controller + +### Device controller for cgroups + +### Network priority cgroup + + ## LXC ## Docker @@ -136,6 +224,10 @@ Contrôle l'utilisation faite des ressources de la machine hôte par les machine # Réseau +http://containerops.org/2013/11/19/lxc-networking/ + +## empty + ## phys ## vlan