Vous êtes sur la page 1sur 14

TP4 : SELinux

Rihem Ben Romdhane

TEK-UP

October 6, 2022

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Rihem Ben Romdhane TEK-UP October 6, 2022 1 / 14
Objectif

Installer SELinux sur Ubuntu et comprendre le mécanisme du labeling


Administrer des conteneurs avec un contexte SELinux

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Rihem Ben Romdhane TEK-UP October 6, 2022 2 / 14
Pré-requis

Pour faire fonctionner ce TP, on a besoin :


D’une machine virtuelle ubuntu
D’une machine virtuelle CentOS

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Rihem Ben Romdhane TEK-UP October 6, 2022 3 / 14
Labeling du système de fichier

Labeling du système de fichier

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Rihem Ben Romdhane TEK-UP October 6, 2022 4 / 14
Labeling du système de fichier

Désinstaller AppArmor

Dans cette partie, on va utiliser la machine virtuelle ubuntu


Arrêter AppArmor
sudo systemctl stop apparmor

Supprimer AppArmor
sudo apt remove apparmor -y

Redémarrer la machine
sudo reboot

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Rihem Ben Romdhane TEK-UP October 6, 2022 5 / 14
Labeling du système de fichier

Installation SELinux

Install
sudo apt-get install policycoreutils selinux-utils selinux-basics -y

Activer SELinux
sudo selinux-activate

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Rihem Ben Romdhane TEK-UP October 6, 2022 6 / 14
Labeling du système de fichier

Travail demandé
1 Afficher l’état actuel de la config SELinux
2 Afficher le contexte de l’utilisateur connecté avec la commande id -Z.
Interpréter le résultat
3 En listant le contenu du dossier racine avec la commande
sudo ls -aZ /

Pourquoi il y avait un symbole ? dans l’output?


4 En exécutant la commande
sudo ls -al / | grep label

Indiquer l’utilité de ce fichier?


5 Faire un reboot de la VM et lister de nouveau le contenu du dossier racine
avec la commande
sudo ls -aZ /

Interpréter le résultat . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Rihem Ben Romdhane TEK-UP October 6, 2022 7 / 14
SELinux avec Docker

SELinux avec Docker

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Rihem Ben Romdhane TEK-UP October 6, 2022 8 / 14
SELinux avec Docker

Installation Docker

Dans cette partie, on va utiliser une autre machine virtuelle ayant comme OS
CentOS 9 stream
sudo dnf -y remove podman runc

sudo curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo

sudo sed -i -e "s/enabled=1/enabled=0/g" /etc/yum.repos.d/docker-ce.repo

sudo dnf --enablerepo=docker-ce-stable -y install docker-ce docker-ce-cli containerd.io docker-compose-plugin container-selinux

sudo systemctl start docker


sudo systemctl enable docker
sudo setsebool container_manage_cgroup 1
sudo echo -e "{\n\"selinux-enabled\" : true\n}" > /etc/docker/daemon.json
sudo systemctl daemon-reload
sudo systemctl restart docker

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Rihem Ben Romdhane TEK-UP October 6, 2022 9 / 14
SELinux avec Docker

Travail demandé

1 En exécutant cette commande, pourquoi il n y a pas de contexte?


sudo docker container run --rm -it -v /sys/fs/selinux:/sys/fs/selinux:ro centos id -Z

2 Lancer un conteneur avec bash interactif en chargeant le volume


/sys/fs/selinux en rw (read/write) et créer le fichier /etc/selinux/config
Exécute ces commandes :
sudo docker container run --rm -it -v /sys/fs/selinux:/sys/fs/selinux:rw centos bash
id -Z # dans le terminal du conteneur
touch /etc/selinux/config # dans le terminal du conteneur
id -Z # dans le terminal du conteneur

Interprète le résultat

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Rihem Ben Romdhane TEK-UP October 6, 2022 10 / 14
SELinux avec Docker

3 Exécuter ces instructions et interpréter le résultat


sudo semodule --disable_dontaudit --build
sudo mkdir /data
sudo chmod 777 /data
sudo docker container run --rm -it -v /data:/data centos bash
sudo ls /data # dans le terminal du conteneur
sudo date > /data/date.txt # dans le terminal du conteneur
exit # dans le terminal du conteneur
sudo sealert -a /var/log/audit/audit.log | grep data
sudo ls -ldZ /data
sudo chcon --type container_file_t /data
sudo ls -ldZ /data
sudo docker container run --rm -it -v /data:/data centos bash
sudo ls /data # dans le terminal du conteneur
sudo date > /data/date.txt # dans le terminal du conteneur
exit # dans le terminal du conteneur
sudo ls -ldZ /data

Pourquoi on a utilisé la commande chcon?

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Rihem Ben Romdhane TEK-UP October 6, 2022 11 / 14
SELinux avec Docker

4 Exécuter ces instructions


sudo mkdir /private
sudo ls -dlZ /private
sudo docker container run -d --name sleepy -v /private:/private:Z centos sleep 9999
sudo ls -dlZ /private
sudo docker rm -f sleepy

Interpréter le résultat en examinant le changement du contexte du dossier


/private

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Rihem Ben Romdhane TEK-UP October 6, 2022 12 / 14
SELinux avec Docker

5 Exécuter ces instructions


sudo mkdir /shared
sudo ls -dlZ /shared
sudo docker container run -it --rm --name sleepy -v /shared:/shared:z centos bash
sudo date > /shared/file01.txt # dans le terminal du conteneur
exit # dans le terminal du conteneur
sudo ls -lZ /shared
sudo docker container run -it --rm --name sleepier -v /shared:/shared:z centos bash
sudo date > /shared/file02.txt # dans le terminal du conteneur
exit # dans le terminal du conteneur
ls -lZ /shared

Interpréter le résultat et déduire différence entre le montage du volume avec


l’option Z et l’option z?

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Rihem Ben Romdhane TEK-UP October 6, 2022 13 / 14
SELinux avec Docker

Thank you!

. . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
Rihem Ben Romdhane TEK-UP October 6, 2022 14 / 14

Vous aimerez peut-être aussi