Very Secure FTP Daemon (vsftpd) est un serveur FTP léger pour Linux. Cette rubrique explique comment installer et configurer vsftpd sur un Simple Application Server sous Linux, puis vérifier la connexion à l'aide de FileZilla.
Le protocole FTP transmet les données, y compris les identifiants, en texte clair. Pour les charges de travail de production nécessitant un chiffrement, privilégiez SFTP ou FTPS. Ce guide couvre l'utilisation de vsftpd pour les cas où le protocole FTP est une exigence spécifique.
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
Un Simple Application Server sous Linux. Consultez la rubrique Créer un simple application server
Un mot de passe défini pour le serveur. Consultez la rubrique Définir ou réinitialiser le mot de passe d'un serveur
FileZilla installé sur votre machine locale. Téléchargez-le depuis filezilla-project.org
Modes de connexion et d'authentification FTP
Le protocole FTP fonctionne selon deux modes de connexion :
Mode actif : le client envoie ses informations de port au serveur, et le serveur initie la connexion de données.
Mode passif : le serveur ouvre un port et envoie les informations de port au client, qui initie ensuite la connexion. Ce guide configure le mode passif, plus adapté aux environnements protégés par des pare-feu et des NAT.
Le protocole FTP prend en charge trois modes d'authentification :
| Mode | Sécurité | Description |
|---|---|---|
| Mode utilisateur anonyme | La plus faible | Aucun nom d'utilisateur ni mot de passe requis. Convient uniquement aux transferts de fichiers publics. À éviter en production. |
| Mode utilisateur local | Moyenne | Authentification basée sur les utilisateurs Linux locaux. Couvert dans ce guide. |
| Mode utilisateur virtuel | La plus élevée | Utilise des utilisateurs virtuels isolés du système. Nécessite une configuration avancée. |
Ce guide couvre le mode utilisateur local (recommandé) et le mode utilisateur anonyme.
Étape 1 : Installer vsftpd
-
Vérifiez si vsftpd est déjà installé. Certains serveurs déployés avec des images d'application incluent vsftpd préinstallé ; une réinstallation pourrait provoquer des conflits.
vsftpd -vSi la sortie affiche un numéro de version, vsftpd est déjà installé :
vsftpd: version 3.0.2Si vsftpd est déjà installé, récupérez les identifiants FTP dans la documentation de votre image d'application, puis passez directement à l'étape Étape 3 : Ouvrir les ports du pare-feu.
-
Installez vsftpd. Cet exemple utilise CentOS 7. Pour les autres distributions, consultez la rubrique Créer un site FTP sur une instance ECS.
sudo yum install -y vsftpdUn message de succès confirme l'installation.
Installed: vsftpd.x86_64 0:3.0.2-28.el7 Complete! -
Activez le démarrage automatique de vsftpd au démarrage du système :
sudo systemctl enable vsftpd.service -
Démarrez vsftpd :
sudo systemctl start vsftpd.serviceRemarqueSi le service ne parvient pas à démarrer et affiche l'erreur
Job for vsftpd.service failed because the control process exited with error code, le port 21 est peut-être déjà utilisé. Exécutezlsof -i:21pour identifier le processus, puis exécutezkill -9 <PID>pour l'arrêter avant de redémarrer vsftpd. -
Vérifiez que vsftpd est en cours d'exécution :
sudo netstat -antup | grep ftpSi le port du service FTP apparaît dans la sortie, vsftpd est en cours d'exécution.
[root@iZbp166dsac66txo49xxx ~]# netstat -antup | grep ftp tcp6 0 0 :::21 :::* LISTEN 53730/vsftpd -
Créez un utilisateur Linux dédié pour l'accès FTP. Cet exemple utilise
ftptest.sudo adduser ftptest -
Définissez un mot de passe pour l'utilisateur :
sudo passwd ftptestSuivez les instructions pour saisir et confirmer le mot de passe.
-
Créez le répertoire FTP :
sudo mkdir /var/ftp/test -
Attribuez la propriété du répertoire à
ftptest:sudo chown -R ftptest:ftptest /var/ftp/test -
Sauvegardez le fichier de configuration de vsftpd avant de le modifier :
sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak -
Ouvrez le fichier de configuration pour le modifier :
RemarqueSi vous avez installé vsftpd avec
apt install vsftpd, le fichier de configuration se trouve à l'emplacement/etc/vsftpd.confau lieu de celui indiqué ci-dessus.sudo vim /etc/vsftpd/vsftpd.confAppuyez sur
ipour passer en mode édition. -
Mettez à jour les paramètres suivants. Assurez-vous qu'aucune de ces lignes n'est commentée avec
#et évitez les espaces de fin, car ils peuvent empêcher vsftpd de redémarrer correctement. Fichier :/etc/vsftpd/vsftpd.conf# Disable anonymous login anonymous_enable=NO # Allow local users to log in local_enable=YES # Listen on IPv4 listen=YESCommentez l'écouteur IPv6 en ajoutant
#au début de la ligne :#listen_ipv6=YES -
Ajoutez les paramètres suivants à la fin du fichier. Remplacez
39.105.xx.xxpar l'adresse IP publique de votre serveur. Fichier :/etc/vsftpd/vsftpd.conf# Set the home directory for local users after login local_root=/var/ftp/test # Restrict users to their home directory chroot_local_user=YES # Enable a list of users exempt from the chroot restriction chroot_list_enable=YES # Path to the exemption list file chroot_list_file=/etc/vsftpd/chroot_list # Enable passive mode pasv_enable=YES allow_writeable_chroot=YES # Public IP address of the server pasv_address=39.105.xx.xx # Passive mode port range (high-numbered ports reduce exposure) pasv_min_port=50000 pasv_max_port=50010Appuyez sur
Esc, saisissez:wqet appuyez surEnterpour enregistrer et fermer. -
Créez le fichier de liste d'exemption chroot. Les utilisateurs répertoriés ici ne sont pas confinés au répertoire personnel. Le fichier est requis même s'il est vide.
sudo vim /etc/vsftpd/chroot_listAppuyez sur
ipour passer en mode édition. Ajoutez les noms d'utilisateurs exemptés, un par ligne (laissez le fichier vide si aucune exemption n'est nécessaire). Appuyez surEsc, saisissez:wqet appuyez surEnterpour enregistrer et fermer. -
Arrêtez le pare-feu système. vsftpd gère l'accès aux ports via le pare-feu du Simple Application Server configuré à l'étape 3.
sudo systemctl stop firewalld -
Activez l'authentification par mot de passe dans la configuration SSH :
sudo vi /etc/ssh/sshd_configTrouvez
PasswordAuthenticationà la fin du fichier et définissez-le suryes. Appuyez surEsc, saisissez:wq!et appuyez surEnterpour enregistrer et fermer.# Accept locale-related environment variables AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE AcceptEnv XMODIFIERS # Override the default of no subsystems Subsystem sftp /usr/libexec/openssh/sftp-server # Example of overriding settings on a per-user basis #Match User anoncvs # X11Forwarding no # AllowTcpForwarding no # PermitTTY no # ForceCommand cvs server UseDNS no AddressFamily inet SyslogFacility AUTHPRIV PermitRootLogin yes PasswordAuthentication yes -
Redémarrez vsftpd pour appliquer toutes les modifications :
sudo systemctl restart vsftpd.service -
Ouvrez le fichier de configuration de vsftpd :
RemarqueSi vous avez installé vsftpd avec
apt install vsftpd, le fichier de configuration se trouve à l'emplacement/etc/vsftpd.confau lieu de celui indiqué ci-dessus.sudo vim /etc/vsftpd/vsftpd.confAppuyez sur
ipour passer en mode édition. -
Définissez les paramètres suivants. Les valeurs par défaut exactes varient selon la distribution Linux ; vérifiez que les deux valeurs sont bien définies sur
YESaprès modification. Assurez-vous qu'aucune de ces lignes n'est commentée avec#et évitez les espaces de fin. Fichier :/etc/vsftpd/vsftpd.confanonymous_enable=YES anon_upload_enable=YES listen=YES listen_ipv6=NO -
Ajoutez les paramètres suivants à la fin du fichier. Remplacez
39.105.xx.xxpar l'adresse IP publique de votre serveur. Fichier :/etc/vsftpd/vsftpd.conf# Enable passive mode pasv_enable=YES # Passive mode port range pasv_min_port=50000 pasv_max_port=50010 # Public IP address of the server pasv_address=39.105.xx.xxAppuyez sur
Esc, saisissez:wqet appuyez surEnterpour enregistrer et fermer. -
Accordez des permissions d'écriture sur le répertoire FTP par défaut (
/var/ftp/pub) :sudo chmod o+w /var/ftp/pub/ -
Redémarrez vsftpd :
sudo systemctl restart vsftpd.service Ouvrez FileZilla.
Accédez à File > Site Manager.
Cliquez sur New site (N) dans le coin inférieur gauche de la boîte de dialogue Site Manager.
-
Saisissez un nom pour le nouveau site et configurez la connexion :

