Traduction(s) : aucune

(!) ?Discussion


Installation et configuration du serveur ftp vsftpd.

Introduction

Cet article a pour but de détailler les différentes étapes pour mettre en place un serveur de partage de fichier FTP, en utilisant vsftpd (Very Secure FTP Daemon).

Installation et configuration

Installez vsftpd avec Aptitude ou apt-get :

aptitude install vsftpd

Le serveur est maintenant lancé et écoute sur le port 21.

Si le serveur n'est pas derrière un firewall, en attendant de l'avoir configuré il est sage de l'arrêter :

/etc/init.d/vsftpd stop

Ouvrez le fichier de configuration, et suivez l'article pour les principales options :

editor /etc/vsftpd.conf

A noter que le fichier est abondamment commenté en anglais et que toutes les options sont listées dans le manuel du même nom :

man vsftpd.conf

compte anonyme

Par défaut seule la connexion anonyme est autorisée, elle a accès au répertoire /srv/ftp/ . Si vous voulez le désactiver :

anonymous_enable=NO

Si vous voulez laisser l'accès, configurez les options anon_upload_enable pour autoriser ou non l'écriture et anon_mkdir_write_enable pour la création de répertoire.

Il peut être utile de définir un compte du système précis comme propriétaire des fichiers envoyés :

chown_uploads=YES
chown_username=utilisateur

compte utilisateur

Pour permettre l'identification des utilisateurs système, activez :

local_enable=YES

Pour autoriser l'écriture :

write_enable=YES

SFTP - SSL

Gestion des utilisateurs

Confinement des utilisateurs

Les comptes utilisateurs peuvent avoir accès aux fichiers de tout le système ce qui n'est pas toujours souhaitable et peux aider à compromettre la machine, il peuvent être confinés en modifiant vsftpd.conf :

chroot_local_user=YES

La racine de leur FTP sera alors leur répertoire personnel.

Malgré tout, un compte peut être utilisé pour se connecter ailleurs qu'au ftp : ssh, getty (login du terminal) sont des exemples. Il aura alors quand même accès au reste du système par le shell. Vous pouvez configurer les services donnés en exemple pour bloquer le compte ou pour le confiner, mais la solution généraliste est de désactiver le shell pour l'utilisateur.

Pour cela on assigne le shell de l'utilisateur vers false, un simple binaire qui renvoie un signal d'erreur :

usermod -s /bin/false

Il faut ensuite ajouter false à la liste des shells :

/bin/false >> /etc/shells

Compte anonyme

Si vous activez le FTP anonyme avec vsFTPd, le compte anonyme a accès par défaut au répertoire /srv/ftp/. Pour le changer, utiliser la directive anon_root.

anon_root=/data/directory