Tous les produits
Search
Centre de documentation

Elastic Compute Service:Set up an FTP server on a Linux instance

Dernière mise à jour :Aug 19, 2026

Installez et configurez vsftpd sur une instance ECS Linux pour permettre des transferts de fichiers FTP sécurisés.

Déploiement rapide

Cliquez sur Run now pour ouvrir Terraform Explorer et créer automatiquement un site FTP sur une instance ECS.

Prérequis

Créez une instance ECS répondant aux exigences suivantes. Pour plus d'informations, consultez la rubrique Créer une instance à l'aide de l'assistant.

  • Système d'exploitation : Alibaba Cloud Linux 3/2, CentOS 7.x 64 bits, Ubuntu ou Debian.

  • Adresse IP : L'instance dispose d'une adresse IP publique statique ou d'une Elastic IP Address.

Présentation

vsftpd (Very Secure FTP Daemon) est un serveur FTP open source destiné aux systèmes UNIX et Linux. Ses principales caractéristiques sont les suivantes :

  • Haute sécurité : audits de sécurité stricts et multiples mécanismes de prévention contre les attaques courantes.

  • Hautes performances : gestion de nombreuses connexions simultanées avec des transferts de fichiers efficaces.

  • Configuration simple : options flexibles et faciles à comprendre pour répondre à divers besoins.

  • Prise en charge d'IPv6 : compatibilité native avec les réseaux IPv6.

Configurer le service vsftpd

Alibaba Cloud Linux 3 et 2/CentOS 7.x

Étape 1 : Installer vsftpd

  1. Mettez à jour le système et installez vsftpd.

    sudo yum update -y 
    sudo yum install vsftpd -y
  2. Démarrez vsftpd et activez-le au démarrage du système.

    sudo systemctl start vsftpd
    sudo systemctl enable vsftpd 
  3. Vérifiez que le service est en cours d'exécution.

    netstat -antup | grep ftp

    La sortie suivante confirme que vsftpd est actif.

    [root@xxx ~]# systemctl start vsftpd
    [root@xxx ~]# netstat -antup | grep ftp
    tcp6       0      0 :::21                   :::*                    LISTEN      16387/vsftpd

    Par défaut, vsftpd autorise un accès anonyme en lecture seule.

Étape 2 : Configurer vsftpd

  1. Créez un utilisateur FTP. Cet exemple utilise ftpuser.

    sudo useradd -d /data/ftp -s /sbin/nologin ftpuser  # Specify the home directory and disable shell access
    sudo passwd ftpuser 
  2. Créez le répertoire FTP et définissez les autorisations.

    sudo mkdir -p /data/ftp      # Create a custom storage directory
    sudo chown ftpuser:ftpuser /data/ftp
    sudo chmod 750 /data/ftp    # Permissions must be 755 or 750
  3. Modifiez le fichier de configuration vsftpd.

    Remarque

    Utilisez le mode passif. La plupart des clients se trouvent derrière des pare-feu ou des NAT et ne peuvent pas exposer leurs adresses IP réelles.

    1. Sauvegardez le fichier de configuration vsftpd.

      sudo cp /etc/vsftpd/vsftpd.conf  /etc/vsftpd/vsftpd.conf.bak
    2. Modifiez le fichier de configuration.

      sudo vim /etc/vsftpd/vsftpd.conf
    3. Définissez la configuration de sécurité de base.

      listen=YES                   # Enable IPv4 listener
      anonymous_enable=NO          # Disable anonymous access
      local_enable=YES             # Enable local user logon
      write_enable=YES             # Allow file uploads
      chroot_local_user=YES        # Lock users to their home directory
      allow_writeable_chroot=YES   # Resolve chroot write errors
    4. Ajoutez la configuration du mode passif.

      pasv_enable=YES              # Enable passive mode
      pasv_min_port=40000          # Lower limit of the passive port range
      pasv_max_port=40100          # Upper limit of the passive port range
      pasv_address=public_ip_address      # Must be set to the server's public IP address
  4. Redémarrez vsftpd.

    sudo systemctl restart vsftpd

Étape 3 : Définir les règles du groupe de sécurité

Ajoutez des règles entrantes au groupe de sécurité pour le mode FTP configuré. Pour plus d'informations, consultez la rubrique Ajouter une règle de groupe de sécurité.

