Présentation
Le terme prison chroot remonte à 1992 et est fréquemment utilisé aujourd'hui. Mais que signifie ce terme, et à quoi sert cette opération ?
Dans ce didacticiel, nous couvrirons les bases de l'utilisation des prisons chroot et vous montrerons comment en configurer une.
Prérequis
- Un système exécutant un système d'exploitation Linux ou Unix
- Un compte utilisateur avec des privilèges de niveau sudo
- Accès au terminal/ligne de commande
Qu'est-ce que la prison chroot ?
Un chroot (abréviation de changer de racine ) est une opération Unix qui remplace le répertoire racine apparent par celui spécifié par l'utilisateur.
Tout processus que vous exécutez après une opération chroot n'a accès qu'au répertoire racine nouvellement défini et à ses sous-répertoires. Cette opération est familièrement connue sous le nom de prison chroot puisque ces processus ne peuvent ni lire ni écrire en dehors du nouveau répertoire racine.
À quoi sert la prison chroot ?
Prison chroot est utilisé pour créer un bac à sable limité dans lequel un processus peut s'exécuter. Cela signifie qu'un processus ne peut pas modifier de manière malveillante des données en dehors de l'arborescence de répertoires prescrite.
Une autre utilisation des prisons chroot est de remplacer les machines virtuelles. Cette méthode est appelée virtualisation au niveau du noyau et nécessite moins de ressources que les machines virtuelles. Cette opération permet aux utilisateurs de créer plusieurs instances isolées sur le même système.
Comment utiliser la prison chroot
Cet exemple vous explique comment créer et configurer une prison chroot afin qu'elle puisse exécuter bash
et ls
commandes.
Suivez ces étapes :
1. Créez un nouveau répertoire appelé chroot_jail :
mkdir chroot_jail
Si nous essayons de chroot
dans le nouveau répertoire, nous obtenons la sortie suivante :
Vous devez activer le bash
commande avant de pouvoir chroot
dans le nouveau répertoire. Cela nécessite de copier le fichier de commandes et toutes les bibliothèques associées dans le nouveau répertoire racine.
2. Créez une nouvelle arborescence de sous-répertoires dans chroot_jail :
mkdir -p chroot_jail/bin chroot_jail/lib64/x86_64-linux-gnu chroot_jail/lib/x86_64-linux-gnu
Ces sous-répertoires stockeront tous les éléments nécessaires du bash
et ls
commandes.
3. Utilisation du cp
commande avec le which
la commande permet de copier bash
et ls
commandes sans spécifier le chemin à partir duquel vous copiez.
Pour ce faire, utilisez :
cp $(which ls) chroot_jail/bin/
cp $(which bash) chroot_jail/bin/
4. Pour bash
et ls
pour travailler dans le nouveau dossier racine, ajoutez toutes les bibliothèques associées à chroot_jail/libraries . Utilisez le ldd
commande pour savoir quelles librairies sont associées à quelle commande :
ldd $(which bash)
ldd $(which ls)
5. Copiez les bibliothèques appropriées dans le chroot_jail sous-répertoires lib et lib64 .
Pour le bash
commande :
cp /lib/x86_64-linux-gnu/libtinfo.so.6 chroot_jail/lib/x86_64-linux-gnu/
cp /lib/x86_64-linux-gnu/libdl.so.2 chroot_jail/lib/x86_64-linux-gnu/
cp /lib/x86_64-linux-gnu/libc.so.6 chroot_jail/lib/x86_64-linux-gnu/
cp /lib64/ld-linux-x86-64.so.2 chroot_jail/lib64/
Pour le ls
commande :
cp /lib/x86_64-linux-gnu/libselinux.so.1 chroot_jail/lib/x86_64-linux-gnu/
cp /lib/x86_64-linux-gnu/libc.so.6 chroot_jail/lib/x86_64-linux-gnu/
cp /lib/x86_64-linux-gnu/libpcre2-8.so.0 chroot_jail/lib/x86_64-linux-gnu/
cp /lib/x86_64-linux-gnu/libdl.so.2 chroot_jail/lib/x86_64-linux-gnu/
cp /lib64/ld-linux-x86-64.so.2 chroot_jail/lib64/
cp /lib/x86_64-linux-gnu/libpthread.so.0 chroot_jail/lib/x86_64-linux-gnu/
6. Utilisez le chroot
commande pour changer la racine en chroot_jail répertoire :
sudo chroot chroot_jail
Utilisez le ls
commande pour répertorier tous les fichiers et répertoires dans la nouvelle arborescence de répertoires racine :
ls -R
7. Une fois que vous avez terminé d'utiliser le nouveau dossier racine, quittez le shell :
exit