Installation de jailkit

Téléchargez et installez le packet debian que j'ai crée à la main : dpkg -i jailkit-1.3_1.3-1_i386.deb

Ou bien allez télécharger le programme et compilez le : ./configure && make && make install

Configuration de notre systeme

Utilisation de jailkit http://olivier.sessink.nl/jailkit/index.html

Créer un repertoire ayant les droits root que l'on va ensuite isoler du reste du systeme (chroot jail) :

mkdir /home/cvsjail
chown root:root /home/cvsjail

Initialiser le repertoire avec la commande jk_init. Elle va créer un systeme de base avec tout ce qu'il faut pour executer la commande cvs dans ce repertoire :

jk_init -v /home/cvsjail cvs

Ensuite il faut créer un répertoire temporaire pour que cvs puisse fonctionner :

mkdir /home/cvsjail/tmp/
chown root:cvs /home/cvsjail/tmp/
chmod g+w /home/cvsjail/tmp/

Maintenant que le repertoire est pret on va y placer un utilisateur. Quand il se connectera il ne pourra acceder qu'au repertoire /home/cvsjail et a ses sous répertoires, il sera en faite en "prison" dans ce repertoire (jail).

Pour cela éditez le fichier /etc/passwd et modifier le homedir et le shell de l'utilisateur que vous souhaitez mettre en prison :

robert:x:1003:100::/home/cvsjail/./home/robert:/usr/sbin/jk_chrootsh

Ceci aura pour effet de mettre en prison notre utilisateur dans le repertoire /home/cvsjail/. Il nous reste a le priver de toutes les commandes à part cvs (on va egalement lui enlever le droit de lancer un shell), pour cela on va installer un shell spécial nommé jk_lsh :

jk_init -v /home/cvsjail jk_lsh

Ensuite on édite le fichier /home/cvsjail/etc/passwd et on modifie son shell :

robert:x:1003:100::/home/robert:/usr/sbin/jk_lsh

Pour restreindre l'acces a la commande cvs, éditez le fichier /home/cvsjail/etc/jailkit/jk_lsh.ini et ajoutez la section suivante :

[group cvs]
paths= /usr/bin
executables= /usr/bin/cvs

Pour prendre en compte tout ca il faut maintenant relancer le demon jk_socketd :

killall jk_socketd ; jk_socketd

Maintenant vous pouvez soit créer un nouveau repository, soit copier votre ancien dans /home/cvsjail/ et conserver la meme arboressance qu'avant pour que vos utilisateurs ne voient pas de differences.

Pour ajouter un utilisateur robert :

adduser --ingroup imonde --home /home/cvsjail/./home/robert/ --shell /usr/sbin/jk_chrootsh

Puis éditez le fichier /home/cvsjail/etc/passwd comme expliqué plus haut.

Où trouver les messages

grep jk /var/log/daemon.log
grep jk /var/log/auth.log

Sources

Version anglaise : http://olivier.sessink.nl/jailkit/howtos_cvs_only.html