MySecureShell : ou comment chrooter simplement Sftp ?

Ftp n’est pas un protocole sécurisé pour le partage de fichiers, c’est un fait avéré. Pourtant ce protocole est très utilisé dans l’échange de données pour des raisons historiques et par la force de l’habitude.

Une des solutions est d’utiliser une de ses variantes le Sftp qui se repose sur le protocole Ssh. Sous linux il suffit d’installer openssh-server. Par défaut, l’utilisateur à accès aux autres dossiers du système et possède un accès Ssh.

Pour bloquer l’utilisateur dans son dossier personnel et restreindre l’accès Ssh au commande Sftp, il est usuel de mettre en place un environnement Sftp chrooté. La configuration de cette mise en place, sans être très compliquée, n’est pas des plus triviales.

Une alternative simple, mais que je ne vois pas souvent citée, est la mise en place de MySecureShell.

Installation

Ajout des dépôts de MySecureShell

nano /etc/apt/sources.list
...
deb http://mysecureshell.free.fr/repository/index.php/debian testing main
deb-src http://mysecureshell.free.fr/repository/index.php/debian testing main

Mise à jour de la liste de paquets et installation

apt-get update
apt-get install openssh-server mysecureshell

Configuration de sftp

nano /etc/ssh/sftp_config

Parmi les options, il faut modifier les suivantes :

...
StayAtHome		true	#limit client to his home
VirtualChroot		true	#fake a chroot to the home account

On redémarre le service

/etc/init.d/mysecureshell restart

Ajout d’un utilisateur toto

useradd -m -s /bin/MySecureShell toto
passwd toto

Conclusion

Nous avons créé un utilisateur toto qui peux venir déposer et télécharger des fichiers sur notre serveur de façon sécurisé. L’utilisateur est restreint uniquement à son répertoire personnel, et il lui est impossible de se connecter à une console.

Vus : 1134
Publié par Liberez le tux : 14