SFTP & RSSH : Créer un serveur de fichiers sécurisé
Le SFTP permet de transfèrer des fichiers par une connexion sécurisée utilisant le protocole SSH. SFTP peut effectuer les mêmes opérations que FTP. Il est important de noter que le SFTP n'est pas une simple connexion FTP passant par un tunnel SSH. 2 commandes sont utilisées : sftp du côté client, et sftp-server du côté du serveur. RSSH est un shell qui va faciliter et sécuriser d'avantage l'utilisation du SFTP.
Installation des logiciels
Installation de OpenSSH
OpenSSH est installé nativement sur les principales distributions Linux. Il doit être installé sur la machine cliente et serveur. Si vous n'avez aucune idée de ce qu'est le SSH, lisez préalablement cet article : Reseau-secu-ssh. Si OpenSSH n'est pas installé sur votre ordinateur, lisez cet article : SSH2 Rapellons que OpenSSH embarque sftp-server (commande serveur) et sftp (commande cliente).
Installation de RSSH
Rssh est un shell restreint qui va sécuriser et faciliter l'utilisation du SFTP. Grâce à RSSH, l'utilisateur distant pourra uniquement échanger, supprimer, modifier des fichiers : il ne pourra executer de commandes à distance, susceptibles d'exploiter des failles de sécurité.
- Sur Mandriva : # urpmi rssh
- Sur Debian : # apt-get install rssh
Pour les autres, téléchargez les sources disponibles ici pour compilez-les :
$ cd rssh-xxx
$ ./configure --orefix=/usr --sysconfdir=/etc
$ make
$ su
# make install
Configuration du serveur
Configuration de rssh
Rssh est un shell (restreint). Il faut donc s'assurer qu'il soit présent dans le fichier /etc/shells :
Si il n'est pas présent, ajouter la ligne suivante au fichier à l'aide de votre éditeur de texte favori :
/usr/bin/rssh
Il faut maintenant éditer le fichier de configuration de rssh :
On déplace le fichier de configuration présent, puis on en créé un vide :
# touch /etc/rssh.conf
On édite le nouveau fichier /etc/rssh.conf en le remplissant comme ceci :
logfacility = LOG_USER
allowsftp
umask = 022
Maintenant, le shell rssh se limitera à l'utilisation du sftp.
Chroot de la connexion SFTP
Cette partie s'adresse à ceux qui veulent chrooté la connexion SFTP. Pour les autres, passez directement à l'étape suivante. Le Chroot permettra ici de restreindre l'accès d'un utilisateur (pour en savoir plus, lisez le préambule de l'article Admin-admin env-chroot). Par exemple, on décide de chrooter un utilisateur dans /home : cet utilisateur verra /home comme son répertoire racine, et ne pourra aller au-delà. L'inconvénient de cette manière, c'est que tout les fichiers nécessaires doivent être incluts dans home.