En mode actif, les clients situés derrière un NAT doivent exposer leurs adresses IP réelles, ce qui peut entraîner des échecs de connexion.

  • Mode actif : Autorisez le trafic sur le port 21.

  • Mode passif : Autorisez le trafic sur le port 21 et sur les ports 40000–40100 (pasv_min_port à pasv_max_port dans /etc/vsftpd/vsftpd.conf). Pour plus d'informations, consultez la rubrique Configuration des ports du mode passif FTP.

Étape 4 : Vérifier le service FTP

Vérifiez le service FTP à l'aide d'un client FTP, d'un navigateur ou de l'explorateur de fichiers. Cet exemple utilise l'explorateur de fichiers.

  1. Testez la connexion locale.

    Exécutez la commande suivante sur le serveur.

    ftp ftpuser@localhost 

    Le message Login successful confirme la connexion.

    # ftp ftpuser@localhost
    Connected to localhost.
    220 (vsFTPd 3.0.5)
    331 Please specify the password.
    Password:
    230 Login successful.
    Remote system type is UNIX.
    Using binary mode to transfer files.
  2. Testez la connexion cliente.

    Sur votre machine cliente, ouvrez l'explorateur de fichiers et saisissez l'adresse FTP dans la barre d'adresse.

    Le format de l'adresse est ftp://<FTP_server_public_IP_address>:21. Une fois la connexion établie, l'explorateur de fichiers affiche les fichiers contenus dans le répertoire du serveur FTP.

    Saisissez le nom d'utilisateur et le mot de passe FTP pour vous connecter. Vous pouvez ensuite télécharger et envoyer des fichiers.

Ubuntu et Debian

Étape 1 : Installer vsftpd

  1. Mettez à jour le système et installez vsftpd.

    sudo apt update && sudo apt upgrade -y
    sudo apt install vsftpd -y
  2. Démarrez vsftpd et activez-le au démarrage du système.

    sudo systemctl start vsftpd
    sudo systemctl enable vsftpd

Étape 2 : Configurer vsftpd

  1. Créez un utilisateur FTP dédié.

    sudo useradd -m -s /bin/bash ftpuser  # Create a user and automatically generate a home directory
    sudo passwd ftpuser  # Set the user password (a strong password is recommended)
  2. Créez le répertoire de stockage des fichiers et définissez les autorisations.

    sudo mkdir /home/ftpuser/ftp-files
    sudo chown ftpuser:ftpuser /home/ftpuser/ftp-files
    sudo chmod 755 /home/ftpuser/ftp-files
  3. Sauvegardez le fichier de configuration d'origine.

    sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
  4. Modifiez le fichier de configuration.

    sudo nano /etc/vsftpd.conf

    Appliquez les paramètres suivants :

    # Basic configuration
    listen=YES
    anonymous_enable=NO          # Disable anonymous access
    local_enable=YES             # Allow local user logon
    write_enable=YES             # Enable write permissions
    chroot_local_user=YES        # Lock users in their home directory

    Ajoutez les lignes suivantes :

    allow_writeable_chroot=YES   # Allow writing to the chroot directory
    local_root=/home/ftpuser/ftp-files  # Specify the root directory for the ftp user
    # Passive mode configuration (to resolve external network connection issues)
    pasv_enable=YES
    pasv_address=  # Replace with your public IP address
    pasv_min_port=40000
    pasv_max_port=40100
  5. Redémarrez vsftpd.

    sudo systemctl restart vsftpd
  6. vsftpd crée par défaut un utilisateur ftp sans mot de passe. Définissez un mot de passe pour cet utilisateur.

     sudo passwd ftp

    Définissez un mot de passe robuste et ignorez toutes les autres invites.

  7. Ajoutez l'utilisateur à la liste d'autorisation des utilisateurs FTP.

     echo "ftp" | sudo tee -a /etc/vsftpd.userlist
  8. Créez un répertoire FTP et définissez les autorisations.

    1. Créez un dossier FTP.

       sudo mkdir /home/ftp
    2. Définissez les autorisations du dossier.

      Cette opération accorde des autorisations complètes (777). Ajustez selon vos besoins.
       sudo chmod 777 /home/ftp

Étape 3 : Définir les règles du groupe de sécurité

