Configuration Système

Jail et chroot

C. Drocourt
Cyril DOT drocourt
AT u-picardie DOT fr

Points de cours abordés  :

– Définition,
– Utilité,
– Mise en place,
– Extensions,
– Les services et les complications (bind, httpd, ...)

Exercice 1 :

La commande chroot permet d'enfermer un programme dans un répertoire. Sa syntaxe est la suivante : chroot répertoire commande.
1 – Créez un répertoire "prison" à la racine du système, et testez la commande suivante : chroot /prison bash, possible ? Pourquoi ?
2 – Copiez (cp -a) le programme /bin/bash dans le répertoire bin de votre répertoire "prison" et relancez la commande précédente, possible ?
3 – lancez ldd /bin/bash, quel est le problème ?
4 – Installer le programme "busybox" (yum install busybox), et copiez le dans le répertoire /prison/bin, faites les liens symboliques suivants dans le répertoire bin de votre prison :
       ls -> busybox
       sh -> busybox
    Puis testez la commande : chroot /chroot sh
    Conclusion ?
    A quoi sert le programme busybox ?

Exercice 2 :

1 – Créer un script "emprisone.sh" qui va effectuer un chroot dans le répertoire "prison" de l'exercice 1,
2 – Modifiez le shell de connexion de l'utilisateur toto et remplacez le par "emprisone.sh",
3 – Faites un "su - toto", cela fonctionne-t-il ?
4 – Corriger ce problème en utilisant la commande "chroot" dans votre script à l'aide de sudo (man sudo).

Exercice 3 :

Nous avons vu que le service named pouvait être "chrooter", et qu'un paquet (bind-chroot) le faisait de manière automatique dans le répertoire /var/named/chroot, ce que nous donne l'arborescence suivante :

/-
 |--/dev
 |--/etc
 |--/proc
 |--/var
     |--/named
        |--/chroot
           |--/dev
           |--/etc
           |--/proc
           |--/var
              |--/named

A l'aide du paramètre SecChrootDir du module mod_security d'Apache (à définir dans le fichier modsecurity_localrules.conf), il est possible de "chrooter" ce service dans un répertoire particulier. Configurez ceci dans le répertoire /var/www.chroot.