This is an old revision of the document!


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.

Attention aux utilisateurs de kernels patchés avec grsec. Vous risquez de rencontrer des difficultés à créer votre chroot. Le plus simple est de le faire depuis une autre machine puis de transférer le contenu du chroot.

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.

Attention avant d'installer ssh que celui-ci ne rentre pas en conflit avec celui que vous utilisez pour vous connecter sur le serveur. Il vous faut choisir un port distinct pour chaque ssh !

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

community/creer-chroot.1301349194.txt.gz · Last modified: 2011/03/28 21:53 by gradator
Recent changes RSS feed Creative Commons License Donate Minima Template by Wikidesign Driven by DokuWiki