Ajoutez des règles entrantes au groupe de sécurité pour le mode FTP configuré. Pour plus d'informations, consultez la rubrique Ajouter une règle de groupe de sécurité.

En mode actif, les clients situés derrière un NAT doivent exposer leurs adresses IP réelles, ce qui peut entraîner des échecs de connexion.

  • Mode actif : Autorisez le trafic sur le port 21.

  • Mode passif : Autorisez le trafic sur le port 21 et sur les ports 40000–40100 (pasv_min_port à pasv_max_port dans /etc/vsftpd/vsftpd.conf). Pour plus d'informations, consultez la rubrique Configurer un site FTP sous Windows.

Étape 4 : Vérifier le service FTP

Vérifiez le service FTP à l'aide d'un client FTP, d'un navigateur ou de l'explorateur de fichiers. Cet exemple utilise l'explorateur de fichiers.

  1. Testez la connexion locale.

    Exécutez la commande suivante sur le serveur.

    ftp ftpuser@localhost 

    Le message Login successful confirme la connexion.

    # ftp ftpuser@localhost
    Connected to localhost.
    220 (vsFTPd 3.0.5)
    331 Please specify the password.
    Password:
    230 Login successful.
    Remote system type is UNIX.
    Using binary mode to transfer files.
  2. Testez la connexion cliente.

    Sur votre machine cliente, ouvrez l'explorateur de fichiers et saisissez l'adresse FTP dans la barre d'adresse.

    Le format de l'adresse est ftp://<FTP_server_public_IP_address>:21. Une fois la connexion établie, l'explorateur de fichiers affiche les fichiers contenus dans le répertoire du serveur FTP.

    Saisissez le nom d'utilisateur et le mot de passe FTP pour vous connecter. Vous pouvez ensuite télécharger et envoyer des fichiers.

Dépannage

Problème

Solution

Délai d'attente dépassé après 227 Entering Passive Mode

Vérifiez l'adresse IP publique et les règles du pare-feu sur le client et le serveur.

550 Permission denied

Définissez les autorisations du répertoire sur 755.

Seuls des répertoires vides sont listés

Vérifiez la configuration chroot_local_user.

500 OOPS: vsftpd: refusing to run with writable root

Exécutez chmod a-w /data/ftp.

Délai d'attente de connexion en mode passif

Vérifiez les règles du pare-feu et le paramètre pasv_address.

Impossible de télécharger des fichiers

Vérifiez que les autorisations du répertoire sont définies sur 755 ou 750.

Annexe

Fichier de configuration et paramètres vsftpd

Fichiers présents dans le répertoire /etc/vsftpd :

  • /etc/vsftpd/vsftpd.conf : Fichier de configuration principal de vsftpd.

  • /etc/vsftpd/ftpusers : Liste de blocage. Les utilisateurs répertoriés ici n'ont pas accès au FTP.

  • /etc/vsftpd/user_list : Liste d'autorisation. Les utilisateurs répertoriés ici ont accès au FTP.

Paramètres du fichier de configuration vsftpd.conf :

  • Paramètres de contrôle de connexion :

    Paramètre

    Description

    anonymous_enable=YES

    Accepte les utilisateurs anonymes.

    no_anon_password=YES

    Les utilisateurs anonymes peuvent se connecter sans mot de passe.

    anon_root=(none)

    Répertoire personnel des utilisateurs anonymes.

    local_enable=YES

    Accepte les utilisateurs locaux.

    local_root=(none)

    Répertoire personnel des utilisateurs locaux.

  • Paramètres de contrôle des autorisations utilisateur :

    Paramètre

    Description

    write_enable=YES

    Autorise le téléchargement de fichiers (global).

    local_umask=022

    Autorisations de fichiers pour les téléchargements des utilisateurs locaux.

    file_open_mode=0666

    Autorisations de fichiers pour les téléchargements. Fonctionne avec local_umask.

    anon_upload_enable=NO

    Autorise le téléchargement de fichiers par les utilisateurs anonymes.

    anon_mkdir_write_enable=NO

    Autorise la création de répertoires par les utilisateurs anonymes.

    anon_other_write_enable=NO

    Autorise les opérations de modification et de suppression par les utilisateurs anonymes.

    chown_username=lightwiter

    Propriétaire attribué aux fichiers téléchargés par les utilisateurs anonymes.