Paramètre Valeur Name Un nom de site personnalisé. Exemple : test-01.Protocol FTP Host Adresse IP publique du serveur (exemple : 121.43.XX.XX)Port 21 Logon type Anonymous (pour le mode anonyme) ou Normal (pour le mode utilisateur local) Pour le mode utilisateur local, définissez Logon type sur Normal et saisissez le nom d'utilisateur et le mot de passe FTP.
Cliquez sur Connect.
/etc/vsftpd/vsftpd.conf: le fichier de configuration principal/etc/vsftpd/ftpusers: les utilisateurs figurant dans ce fichier sont refusés pour l'accès FTP (liste de blocage)/etc/vsftpd/user_list: les utilisateurs figurant dans ce fichier sont autorisés pour l'accès FTP (liste d'autorisation)
Étape 2 : Configurer le mode d'accès
Choisissez l'un des modes suivants. Le mode utilisateur local est recommandé pour une meilleure sécurité.
Mode utilisateur local (recommandé)
Mode utilisateur anonyme
Le mode anonyme permet à quiconque de se connecter sans mot de passe. Utilisez-le uniquement pour les transferts de fichiers publics dans des environnements hors production.
Étape 3 : Ouvrir les ports du pare-feu
Ajoutez des règles entrantes dans le pare-feu du Simple Application Server pour autoriser le trafic FTP. Le mode passif nécessite le port 21 et la plage de ports passifs. Consultez la rubrique Gérer un pare-feu pour obtenir des instructions.
| Type d'application | Protocole | Plage de ports |
|---|---|---|
| FTP | TCP | 21 |
| Personnalisé | TCP | pasv_min_port–pasv_max_port (exemple : 50000/50010) |
Les règles du pare-feu sont désormais configurées.
Étape 4 : Vérifier la connexion FTP
Utilisez FileZilla pour confirmer que le serveur FTP est accessible.
Cet exemple utilise FileZilla 3.64.0. L'interface peut différer dans d'autres versions.
Une fois connecté, utilisez FileZilla pour télécharger, téléverser ou supprimer des fichiers. L'interface est divisée en quatre sections :

| Section | Description |
|---|---|
| ① | État de la connexion, commandes et résultats des tâches |
| ② | Machine locale : liste des répertoires et des fichiers |
| ③ | Serveur distant : liste des répertoires FTP. En mode anonyme, le répertoire par défaut est /pub. |
| ④ | File d'attente de transfert et journaux des tâches |
Référence de configuration de vsftpd
Le répertoire /etc/vsftpd contient trois fichiers clés :
Paramètres de contrôle de connexion
| Paramètre | Description |
|---|---|
anonymous_enable=YES |
Accepte les utilisateurs anonymes |
no_anon_password=YES |
Ignore la demande de mot de passe pour les utilisateurs anonymes |
anon_root= |
Répertoire personnel pour les utilisateurs anonymes |
local_enable=YES |
Accepte les utilisateurs locaux |
local_root= |
Répertoire personnel pour les utilisateurs locaux |
Paramètres d'autorisation
| Paramètre | Description |
|---|---|
write_enable=YES |
Autorise tous les utilisateurs à téléverser des fichiers |
local_umask=022 |
Masque de permissions de fichier pour les téléversements des utilisateurs locaux |
file_open_mode=0666 |
Applique le umask aux permissions des fichiers téléversés |
anon_upload_enable=NO |
Autorise les utilisateurs anonymes à téléverser des fichiers |
anon_mkdir_write_enable=NO |
Autorise les utilisateurs anonymes à créer des répertoires |
anon_other_write_enable=NO |
Autorise les utilisateurs anonymes à modifier ou supprimer des fichiers |
chown_username=lightwiter |
Propriétaire attribué aux fichiers téléversés par les utilisateurs anonymes |