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 uniquement lorsque 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 peut 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.
-
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.
É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é)
-
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.confà la place.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 empêchent vsftpd de redémarrer correctement./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./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, puis tapez: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, puis tapez: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, puis tapez:wq!et appuyez surEnterpour enregistrer et fermer. -
Redémarrez vsftpd pour appliquer toutes les modifications :
sudo systemctl restart vsftpd.service
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.
-
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.confà la place.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
YESaprès modification. Assurez-vous qu'aucune de ces lignes n'est commentée avec#et évitez les espaces de fin./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./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, puis tapez:wqet appuyez surEnterpour enregistrer et fermer. -
Accordez des autorisations 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
É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) |
Après avoir ajouté les règles, elles apparaissent sur la page Firewall :

É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.
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.
Une fois connecté, utilisez FileZilla pour télécharger, envoyer 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 :
/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)
Paramètres de contrôle de connexion
| Paramètre | Description |
|---|---|
anonymous_enable=YES |
Accepter les utilisateurs anonymes |
no_anon_password=YES |
Ignorer la demande de mot de passe pour les utilisateurs anonymes |
anon_root= |
Répertoire personnel pour les utilisateurs anonymes |
local_enable=YES |
Accepter les utilisateurs locaux |
local_root= |
Répertoire personnel pour les utilisateurs locaux |
Paramètres d'autorisation
| Paramètre | Description |
|---|---|
write_enable=YES |
Autoriser tous les utilisateurs à envoyer des fichiers |
local_umask=022 |
Masque d'autorisations de fichier pour les envois des utilisateurs locaux |
file_open_mode=0666 |
Appliquer umask aux autorisations des fichiers envoyés |
anon_upload_enable=NO |
Autoriser les utilisateurs anonymes à envoyer des fichiers |
anon_mkdir_write_enable=NO |
Autoriser les utilisateurs anonymes à créer des répertoires |
anon_other_write_enable=NO |
Autoriser les utilisateurs anonymes à modifier ou supprimer des fichiers |
chown_username=lightwiter |
Propriétaire attribué aux fichiers envoyés par les utilisateurs anonymes |