Tous les produits
Search
Centre de documentation

Simple Application Server:Configurer un serveur FTP (Linux)

Dernière mise à jour :Sep 21, 2026

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.

Remarque

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 :

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

  1. Connectez-vous à votre serveur Linux.

  2. 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 -v

    Si la sortie affiche un numéro de version, vsftpd est déjà installé :

    vsftpd: version 3.0.2

    Si 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.

  3. 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 vsftpd

    Un message de succès confirme l'installation.

    Installed:
      vsftpd.x86_64 0:3.0.2-28.el7
    Complete!
  4. Activez le démarrage automatique de vsftpd au démarrage du système :

    sudo systemctl enable vsftpd.service
  5. Démarrez vsftpd :

    sudo systemctl start vsftpd.service
    Remarque

    Si 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écutez lsof -i:21 pour identifier le processus, puis exécutez kill -9 <PID> pour l'arrêter avant de redémarrer vsftpd.

  6. Vérifiez que vsftpd est en cours d'exécution :

    sudo netstat -antup | grep ftp

    Si 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
  7. É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é)

    1. Créez un utilisateur Linux dédié pour l'accès FTP. Cet exemple utilise ftptest.

      sudo adduser ftptest
    2. Définissez un mot de passe pour l'utilisateur :

      sudo passwd ftptest

      Suivez les instructions pour saisir et confirmer le mot de passe.

    3. Créez le répertoire FTP :

      sudo mkdir /var/ftp/test
    4. Attribuez la propriété du répertoire à ftptest :

      sudo chown -R ftptest:ftptest /var/ftp/test
    5. Sauvegardez le fichier de configuration de vsftpd avant de le modifier :

      sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
    6. Ouvrez le fichier de configuration pour le modifier :

      Remarque

      Si vous avez installé vsftpd avec apt install vsftpd, le fichier de configuration se trouve à l'emplacement /etc/vsftpd.conf au lieu de celui indiqué ci-dessus.

      sudo vim /etc/vsftpd/vsftpd.conf

      Appuyez sur i pour passer en mode édition.

    7. 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=YES

      Commentez l'écouteur IPv6 en ajoutant # au début de la ligne :

      #listen_ipv6=YES
    8. Ajoutez les paramètres suivants à la fin du fichier. Remplacez 39.105.xx.xx par 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=50010

      Appuyez sur Esc, saisissez :wq et appuyez sur Enter pour enregistrer et fermer.

    9. 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_list

      Appuyez sur i pour 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 sur Esc, saisissez :wq et appuyez sur Enter pour enregistrer et fermer.

    10. 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
    11. Activez l'authentification par mot de passe dans la configuration SSH :

       sudo vi /etc/ssh/sshd_config

      Trouvez PasswordAuthentication à la fin du fichier et définissez-le sur yes. Appuyez sur Esc, saisissez :wq! et appuyez sur Enter pour 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
    12. Redémarrez vsftpd pour appliquer toutes les modifications :

       sudo systemctl restart vsftpd.service

    Mode utilisateur anonyme

    Important

    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.

    1. Ouvrez le fichier de configuration de vsftpd :

      Remarque

      Si vous avez installé vsftpd avec apt install vsftpd, le fichier de configuration se trouve à l'emplacement /etc/vsftpd.conf au lieu de celui indiqué ci-dessus.

      sudo vim /etc/vsftpd/vsftpd.conf

      Appuyez sur i pour passer en mode édition.

    2. 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 YES après modification. Assurez-vous qu'aucune de ces lignes n'est commentée avec # et évitez les espaces de fin. Fichier : /etc/vsftpd/vsftpd.conf

      anonymous_enable=YES
      anon_upload_enable=YES
      listen=YES
      listen_ipv6=NO
    3. Ajoutez les paramètres suivants à la fin du fichier. Remplacez 39.105.xx.xx par 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.xx

      Appuyez sur Esc, saisissez :wq et appuyez sur Enter pour enregistrer et fermer.

    4. Accordez des permissions d'écriture sur le répertoire FTP par défaut (/var/ftp/pub) :

      sudo chmod o+w /var/ftp/pub/
    5. 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)

    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.

    Remarque

    Cet exemple utilise FileZilla 3.64.0. L'interface peut différer dans d'autres versions.

    1. Ouvrez FileZilla.

    2. Accédez à File > Site Manager.

    3. Cliquez sur New site (N) dans le coin inférieur gauche de la boîte de dialogue Site Manager.

    4. Saisissez un nom pour le nouveau site et configurez la connexion :

      filezilla

      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.

    5. Cliquez sur Connect.

    Une fois connecté, utilisez FileZilla pour télécharger, téléverser ou supprimer des fichiers. L'interface est divisée en quatre sections :

    filezilla

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