Ceci est une ancienne révision du document !


Mise en place d'un stockage SFTP

Ce tutoriel a pour but de configurer le protocole SFTP sous Linux afin que des utilisateurs puissent y stocker des fichiers (tels que des sites web). SFTP est un protocole de transfert de fichiers similaire à FTP qui se base sur des connexions sécurisées via le protocole SSH.

1) Installer le paquet OpenSSH-Server (inclus par défaut dans les distributions récentes)

 apt-get install openssh-server 

2) Editer le fichier de configuration du serveur SSH /etc/ssh/sshd_config :

 nano /etc/ssh/sshd_config 

Y ajouter ces lignes :

allowGroups sftp     #Définit les groupes d'utilisateurs autorisés à se connecter en SSH (ici le groupe sftp)
Subsystem sftp internal-sftp
         Match group sftp     #Précise le groupe auquel s'appliqueront les réglages suivants
         ChrootDirectory /home/%u/     #Indique le répertoire personnel des utilisateurs (utiliser la variable //%u// pour automatiser le remplacement de chaque nom d'utilisateur)
         X11Forwarding no      #Désactiver l'affichage graphique via SSH
         AllowTcpForwarding no      #Désactiver l'ouverture de tunnels SSH (plus sécurisé)
         

Tout en supprimant (ou en commentant au début) celle-ci afin de ne pas perturber le service :

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

3) Créer un groupe d'utilisateurs habilité à utiliser SFTP :

 groupadd sftp

4) Créer les utilisateurs et leur dossier personnel en les attribuant au groupe précédemment créee

 useradd jean -d /home/jean -g sftp 

5) Faire de root le propriètaire de chaque répertoire utilisateur :

 chown root:root /home/jean 

(on peut aussi utiliser %u pour automatiser la tâche avec plusieurs utilisateurs, mais avec prudence car il peut déja y avoir d'autres utilisateurs sur le système qui ont besoin d'être propriètaire de leur propre dossier.

6)Attribuer tous les droits à root uniquement sur ce répertoire :

 chmod 770 /home/jean 

7) Créer un dossier supplémentaire à l'intérieur de chaque répertoire utilisateur et lui donner la proprièté à root :

 mkdir /home/jean/sftp
chown root:root /home/jean/sftp

8) Attribuer tous les droits à tous sur ce sous-dossier (en mode récursif):

 chmod -R 777 /home/jean/sftp

Le sous-dossier crée à l'étape juste avant sera accessible en écriture à l'utilisateur contrairement à la racine de son répertoire qui ne lui sera accessible qu'en lecture seule (propriètaire root).

9) Relancer le service openssh-server :

 service sshd restart 

C'est terminé, les utilisateurs peuvent maintenant utiliser le serveur SFTP pour stocker leurs données !

En cas d'erreur lors du lancement du service SSHD, vérifiez la configuration et les permissions vues précédemment. Pour lancer le serveur en affichant les erreur à l'écran, faire :

 /usr/sbin/sshd -ddd