Alternative au FTP: SFTP + My Secure Shell
Rédigé par Xavier - -
Le FTP est une référence en matière de serveur de fichiers, malheureusement quand on ajoute des fonctionnalités de chiffrage, on éprouve des difficultés à passer les parefeu, car le protocole n'est pas très propre. De plus certains serveurs sont soit trop compliqués, soit trop limités (le monitoring sous vsftpd est quasiment inexistant).
Le protocole SFTP, qui est basé sur SSH, est beaucoup plus simple et propre, mais néanmoins limité au niveau du monitoring. C'est là qu'intervient My Secure Shell.

MSS est un shell offrant un outil de monitoring plus complet. Il offre aussi des scripts pour ajouter des utilisateurs aux droits limités (ils pourront se connecter sur le serveur SFTP, mais ne peuvent pas entrer de commandes). C'est la solution idéale pour un partage de fichiers simple et rapide.
Logiciel
- Ubuntu ou Debian
- OpenSSH
- Filezilla client
Requis
- Avoir un réseau fonctionnel
- Connaissance des droits Linux
Principe de fonctionnement
Si l'on ajoute un utilisateur sur un système Linux, par défaut le shell /bin/bash lui est attribué. Si on ajoute un utilisateur avec un des outils de mysecureshell, le shell /bin/mysecureshell lui est attribué. C'est ce Shell qui permet un monitoring.

Dans les deux cas, le client se connecte au serveur OpenSSH. Mais c'est son shell qui détermine ses droits. /bin/mysecureshell ne donne pas d'interface en lignes de commandes mais juste l'accès au serveur SFTP, et cela active du monitoring également.
Installation
Commencez par installer OpenSSH serveur:
http://mysecureshell.sourceforge.net/fr/confman.html# apt-get install openssh-server
Ensuite vous allez devoir télécharger mysecureshell qui n'est pas dans les dépôts. Vous pouvez le trouver à cette adresse (prenez la version qui correspond à cotre système). Ensuite, installez-là. Par exemple, si je suis sur debian 32bits:
# dpkg -i mysecureshell_1.20_i386.deb
Configuration
Le fichier de configuration se trouve dans /etc/ssh/ et se nomme sftp_config.
# nano /etc/ssh/sftp_config
Les grandes lignes du fichier de configuration sont décrites sur cette page. Personnellement, j'ai modifié:
GlobalDownload Download Home
Création d'un utilisateur
La commande à utiliser (remplacer $USER par le nom que vous lui donnez) est:
# sftp-user create $USER
Pour supprimer un utilisateur, la commande est:
# sftp-user delete $USER
Pour lister les utilisateurs:
# sftp-user list
Gestion des droits des utilisateurs
En tapant:
# cat /etc/passwd
On peut voir apparaitre les utilisateurs précédemment créés. Ils font donc partie du système, et leurs droits sont gérés par Linux. Ainsi, utilisez chmod et chown pour gérer les droits (voir article Serveur FTP).
Monitoring
Utilisez la commande:
# sftp-who
Pour lister les utilisateurs. Si vous voulez plus de détails (débit, avancement, fichier...) ajoutez l'option -v. Si vous voulez un affichage permanent, ajoutez l'option --while ce qui donne:
# sftp-who -v --while
Autres commandes
Elles sont listées sur le site officiel: à cette adresse.
Limites de My Secure Shell
- L'utilisateur doit avoir un compte sur le système, contrairement aux serveurs FTP qui permettent de les gérer virtuellement.
- Les transferts sont chiffrés, ce qui est sécurisant mais pénalisant sur un réseau à très fort débit (1000Mbps) car les processeurs sont très chargés (un Intel Atom ne suit pas, et le débit est divisé par 3 par rapport à un transfert sur protocole léger comme le FTP).
- A priori ne s'installe pas sur serveur Windows.