Bien que vsftpd n'offre pas forcément le même degré de personnalisation que d'autres serveurs FTP courants, il fournit suffisamment d'options pour répondre aux besoins de la plupart des administrateurs. Étant donné que sa gamme de fonctionnalités n'est pas excessivement vaste, les erreurs pragmatiques et de configuration sont plus restreintes.
Toute configuration de vsftpd est traitée par son fichier de configuration, /etc/vsftpd/vsftpd.conf. Chaque directive apparaît sur sa propre ligne au sein du fichier et suit le format suivant :
<directive>=<value> |
Pour chaque directive, remplacez d'une part <directive> par une directive valide et d'autre part <value> par une valeur valide.
![]() | Important |
---|---|
Dans une directive, aucun espace ne doit figurer entre la <directive>, le signe égal et l'élément <value>. |
Les lignes de commentaire doivent être précédées par un signe dièse (#) et ne sont pas prises en compte par le démon.
Pour obtenir une liste complète de toutes les directives disponibles, reportez-vous à la page de manuel de vsftpd.conf.
![]() | Important |
---|---|
Pour obtenir un aperçu des différentes manières de sécuriser vsftpd, reportez-vous au chapitre intitulé Sécurité de serveur du Guide de sécurité de Red Hat Enterprise Linux. |
Ci-dessous figure une liste des directives les plus importantes présentes dans /etc/vsftpd/vsftpd.conf. Toute directive ne se trouvant pas explicitement dans le fichier de configuration de vsftpd se voit attribuer la valeur par défaut.
Ci-dessous figure une liste des directives contrôlant le comportement général du démon vsftpd.
listen — Lorsque cette option est activée, vsftpd est exécuté en mode autonome. Red Hat Enterprise Linux lui attribue la valeur YES. Cette directive ne peut pas être utilisée de concert avec la directive listen_ipv6.
La valeur par défaut est NO.
listen_ipv6 — Lorsque cette option est activée, vsftpd est exécuté en mode autonome, mais n'écoute que l'interface de connexion (ou socket) IPv6. Cette directive ne peut pas être utilisée de concert avec la directive listen.
La valeur par défaut est NO.
session_support — Lorsque cette option est activée, vsftpd tente de maintenir les sessions de connexion pour chaque utilisateur par le biais de modules d'authentification enfichables (ou PAM). Reportez-vous au Chapitre 16 pour obtenir de plus amples informations. Si l'ouverture de sessions n'est pas nécessaire, la désactivation de cette option permet à vsftpd de tourner avec moins de processus et avec des privilèges moindres.
La valeur par défaut est YES.
Ci-dessous figure une liste des directives contrôlant le comportement de connexion et les mécanismes de contrôle d'accès.
anonymous_enable — Lorsque cette option est activée, des utilisateurs anonymes sont autorisés à se connecter. Les noms d'utilisateurs anonymes (dits anonymous) et ftp sont acceptés.
La valeur par défaut est YES.
Reportez-vous à la Section 15.5.3 pour obtenir une liste des directives ayant un impact sur les utilisateurs anonymes.
banned_email_file — Si la directive deny_email_enable a pour valeur YES, elle spécifie le fichier contenant une liste de mots de passe de messagerie anonymes pour lesquels l'accès au serveur est refusé.
La valeur par défaut est /etc/vsftpd.banned_emails.
banner_file — Spécifie le fichier contenant le texte affiché lorsqu'une connexion est établie avec le serveur . Cette option écrase tout texte spécifié dans la directive ftpd_banner.
Il n'existe pas de valeur par défaut pour cette directive.
cmds_allowed — Spécifie une liste de commandes FTP, séparées les unes des autres par des virgules, qui permises par le serveur. Toutes les autres commandes sont refusées.
Il n'existe pas de valeur par défaut pour cette directive.
deny_email_enable — Lorsque cette option est activée, tout utilisateur anonyme employant des mots de passe de messagerie spécifiés dans /etc/vsftpd.banned_emails se voit refuser l'accès au serveur. Le nom du fichier référencé par cette directive peut être spécifié à l'aide de la directive banned_email_file.
La valeur par défaut est NO.
ftpd_banner — Lorsque cette option est activée, la chaîne spécifiée dans cette directive est affichée lorsque qu'une connexion au serveur est établie. Cette option peut être annulé par la directive banner_file.
Par défaut, vsftpd affiche sa bannière standard.
local_enable — Lorsque cette option est activée, les utilisateurs locaux sont autorisés à se connecter au système.
La valeur par défaut est YES.
Reportez-vous à la Section 15.5.4 pour obtenir une liste des directives ayant un impact sur les utilisateurs locaux.
pam_service_name — Spécifie le nom du service PAM pour vsftpd.
La valeur par défaut est ftp. Notez que sous Red Hat Enterprise Linux, cette valeur est vsftpd.
tcp_wrappers — Lorsque cette option est activée, les enveloppeurs TCP sont utilisés pour accorder l'accès au serveur. De plus, si le serveur FTP est configuré sur de multiples adresses IP, l'option VSFTPD_LOAD_CONF peut être utilisée pour charger des fichiers de configuration différents en fonction de l'adresse IP demandée par le client. Pour obtenir de plus amples informations sur les enveloppeurs TCP, reportez-vous au Chapitre 17.
La valeur par défaut est NO. Notez que, sous Red Hat Enterprise Linux, la valeur est YES.
userlist_deny — Lorsque cette option est utilisée de concert avec la directive userlist_enable et que sa valeur est NO, tous les utilisateurs locaux se voient refuser l'accès à moins que le nom d'utilisateur ne figure dans le fichier spécifié par la directive userlist_file. Étant donné que l'accès est refusé avant même que le client ne puisse saisir son mot de passe, le choix de la valeur NO pour cette directive empêche les utilisateurs de soumettre des mots de passe non-cryptés sur le réseau.
La valeur par défaut est YES.
userlist_enable — Lorsque cette option est activée, les utilisateurs mentionnés dans le fichier spécifiés par la directive userlist_file se voient refuser l'accès. Étant donné que l'accès est refusé avant même que le client ne puisse saisir son mot de passe, les utilisateurs n'ont pas la possibilité de soumettre des mots de passe non-cryptés sur le réseau.
La valeur par défaut est NO, cependant, sous Red Hat Enterprise Linux la valeur donnée est YES.
userlist_file — Spécifie le fichier référencé par vsftpd lorsque la directive userlist_enable est activée.
La valeur par défaut est /etc/vsftpd.user_list ; cette dernière est créée durant l'installation.
cmds_allowed — Spécifie une liste de commandes FTP, séparées les unes des autres par des virgules, que le serveur autorise. Toutes les autres commandes sont refusées.
Il n'existe pas de valeur par défaut pour cette directive.
Ci-dessous figure une liste des directives qui contrôlent l'accès des utilisateurs anonymes au serveur. Pour utiliser ces options, la valeur de la directive anonymous_enable doit être YES.
anon_mkdir_write_enable — Lorsque cette option est activée de concert avec la directive write_enable, des utilisateurs anonymes sont autorisés à créer de nouveaux répertoires au sein du répertoire parent qui a des permissions en écriture.
La valeur par défaut est NO.
anon_root — Spécifie le répertoire que vsftpd utilise après la connexion d'un utilisateur anonyme.
Il n'existe pas de valeur par défaut pour cette directive.
anon_upload_enable — Lorsque cette option est activée de concert avec la directive write_enable, des utilisateurs anonymes sont autorisés à télécharger vers le serveur des fichiers dans unrépertoire parent doté de permissions en écriture.
La valeur par défaut est NO.
anon_world_readable_only — Lorsque cette option est activée, des utilisateurs anonymes sont autorisés à télécharger des fichiers lisibles par tout un chacun.
La valeur par défaut est YES.
ftp_username — Spécifie le compte de l'utilisateur local (énoncé dans /etc/passwd) employé pour l'utilisateur FTP anonyme. Le répertoire personnel spécifié dans /etc/passwd pour l'utilisateur est le répertoire root de l'utilisateur FTP anonyme.
La valeur par défaut est ftp.
no_anon_password — Lorsque cette option est activée, l'utilisateur anonyme ne doit pas saisir de mot de passe.
La valeur par défaut est NO.
secure_email_list_enable — Lorsque cette option est activée, seule une liste de mots de passe électroniques spécifiée pour les connexions anonymes est acceptée. Ce faisant, il est d'offrir une certaine sécurité à un contenu public sans avoir besoin d'utilisateurs virtuels.
Les connexions anonymes sont refusées à moins que le mot de passe fourni soit contenu dans /etc/vsftpd.email_passwords. Le format du fichier est un mot de passe par ligne, sans espace à la fin.
La valeur par défaut est NO.
Ci-dessous figure une liste des directives caractérisant la manière selon laquelle les utilisateurs locaux ont accès au serveur. Pour utiliser ces options, la directive local_enable doit avoir la valeur YES.
chmod_enable — Lorsque cette option est activée, la commande FTP SITE CHMOD est autorisée pour les utilisateurs locaux. Cette commande permet aux utilisateurs de changer les permissions s'appliquant aux fichiers.
La valeur par défaut est YES.
chroot_list_enable — Lorsque cette option est activée, les utilisateurs locaux énumérés dans le fichier qui est spécifié dans la directive chroot_list_file, sont placés dans une prison chroot dès qu'ils se connectent.
Si cette option est activée de concert avec la directive chroot_local_user, les utilisateurs locaux énumérés dans le fichier qui est spécifié dans la directive chroot_list_file ne sont pas placés dans une prison chroot lors de la connexion.
La valeur par défaut est NO.
chroot_list_file — Spécifie le fichier contenant une liste des utilisateurs locaux référencés lorsque la valeur de la directive chroot_list_enable est YES.
La valeur par défaut est /etc/vsftpd.chroot_list.
chroot_local_user — Lorsque cette option est activée, les utilisateurs locaux opèrent dans l'environnement chrooté de leur répertoire personnel après leur connexion.
La valeur par défaut est NO.
![]() | Avertissement |
---|---|
L'activation de l'option chroot_local_user crée un certain nombre de problèmes de sécurité, particulièrement pour les utilisateurs possédant les privilèges nécessaire pour télécharger sur le serveur. Elle n'est par conséquent pas recommendée. |
guest_enable — Lorsque cette option est activée, tous les utilisateurs autres que les utilisateurs anonymes sont connectés en tant que l'utilisateur invité (guest) qui est l'utilisateur local spécifié dans la directive guest_username.
La valeur par défaut est NO.
guest_username — Spécifie le nom d'utilisateur vers lequel l'utilisateur invité (guest) est mappé.
La valeur par défaut est ftp.
local_root — Spécifie le répertoire que vsftpd utilise après la connexion d'un utilisateur local.
Il n'existe pas de valeur par défaut pour cette directive.
local_umask — Spécifie la valeur donnée à umask pour la création de fichiers. Notez que la valeur par défaut se présente sous la forme octale (un système numérique en base huit), qui inclut un préfixe "0". Sinon la valeur est traitée comme un entier à base 10.
La valeur par défaut est 022.
passwd_chroot_enable — Lorsque cette option est activée de concert avec la directive chroot_local_user, vsftpd chroote les utilisateurs locaux si l'élément /./ figure dans le champ du répertoire personnel au sein de /etc/passwd.
La valeur par défaut est NO.
user_config_dir — Spécifie le chemin vers un répertoire contenant les fichiers de configuration portant le nom des utilisateurs du système local qui renferment des paramètres spécifiques pour ces utilisateurs. Toute directive figurant dans le fichier de configuration d'un utilisateur annule celles figurant dans /etc/vsftpd/vsftpd.conf.
Il n'existe pas de valeur par défaut pour cette directive.
Ci-dessous figure la liste des directives ayant un impact sur les répertoires.
dirlist_enable — Lorsque cette option est activée, les utilisateurs sont autorisés à visionner les listes de répertoires.
La valeur par défaut est YES.
dirmessage_enable — Lorsque cette option est activée, un message apparaît chaque fois qu'un utilisateur ouvre un répertoire avec un fichier message. Ce message se trouve dans le répertoire qui est ouvert. Le nom de ce fichier est spécifié dans la directive message_file et part défaut prend la valeur .message.
La valeur par défaut est NO. Notez que, sous Red Hat Enterprise Linux, la valeur est YES.
force_dot_files — Lorsque cette option est activée, les fichiers commençant par un point (.) sont inclus dans les listes de répertoires, à l'exception des fichiers . et ...
La valeur par défaut est NO.
hide_ids — Lorsque cette option est activée, toutes les listes de répertoires font apparaître ftp comme l'utilisateur et le groupe de chaque fichier.
La valeur par défaut est NO.
message_file — Spécifie le nom du fichier message lorsque la directive dirmessage_enable est utilisée.
La valeur par défaut est .message.
text_userdb_names — Lorsque cette option est activée, des noms d'utilisateurs et noms de groupes test sont utilisés au lieu des entrées UID et GID. L'activation de cette option peut entraîner un ralentissement des performances du serveur.
La valeur par défaut est NO.
use_localtime — Lorsque cette option est activée, les listes de répertoires révèlent l'heure locale de l'ordinateur au lieu de l'heure GMT.
La valeur par défaut est NO.
Ci-dessous figure la liste des directives ayant un impact sur les répertoires.
download_enable — Lorsque cette option est activée, le téléchargement de fichiers est autorisé.
La valeur par défaut est YES.
chown_uploads — Lorsque cette option est activée, tous les fichiers téléléchargés vers les serveur par des utilisateurs anonymes deviennent la propriété de l'utilisateur spécifié dans la directive chown_username.
La valeur par défaut est NO.
chown_username — Spécifie la propriété de fichiers téléchargés anonymement vers le serveur si la directive chown_uploads est activée.
La valeur par défaut est root.
write_enable — Lorsque cette option est activée, les commandes FTP permettant de modifier le système de fichiers sont permises, telles que DELE, RNFR et STOR.
La valeur par défaut est YES.
Ci-dessous figure une liste des directives ayant un impact sur le comportement de journalisation de vsftpd.
dual_log_enable — Lorsque cette option est activée de concert avec xferlog_enable, vsftpd enregistre deux fichiers simultanément : un journal compatible avec wu-ftpd dans le fichier spécifiée dans la directive xferlog_file (par défaut /var/log/xferlog) et un fichier journal vsftpd standard spécifié dans la directive vsftpd_log_file (par défaut /var/log/vsftpd.log).
La valeur par défaut est NO.
log_ftp_protocol — Lorsque cette option est activée de concert avec xferlog_enable et lorsque xferlog_std_format a pour valeur NO, toutes les commandes et réponses FTP sont journalisées. Cette directive est très utilise lors d'opérations de débogage.
La valeur par défaut est NO.
syslog_enable — Lorsque cette option est activée de concert avec xferlog_enable, toute journalisation normalement enregistrée dans le fichier journal standard vsftpd spécifié dans la directive vsftpd_log_file (par défaut /var/log/vsftpd.log) est envoyée à l'enregistreur du système sous le service FTPD.
La valeur par défaut est NO.
vsftpd_log_file — Spécifie le fichier journal vsftpd. Pour que ce fichier soit utilisé, xferlog_enable doit être activée et xferlog_std_format doit avoir pour valeur NO ou, si la valeur de xferlog_std_format estYES, l'activation dedual_log_enable est nécessaire. Il est important de noter ici que si syslog_enable a pour valeur YES, le journal du système est utilisé à la place du fichier spécifié dans cette directive.
La valeur par défaut est /var/log/vsftpd.log.
xferlog_enable — Lorsque cette commande est activée, vsftpd journalise les connexions (seulement au format vsftpd) et les informations de transfert de fichiers dans le fichier journal spécifié dans la directive vsftpd_log_file (par défaut /var/log/vsftpd.log). Si xferlog_std_format a pour valeur YES, les informations de transfert de fichiers sont journalisées mais les connexions elles ne le sont pas et le fichier spécifié dans xferlog_file (par défaut /var/log/xferlog) est utilisé à la place. Il est important de noter ici que les fichiers journaux aussi bien que les formats de journaux sont utilisés si la valeur de dual_log_enable est YES.
La valeur par défaut est NO. Notez que, sous Red Hat Enterprise Linux, la valeur est YES.
xferlog_file — Spécifie le fichier journal compatible avec wu-ftpd. Pour que ce fichier soit utilisé, xferlog_enable doit être activé et la valeur de xferlog_std_format doit être YES. Elle est également utilisée si la valeur de dual_log_enable est YES.
La valeur par défaut est /var/log/xferlog.
xferlog_std_format — Lorsque cette option est activée de concert avec xferlog_enable, seul un journal de transfert de fichiers compatible avec wu-ftpd est enregistré dans le fichier spécifié dans la directive xferlog_file (par défaut /var/log/xferlog). Il est important de noter ici que ce fichier journalise seulement les transferts de fichiers et n'enregistre pas les connexions au serveur.
La valeur par défaut est NO. Notez que, sous Red Hat Enterprise Linux, la valeur est YES.
![]() | Important |
---|---|
Pour maintenir la compatibilité avec les fichiers journaux enregistrés par l'ancien serveur FTP wu-ftpd, la directive xferlog_std_format prend la valeur YES sous Red Hat Enterprise Linux. Toutefois, ce paramètre signifie que les connexions au serveur ne sont pas journalisées. Pour journaliser les connexions au format vsftpd et maintenir un journal des transferts de fichiers qui est compatible avec wu-ftpd, donnez à dual_log_enable la valeur YES. S'il n'est pas important de maintenir un journal des transferts de fichiers qui est compatible avec wu-ftpd, vous pouvez donner à xferlog_std_format la valeur NO, commenter la ligne à l'aide d'un signe dièse (#) ou supprimer la ligne complètement. |
Ci-dessous figure une liste des directives ayant un impact sur la manière dont vsftpd interagit avec le réseau.
accept_timeout — Spécifie la durée donnée à un client utilisant une connexion passive pour se connecter.
La valeur par défaut est 60.
anon_max_rate — Spécifie le taux de transfert de données maximal, exprimé en octets par seconde, pour les utilisateurs anonymes.
La valeur par défaut est 0, ce qui ne limite pas le taux de transfert.
connect_from_port_20 Lorsque cette option est activée, vsftpd tourne avec suffisamment de privilèges pour ouvrir le port 20 sur le serveur lors des transferts de données en mode actif. La désactivation de cette option permet à vsftpd de tourner avec moins de privilèges, mais cette option peut-être incompatible avec certains clients FTP.
La valeur par défaut est NO. Notez que, sous Red Hat Enterprise Linux, la valeur est YES.
connect_timeout — Spécifie la durée maximale exprimée en secondes, donnée à un client utilisant un mode actif pour répondre à une connexion de données.
La valeur par défaut est 60.
data_connection_timeout — Spécifie la durée maximale exprimée en secondes, pendant laquelle les transferts de données peuvent s'arrêter. Une fois cette durée écoulée, la connexion au client distant est fermée.
La valeur par défaut est 300.
ftp_data_port — Spécifie le port utilisé pour les connexions actives aux données lorsque connect_from_port_20 a pour valeur YES.
La valeur par défaut est 20.
idle_session_timeout — Spécifie la durée maximale pouvant s'écouler entre des commandes depuis un client distant. Une fois cette durée écoulée, la connexion au client distant est fermée.
La valeur par défaut est 300.
listen_address — Spécifie l'adresse IP sur laquelle vsftpd doit être à l'écoute de connexions réseau.
Il n'existe pas de valeur par défaut pour cette directive.
![]() | Astuce |
---|---|
Si plusieurs copies de vsftpd tournent et servent différentes adresses IP, le fichier de configuration de chaque copie du démon vsftpd doit avoir une valeur différente pour cette directive. Reportez-vous à la Section 15.4.1 pour obtenir de plus amples informations sur les serveurs FTP en hébergement multidomaine (aussi appelé multihoming). |
listen_address6 — Spécifie l'adresse IPv6 sur laquelle vsftpd doit être à l'écoute de connexions réseau lorsque listen_ipv6 a pour valeur YES.
Il n'existe pas de valeur par défaut pour cette directive.
![]() | Astuce |
---|---|
Si plusieurs copies de vsftpd tournent et servent différentes adresses IP, le fichier de configuration de chaque copie du démon vsftpd doit avoir une valeur différente pour cette directive. Reportez-vous à la Section 15.4.1 pour obtenir de plus amples informations sur les serveurs FTP en hébergement multidomaine (aussi appelé multihoming). |
listen_port — Spécifie le port sur lequel vsftpd doit être à l'écoute de connexions réseau.
La valeur par défaut est 21.
local_max_rate — Spécifie le taux maximal (exprimé en octets par seconde) auquel les données sont transférées, pour les utilisateurs locaux connectés au serveur.
La valeur par défaut est 0, ce qui ne limite pas le taux de transfert.
max_clients — Spécifie le nombre maximal de clients autorisés à se connecter simultanément au serveur lorsqu'il tourne en mode autonome. Toute connexion client supplémentaire provoquerait un message d'erreur.
La valeur par défaut est 0, ce qui ne limite pas les connexions.
max_per_ip — Spécifie le nombre maximal de clients autorisés à se connecter depuis l'adresse IP source.
La valeur par défaut est 0, ce qui ne limite pas les connexions.
pasv_address — Spécifie l'adresse IP utilisée pour l'adresse IP publique du serveur aux serveurs se trouvant derrière des pare-feu NAT (Network Address Translation). Cette option permet à vsftpd de fournir la bonne adresse de retour pour des connexions en mode passif.
Il n'existe pas de valeur par défaut pour cette directive.
pasv_enable — Lorsque cette option est activée, les connexions en mode passif ne sont pas permises.
La valeur par défaut est YES.
pasv_max_port — Spécifie le port le plus élevé possible qui est envoyé aux clients FTP pour des connexions en mode passif. Ce paramètre est utilisé pour limiter la plage de ports afin que les règles de pare-feu soient faciles à créer.
La valeur par défaut est 0, ce qui ne limite pas la plage des ports passifs les plus élevés. La valeur ne doit pas dépasser 65535.
pasv_min_port — Spécifie le port le plus bas possible qui est envoyé au client FTP pour des connexions en mode passif. Ce paramètre est utilisé pour limiter la plage de ports afin que les règles de pare-feu soient faciles à créer.
La valeur par défaut est 0, ce qui ne limite pas la plage des ports passifs les plus bas. La valeur ne doit pas être inférieure à 1024.
pasv_promiscuous — Lorsque cette option est activée, les connexions aux données ne sont pas analysées pour vérifier qu'elles proviennent bien de la même adresse IP. Ce paramètre est seulement utile pour certains types de tunnellisation.
![]() | Attention |
---|---|
N'activez pas cette option à moins qu'elle ne soit absolument nécessaire. En effet, elle désactive une fonctionnalité de sécurité importante permettant de vérifier que les connexions en mode passif proviennent bien de la même adresse IP que la connexion de contrôle qui lance le transfert de données. |
La valeur par défaut est NO.
port_enable — Lorsque cette option est activée, les connexions en mode actif ne sont pas permises.
La valeur par défaut est YES.
Précédent | Sommaire | Suivant |
Démarrage et arrêt de vsftpd | Niveau supérieur | Ressources supplémentaires |