SSH: chroot facile d’un utilisateur

Nous allons voir 2 choses dans cet article:

  • Tout d’abord, enfermer un utilisateur dans un chroot
  • Donner un accès SSH à cet utilisateur dans son environnement « chrooté »

Introduction

Un chroot est une « prison » où vous allez « enfermer » votre utilisateur. Concrètement, pourquoi enfermer un utilisateur dans un chroot ? A quoi ça sert ?

Et bien, imaginez que vous décidez d’autoriser un utilisateur à accéder aux ressources de votre machine. Ceci pour une raison X ou Y. Ce dernier jouit d’un grand pouvoir. Il peut s’il le désire essayer de se balader dans votre système de fichiers, mettre le nez où il ne devrait pas, lancer des programmes installés, … il peut même aller (si il est suffisamment malin) jusqu’à obtenir des privilèges administrateur…

Bref, l’enfermer dans un chroot, c’est l’enfermer dans un répertoire d’où il ne peut pas sortir, et avec un accès limité aux executables.

Configurer un chroot est habituellement assez chiant, car de base, l’utilisateur ne dispose d’aucun programme, il faut importer des librairies à la main avec ldd, il faut créer les devices /dev/null, /dev/zero, /dev/tty, /dev/urandom avec mknod

Pour nous simplifier la vie, nous allons utiliser un script de Wolfgang Fuschlberger, permettant d’automatiser tout ça.

Vous pouvez le télécharger sur cette page: http://www.fuschlberger.net/programs/ssh-scp-sftp-chroot-jail/

J’ai eu un problème avec ce script avec notamment ce message d’erreur:

La solution se trouve ici: http://ubuntuforums.org/showpost.php?p=5583234&postcount=5

Il faut en fait supprimer au début des lignes 406 et 407 :

Allez, assez de bla-bla, on y va !!

Chroot utilisateur

Installation de paquets nécessaires:

On télécharge le script et on le rend executable:

Avant d’utiliser le script, vous pouvez décider d’ajouter/supprimer vers la ligne 111 les applications disponibles dans le chroot:

Création d’un répertoire où sera enfermé l’utilisateur. Je le crée à la racine et le nomme chroot:

C’est le moment d’utiliser le script. Il s’utilise de cette manière:

chroot-shell est un shell spécialement créé par le script pour chrooter les utilisateurs. Mais maintenant qu’OpenSSH supporte le chroot, on indique le shell à utiliser. Concernant l’utilisateur, si il n’existe pas, il sera créé. Si il existe, son profil sera mis à jour.

Pour un utilisateur toto enfermé dans /chroot avec comme shell bash:

Répondez yes aux questions.

Si vous avez ce message d’erreur:

J’ai donné la solution plus haut…

Configuration de SSH

Le but étant de donner un accès SSH à cet utilisateur, il ne reste plus qu’à configurer son accès SSH. Ça se passe dans /etc/ssh/sshd_config:

Ajoutez ceci à la fin du fichier:

Si vous chrootez un groupe d’utilisateurs, remplacez User par Group.

Pour toute question, direction les commentaires…

Source: http://www.howtoforge.com/chrooted-ssh-sftp-tutorial-debian-lenny

Tweet about this on TwitterShare on Google+0Share on Facebook0Email this to someone

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *