Mettre en place un service SFTP

Avec OpenSSH il est possible de configurer un service SFTP dans un environnement sécurisé.

logo SSH puffy

Pour illuster l'article, nous utilisons le serveur 192.168.10.10.

Installer et configurer OpenSSH

apt install openssh-server

Ajouter les instructions suivantes à la fin du fichier de configuration /etc/ssh/sshd_config :

Subsystem   sftp    /usr/lib/openssh/sftp-server

Match User user1,user2
    ChrootDirectory /var/sftp
    ForceCommand internal-sftp -d %u
  • Subsystem <name> <path> : permet de charger un sous-system. Ici nous chargeons sftp qui se trouve dans /usr/lib/openssh/sftp-server
  • Match User <users> : spécifie les critères à satisfaire pour exécuter les instructions suivantes. Ici les utilisateurs user1 et user2 seront impactés par les instructions ChrootDirectory et ForceCommand
  • ChrootDirectory <path> : précise le répertoire chrooté dans lequel placer l'utilisateur après son authentification. C'est avec cette instruction que SSH créer une "prison" qui empêchera les utilisateurs de remonter dans l'arborescence du serveur
  • ForceCommand <command> [options] : permet de forcer le client à utiliser une commande. Dans notre cas nous forçons l'utilisateur à entrer dans le process SFTP via la commande internal-sftp. L'option -d <path> permet de placer l'utilisateur directement dans le repértoire <path>. Ici nous précisons %u qui est une variable contenant le nom de l'usager courant. Autrement dit l'utilisateur se placera directement dans le répertoire du même nom que son login, soit /share/sftp/user1 pour l'utilisateur user1

Créer le répertoire chrooté :

mkdir /var/sftp

Prendre en compte les changements :

systemctl restart ssh

Gérer les utilisateurs SFTP

Créer les utilisateurs :

adduser user1 --home /var/sftp/user1
adduser user2 --home /var/sftp/user2

Conclusion

Le service SFTP est maintenant opérationnel, il ne reste plus qu'à l'utiliser :

sftp user1@192.168.10.10
#Connected to 192.168.10.10.
#sftp> pwd
#Remote working directory: /user1
#sftp> 
By @Mikael FLORA in
Tags : #réseau, #sécurité,