Créer un chroot pour les utilisateur du service ssh
Nous allons voir comment créer un chroot, afin de “cloisonner” un peu l'environnement de l'utilisateur par rapport au système.
Les packages nécessaires :
sudo apt-get install debootstrap chroot
Tout d'abord il nous faut un répertoire d'accueil pour notre nouveau système. Personellement je l'ai mis dans /data pour bien tout concentrer sur la même partition.
mkdir /data/chroot-ssh
Ensuite nous allons utiliser debootstrap. C'est un outils extrèmement pratique pour créer des chroots.
Si vous souhaitez créer un chroot debian stable :
debootstrap etch /data/chroot-ssh/ http://ftp.fr.debian.org/debian
Si vous souhaitez créer un chroot debian testing :
debootstrap lenny /data/chroot-ssh/ http://ftp.fr.debian.org/debian
Tout un processus se déroule, il télécharge tous les éléments nécessaire à la création du chroot.
Une fois que vous avez le message comme quoi tout s'est bien passé, il est nécessaire de monter certaines partitions indispensable :
mount -o bind /dev /data/chroot-ssh/dev mount -o bind /proc /data/chroot-ssh/proc
Et si vous utilisez vhffs-fs :
mount -o bind /chemin/vers/montage/fuse /data/chroot-ssh/home
N'oubliez pas de modifier /etc/fstab en conséquence en rajoutant :
/dev /data/chroot-ssh/dev none rw,bind 0 0 /proc /data/chroot-ssh/proc none rw,bind 0 0 /chemin/vers/montage/fuse /data/chroot-ssh/home none rw,bind 0 0
Ensuite vous pouvez entrer dans votre nouveau chroot :
chroot /data/chroot-ssh/ /bin/bash
La première chose à faire est de configurer les locales
dpkg-reconfigure locales
puis le fuseau horaire
dpkg-reconfigure tzdata
Une fois tout ça fait, il faut au moins lancer dans votre chroot syslogd
/etc/init.d/sysklogd start
Vous voilà donc avec un système vierge, totalement isolé du reste. On y installe des applis, on le met à jour comme une vraie machine. Il vous faut donc installer ssh pour continuer.
Pour installer ssh dans votre chroot, rien de plus simple :
apt-get install ssh
Enfin, pour que les utilisateurs soient reconnus, n'oubliez pas de les déclarer, en utilisant nss ou par la methoque que vous avez déjà choisi. Si vous utilisez libnssSQLite, vous devez regénérer les fichiers (hors chroot, bien entendu) avec l'option –force-homedir /home et mettre les fichiers générés dans /data/chroot-ssh/var/db