À la découverte de MySecureShell

À la découverte de MySecureShell

Hop, un petit billet rapidos pour parler d’un petit truc qui ne paie pas de mine découvert il y a peu…

Quand on propose des prestations d’hébergement web, donner un accès aux données au client est d’une part un gage de transparence, mais un besoin souvent nécessaire pour leur donner une certaine autonomie.

Il y a de multiple façons de fournir cet accès : FTP, FTPS, SFTP, …

Alors qu’il y a une course au chiffrement et à la sécurité, FTP est hors de question. Et quand on a quelques centaines de noms de domaines à gérer, c’est une grosse galère de gérer les certificats SSL pour FTPS…

Reste plus que SFTP…

Le SFTP, c’est quoi ?

Le SFTP, ou SSH File Transfert Protocol, est un cousin très éloigné de FTP. Comme son nom l’indique, il est basé sur SSH et bénéficie de toute sa robustesse et sécurité. Il n’utilise pas les mêmes instructions que FTP, même si au final on peut faire la même chose (transférer des fichiers…).

Il est possible d’utiliser le protocole SFTP sur tout serveur Linux qui se respecte. Un serveur est même installé par défaut avec OpenSSH…

Cependant celui-ci est relativement limité:

  • Pas de gestion du trafic et de la bande passante,
  • Pas d’ACL,
  • Chrooter les utilisateurs dans leurs homedirectory peut s’avérer complexe dans certains contextes : genre le répertoire doit appartenir à root, mais d’une part c’est pas forcément une bonne idée, et quand on utilise suexec bien configuré, apache refuse tout simplement d’utiliser des données qui ont un petit uid/gid. Du coup, on arrive vite à faire des mount bind dans une autre arborescence et à chrooter dans cette nouvelle arborescence… Ça a le mérite de laisser des droits propres pour qu’apache puisse travailler en toute sérénité, mais le fstab est complètement dégueulasse avec ses 100aines de lignes et ça devient vite difficile à maintenir …
  • Pas de possibilité nativement de faire un dossier virtuel commun entre plusieurs utilisateurs,
  • etc…

Vient alors MySecureShell

MySecureShell

MySecureShell est un shell qui utilise OpenSSH (il bénéficie donc de sa sécurité sans pour autant créer de faille) et apporte quelques fonctionnalités en plus qui le font se rapprocher de vrais serveurs FTP tels que vSFTPd ou ProFTPd :

  • Gestion de la bande passante,
  • Système d’ACL (sur l’utilisateur, le groupe, l’IP source ou encore un VirtualHost),
  • Obfuscation des droits d’accès et des répertoires et fichiers non autorisés,
  • Journalisation avancée,
  • Possibilité de donner ou non un accès à un shell.

Installation, configuration et utilisation

Même si ça fait quelques temps que Mysecureshell existe, il n’est pas proposé sur toutes les distribution. Si votre gestionnaire de paquet ne vous le propose pas,vous trouverez les instructions d’installation sur leur GitHub.

Il est toutefois proposé sur les dépôts d’Ubuntu 16.04 donc :

sudo apt-get update
sudo apt-get install mysecureshell

Le fichier de configuration par défaut est /etc/ssh/sftp_config . Ce n’est pas un article à vocation technique, je vous laisse le soin de le découvrir et de le personnaliser. Les exemples présents dans ce fichiers sont largement suffisants pour comprendre le fonctionnement, et leur documentation en ligne est complète.

Pour ce qui est de l’utilisation… rien de compliqué encore une fois:

sudo usermod -s /usr/bin/mysecureshell LOGIN

Et voilà le tour est joué…

Conclusion

MySecureShell est une très bonne alternative aux serveurs FTP traditionnels et propose toutes les fonctionnalités qu’on peut en attendre. Si je ne l’installe pas partout dès maintenant, c’est parce que ça aura un impact sur tous les sites que j’héberge… Mais il le sera lors de notre prochaine refonte, suivant l’avancement du projet et son support.

C’est dommage que cette initiative n’ait pas plus de couverture que ça. Les limitations d’OpenSSH sont bien connues, et je suis sûr que bon nombre de sysadmins se sont tirés les cheveux pour trouver une solution qui leur conviennent…

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.