-
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 utilisateursudo 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éeex : sudo usermod -G sftp usersftp
Créer le répertoire pour cet utilisateur
sudo usermod -s /bin/false utilisateur_créeex : 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/utilisateurex : 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éerex : 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éeex : 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.
( 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 : utilisateur, sftp, cree, ssh, sudo
-
Commentaires