Creation chroot

Introduction

Vous souhaitez créer un accès sftp sur votre machine mais vous ne souhaitez pas que cet utilisateur puisse avoir accès à tous les fichier ? Le chroot est fait pour vous.

Installation

Prérequis

Installer un serveur OpenSSH sur sa machine :

root@minitel>>> apt-get update;apt-get upgrade;apt-get install openssh-server

Configuration

Ajout d’un utilisateur

  • Sous linux, l’ajout d’un utilisateur se fait à l’aide de la commande :

    root@minitel>>> adduser nom_utilisateur
    

    Il vous sera ensuite demandé de rentrer le mot de passe associé à ce compte.

  • Si il n’est pas présent, il faut créer le répertoire /home/nom_utilisateur/ grâce à la

    commande root@minitel>>> mkdir /home/nom_utilisateur
    

Configuration d’OpenSSH Dans le fichier

nano /etc/ssh/sshd_config

rajouter/dé-commenter/modifier les lignes suivantes

port 22
PermitRootLogin no
AllowUsers nom_utilisateur root
[...]
UsePAM yes
[...]
Match user nom_utilisateur
    ChrootDirectory /home/nom_utilisateur/
    ForceCommand internal-sftp
    AllowTCPForwarding no

Explications

  • port 22 : définit la valeur d’écoute du service ssh.
  • PermitRootLogin no : La valeur ‘no’ indique qu’il ne sera pas possible de se connecter en tant que root sur le serveur. Il faudra se connecter en tatn qu’utilisateur qui lui deviendra root (utlisateur@minitel>>>su - ).

Attention ! Soyez sûr qu’un autre utilisateur est configuré sur le serveur. En effet, par la suite, l’utilisateur nom_utilisateur n’aura plus accès au ssh. Si ce n’est pas le cas, alors changer le no par yes (déconseillé).

  • AllowUsers : définit les utilisateurs ayant le droit de se connecter au serveur par ssh. Dans notre cas il y a uniquement nom_utilisateur et root.
  • Match user : indique que les instructions suivantes seront destiné aux utilisateurs passés en paramètres. Ici les instructions seront destinés à l’utilisateur nom_utilisateur
  • ChrootDirectory : cloisonne la connexion de l’utilisateur visé dans le dossier indiqué. Ici /home/nom_utilisateur/.
  • ForceCommand internal-sftp
  • AllowTCPForwarding
  • On redémarre le service avec la commande service ssh restart

Mise en place des droits

  • Dans un premier temps, nous allons modifier les droits du répertoire /home/nom_utilisateur/. Pour cela on tape la commande suivante

    root@minitel>>> chown root:root /home/nom_utilisateur/
    

A ce stade, nom_utilisateur a accès au répertoire /home/nom_utilisateur/ mais ne peut rien y faire. Pour cela nous allons lui créer un répertoire ou elle pourra y faire ce qu’elle veut (avec des droits restreints quand même).

  • On créer ce dossier grâce à la commande root@minitel>>> mkdir /home/nom_utilisateur/jail/
  • On attribut les droits à nom_utilisateur : root@minitel>>> chown nom_utilisateur:nom_utilisateur /home/nom_utilisateur/jail/. On en profite pour exécuter cette commande root@minitel>>> chmod -R 755 /home/nom_utilisateur/jail/
  • Comme promis, on coupe l’accès au shell à nom_utilisateur : root@minitel>>> chsh nom_utilisateur -s /bin/true

Source

debian-facile.org