• Créer un chroot pour les utilisateurs du service ssh

    Le but du chroot est de permettre à un utilisateur d’envoyer/récupérer des fichiers sur un serveur, en SFTP (ftp en ssh), sans pour autant lui donner accès en SSH (exécuter des commandes) et sans voir autre chose que son répertoire personnel.

    Tutoriel réalisé sur Ubuntu 11.04 Natty Narwhal

    Télécharger « fichier_configuration_chroot_ssh.pdf »

    Créer groupe sftp 

    sudo addgroup sftp

    Créer utilisateur

    sudo adduser utilisateur à créer

    ex : sudo adduser usersftp

    Éditer /etc/ssh/sshd_config et définir les options suivantes pour modifier ainsi la ligne Subsystem sftp (voir fichier de configuration joint) :

    sudo nano /etc/ssh/sshd_config

    Mettre :

    Subsystem sftp internal-sftp à la place Subsystem sftp /usr/lib/openssh/sftp-server

    Ajouter ensuite, à la fin du fichier, la section qui permettra de resteindre tous les membres du groupe crée dans leur répertoire personnel, et de ne les autoriser à ne faire que du SFTP :

    Match Group sftp
    ChrootDirectory /home/répertoire_utilisateur_crée (définit la racine de notre chroot)
    ForceCommand internal-sftp (force la commande sftp ici,ce qui interdit à l'utilisateur la "simple" connexion via SSH)
    AllowTcpForwarding no
    X11Forwarding no

    Rajouter l'utilisateur crée au groupe sftp

    sudo usermod -G sftp utilisateur_crée

    ex : sudo usermod -G sftp usersftp

    Créer le répertoire pour cet utilisateur

    sudo usermod -s /bin/false utilisateur_crée

    ex : sudo usermod -s /bin/false usersftp

    La commande usermod sert à modifier les informations d’un utilisateur.

    La commande /bin/false va autoriser l'accès en sftp mais empécher de fournir un shell à l'utilisateur crée.

    Le répertoire de chroot devant appartenir à l'utilisateur root, il va donc falloir changer le propriétaire du répertoire personnel de l'utilisateur ainsi limité mais également lui donner un moyen de déposer des fichiers. 

    Pour cela nous allons donc créer un sous-répertoire,dans lequel l'utilisateur pourra déposer ses fichiers :

    sudo chown root:root /home/utilisateur

    ex : sudo chown root:root /home/usersftp

    La commande chown permettant de changer le propriétaire d'un fichier.

    ensuite faire:

    cd /home/utilisateur

    ex : cd /home/usersftp

    sudo mkdir /home/utilisateur/répertoire_à_créer

    ex : sudo mkdir /home/utilisateur/dossier_chroot

    Mettre l'utilisateur propriétaire du dossier ainsi que ses sous dossiers.

    sudo chown -R utilisateur_crée:sftp /home/utilisateur/dossier_crée

    ex : sudo chown -R usersftp:sftp /home/usersftp/dossier_chroot

    On définit les permissions à 755.

    sudo chmod 755  /home/utilisateur/dossier_crée

    ex : sudo chmod 755  /home/usersftp/dossier_chroot

    Redémarrez votre serveur ssh avec la commande :

    sudo /etc/init.d/ssh restart

    Je me connecte avec mon utilisateur userftp.

    Vous pouvez voir que celui-ci est bien emprisonné dans le répertoire qui lui a été défini.

    Créer un chroot pour les utilisateurs du service ssh

      ( cliquer sur l'image pour l'agrandir ) 

    « Création d'un serveur ssh avec authentification par clés Installer un serveur multimédia avec ushare »

    Tags Tags : , , , ,
  • Commentaires

    Aucun commentaire pour le moment

    Suivre le flux RSS des commentaires


    Ajouter un commentaire

    Nom / Pseudo :

    E-mail (facultatif) :

    Site Web (facultatif) :

    Commentaire :