Tout d'abord pourquoi vsftpd et pas un autre ?

vsftpd est reconnu comme l'un des serveurs les plus sûrs dispos dans le monde *nix (IBM, Redhat, kernel.org l'utilisent). Il est simple à mettre en oeuvre et ne comporte pas de fonctionnalites exotiques.

L'autre serveur FTP qu'il est bien est pure-ftpd. Il est aussi très sûr, mais contient nettement plus de fonctionnalités, pas toujours utiles, que vsftpd et sa mise en place est un peu plus difficile. Un avantage de pure-ftpd est que son principal développeur est français et fréquente le forum d'hardware.fr sous le pseudo d'Axey.

Installation de vsftpd

On l'installe comme d'habitude avec

aptitude install vsftpd

Tout se passe ensuite dans /etc/vsftpd.conf qui est plutôt bien commenté. Voici les principales modifications à y apporter à l'aide d'un éditeur de texte en root :

anonymous_enable=NO #on desactive les connexions anonymes
local_enable=YES #on autorises les comptes locaux a se connecter
write_enable=YES #si vous voulez activer l'ecriture
local_umask=022 #droit par defaut des fichiers uploades : ici droits max pour le possesseur, droit de lecture pour le groupe, droit de lecture pour tout le monde, un plus restrictif est 077, aucun droit pour le groupe et tout le monde
anon_upload_enable=NO #on interdit l'upload anonyme
anon_mkdir_write_enable=NO #on interdit la creation des repertoires pour les anonymes
nopriv_user=ftp #l'utilisateur sous lequel sera execute le serveur FTP, un utilisateur sans privilege pour eviter tout probleme
async_abor_enable=NO #on desactive les requetes asynchronous ABOR qui ont un code pouvant poser des problemes de sécurite car non trivial
ascii_upload_enable=NO #on interdit l'upload en ascii car source de probleme de securite
ascii_download_enable=NO #on interdit le download en ascii car source de probleme de sécurite
chroot_local_user=YES #pour bloquer les utilisateurs dans leur répertoire
chroot_list_file=/etc/vsftpd.chroot_list #le fichier contenant les utilisateurs non bloques dans leur repertoire

Gestion des utilisateurs

Fichier /etc/ftpusers

Ce fichier contient les comptes locaux disponibles sur le serveur Linux n'ayant pas le droit de se connecter au FTP. Pour le remplir une première fois :

cat /etc/passwd |cut -d ":" -f1 > /etc/ftpusers

On met tous les comptes présents sur le serveur, car on va ensuite créer les comptes qui ont le droit de s'y connecter en FTP.

Création des comptes

On crée ensuite les comptes qui pourront accéder au serveur FTP :

adduser --home /monrepertoireftp --ingroup nogroup nomutilisateur

Remplir uniquement le mot de passe, le reste des infos étant facultatif.

Le répertoire spécifié par –home est celui dans lequel se rendra l'utilisateur quand il sera connecté au serveur FTP et c'est dans ce répertoire qu'il peut être bloqué en chroot (cage).

Fichier /etc/vsftpd.chroot_list

Dans ce fichier on rajoute les utilisateurs qui ne seront pas bloqués dans leur home (défini par adduser avec –home) et qui pourront se déplacer dans toute l'arborescence du système. Il faut remplir un nom par ligne.


Outils personnels