Traduction(s): - English - Français - Русский

(!) ?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

Comme à l'habitude, l'installation est très simple avec apt-get ou Aptitude. En tant que root tapez :

aptitude install vsftpd

Après l'instalation, le serveur démarre automatiquement et écoute le port TCP par défaut.

Vous pouvez vérifier cela grâce à netstat :

# netstat -npl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN      22468/vsftpd    

Si le serveur n'est pas derrière un firewall, il est recommandé d'arrêter vsftpd avant de le configurer.

/etc/init.d/vsftpd stop

Configuration

Le fichier de configuration pour ce serveur est /etc/vsftpd.conf. Vous pouvez trouver des exemples de fichier de configuration dans /usr/share/doc/vsftpd/EXAMPLE.

Le fichier de configuration a trois types d'options :

Si certaines options ne sont pas présentes dans le fichier configuration, le serveur utilisera les paramètres par défaut (voir man vsftpd.conf).

Comptes Anonymes

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, changez :

anonymous_enable=NO

Pour activer le téléversement anonymes, configurez :

Pour autoriser le changement de propriétaire des fichiers, configurez :

chown_uploads=YES
chown_username=utilisateur

Contrôle les accès utilisateurs

Afin d'activer l'autorisation pour les utilisateurs locaux, décommentez :

local_enable=YES

Pour autoriser l'accès en écriture :

write_enable=YES

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, ils 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

Voir aussi :