chroot jail¶
2010
chroot¶
chroot est une commande qui change le répertoire racine pour exécuter un processus isolé sur la machine hôte.
Cela isole l’exécution d’un programme, l’empêchant d’accéder aux autres répertoires de la machine hôte.
Ce qui aide à prévenir les attaques malveillantes telles que les débordements de tampon (buffer overflows).
Chroot peut également être utilisé pour exécuter plusieurs instances du même service ou démon sur la même machine hôte.
Mise en place de chroot¶
Nous allons faire un chroot d’un bash dans le répertoire /tmp/chroot
mkdir /tmp/chroot
cd /tmp/chroot
Récupérons les liens dynamiques du programme bash pour les copier dans /tmp/chroot dans leurs répertoires respectifs.
$ ldd /bin/bash
linux-vdso.so.1 => (0x00007fffd5fff000)
libncurses.so.5 => /lib/libncurses.so.5 (0x00007f6879f1d000)
libdl.so.2 => /lib/libdl.so.2 (0x00007f6879d19000)
libc.so.6 => /lib/libc.so.6 (0x00007f6879996000)
/lib64/ld-linux-x86-64.so.2 (0x00007f687a181000)
Copier l’exécutable bash
mkdir bin
cd bin
cp /bin/bash .
cd ..
Copier les bibliothèques dynamiques dans les répertoires appropriés
mkdir lib
cp /lib/libncurses.so.5 lib/.
cp /lib/libdl.so.2 lib/.
cp /lib/libc.so.6 lib/.
cd ..
mkdir lib64
cp /lib64/ld-linux-x86-64.so.2 lib64/.
cd
Activation de chroot
sudo chroot /tmp/chroot
schroot¶
schroot est une surcouche de chroot et permet de changer le répertoire racine pour créer un environnement isolé.
Mise en place¶
sudo apt install schroot debootstrap
Se rendre dans un dossier et télécharger les paquets du système d’exploitation selon l’architecture (dans notre cas 64 bits).
cd /tmp
debootstrap --arch amd64 lenny debian64_apache http://http.us.debian.org/debian/
Configuration de schroot, éditer le fichier /etc/schroot/schroot.conf
[lenny]
description=Debian lenny (testing)
location=/tmp/debian32_apache
type=directory
users=luser
root-groups=root
root-users=root
aliases=testing,default
run-setup-scripts=true
run-exec-scripts=true
Démarrer un service comme apache via schroot¶
Démarrer le schroot qui trouve un identifiant
schroot -b -c lenny
Démarre le service apache dans le schroot. ⚠Récupérez l’identifiant qui vous a été donné puis remplacez lenny-00e8c158-e183-48ad-8407-272808c6b0c6
schroot -r -c lenny-00e8c158-e183-48ad-8407-272808c6b0c6 /etc/init.d/apache2 start
Se connecter au schroot
schroot -r -c lenny-00e8c158-e183-48ad-8407-272808c6b0c6 -u \$USER
ArrĂŞter le schroot
schroot -e -c lenny-00e8c158-e183-48ad-8407-272808c6b0c6