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
-
Mettez à jour le système et installez
vsftpd.sudo yum update -y sudo yum install vsftpd -y -
Démarrez vsftpd et activez-le au démarrage du système.
sudo systemctl start vsftpd sudo systemctl enable vsftpd -
Vérifiez que le service est en cours d'exécution.
netstat -antup | grep ftpLa sortie suivante confirme que vsftpd est actif.
[root@xxx ~]# systemctl start vsftpd [root@xxx ~]# netstat -antup | grep ftp tcp6 0 0 :::21 :::* LISTEN 16387/vsftpdPar défaut, vsftpd autorise un accès anonyme en lecture seule.
Étape 2 : Configurer vsftpd
-
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 -
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 -
Modifiez le fichier de configuration
vsftpd.RemarqueUtilisez 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.
-
Sauvegardez le fichier de configuration
vsftpd.sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak -
Modifiez le fichier de configuration.
sudo vim /etc/vsftpd/vsftpd.conf -
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 -
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
-
-
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.
-
Testez la connexion locale.
Exécutez la commande suivante sur le serveur.
ftp ftpuser@localhostLe message
Login successfulconfirme 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. -
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
-
Mettez à jour le système et installez
vsftpd.sudo apt update && sudo apt upgrade -y sudo apt install vsftpd -y -
Démarrez
vsftpdet activez-le au démarrage du système.sudo systemctl start vsftpd sudo systemctl enable vsftpd
Étape 2 : Configurer vsftpd
-
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) -
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 -
Sauvegardez le fichier de configuration d'origine.
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak -
Modifiez le fichier de configuration.
sudo nano /etc/vsftpd.confAppliquez 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 directoryAjoutez 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 -
Redémarrez vsftpd.
sudo systemctl restart vsftpd -
vsftpd crée par défaut un utilisateur ftp sans mot de passe. Définissez un mot de passe pour cet utilisateur.
sudo passwd ftpDéfinissez un mot de passe robuste et ignorez toutes les autres invites.
-
Ajoutez l'utilisateur à la liste d'autorisation des utilisateurs FTP.
echo "ftp" | sudo tee -a /etc/vsftpd.userlist -
Créez un répertoire FTP et définissez les autorisations.
-
Créez un dossier FTP.
sudo mkdir /home/ftp -
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.
-
Testez la connexion locale.
Exécutez la commande suivante sur le serveur.
ftp ftpuser@localhostLe message
Login successfulconfirme 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. -
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 |
Vérifiez l'adresse IP publique et les règles du pare-feu sur le client et le serveur. |
|
|
Définissez les autorisations du répertoire sur 755. |
|
Seuls des répertoires vides sont listés |
Vérifiez la configuration |
|
|
Exécutez |
|
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.