Comment configurer un serveur FTP et un utilisateur FTP sur mon instance Lightsail ?

Lecture de 5 minute(s)
0

Je souhaite configurer un serveur FTP (File Transfer Protocol) et un utilisateur FTP sur mon instance Amazon Lightsail qui exécute Amazon Linux 2, CentOS, Ubuntu ou Debian.

Résolution

Remarque : le protocole FTP transmet toutes les données et tous les mots de passe sous forme de texte brut. Le protocole SFTP (SSH File Transfer Protocol) est un moyen plus sécurisé de vous connecter à votre instance et de transmettre des données. Pour en savoir plus sur l'utilisation du protocole SFTP, consultez la page Connexion à votre instance Linux ou Unix dans Amazon Lightsail à l'aide du protocole SFTP.

Configuration d'un serveur FTP et d'un utilisateur FTP

1.    Exécutez la commande suivante pour installer le package VSFTPD :

Amazon Linux 2 et CentOS :

sudo yum install vsftpd -y

Ubuntu et Debian :

sudo apt install vsftpd -y

Si vous recevez un message d'erreur indiquant que le package n'est pas disponible, exécutez la commande suivante pour mettre à jour les listes de packages :

sudo apt update -y

2.    Modifiez le fichier vsftpd.config afin de mettre à jour les variables de votre environnement.

L'emplacement du fichier vsftpd.config varie selon les systèmes d'exploitation :

  • Amazon Linux 2 et CentOS : /etc/vsftpd/vsftpd.conf
  • Debian et Ubuntu : /etc/vsftpd.conf

Dans l'exemple suivant, vous devez mettre à jour les variables en fonction de votre cas d'utilisation. Les paramètres suivants sont communs à tous les systèmes d'exploitation.

anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=NO
xferlog_std_format=YES
chroot_local_user=YES
allow_writeable_chroot=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=NO
listen_port=10021
pasv_enable=YES
pasv_min_port=21000
pasv_max_port=21999
pasv_addr_resolve=NO

Remarque : le port 21 est le port par défaut pour FTP. Toutefois, pour des raisons de sécurité, le port personnalisé 10021 est utilisé comme port FTP dans l'exemple précédent. Pour personnaliser le port, remplacez le port listen_port par le port de votre choix, puis réglez connect_from_port_20 sur NON. Veillez à activer les ports que vous prévoyez d'utiliser pour le protocole FTP sur le pare-feu de votre instance. Dans l'exemple précédent, les ports 10021 et 21000-21999 sont activés sur le pare-feu personnalisé et le pare-feu Lightsail. De plus, les paramètres listen et listen_ipv6 ne peuvent pas coexister dans le fichier. Mettez à jour votre fichier de configuration afin qu'un seul d'entre eux soit défini sur OUI.

Les paramètres suivants sont spécifiques aux systèmes d'exploitation. En plus de l'exemple précédent, vous devez modifier les variables suivantes en fonction de votre système d'exploitation.

Amazon Linux 2 et CentOS

chroot_list_file=/etc/vsftpd/chroot_listuserlist_file=/etc/vsftpd/user_list

Debian et Ubuntu :

chroot_list_file=/etc/vsftpd.chroot_listuserlist_file=/etc/vsftpd.userlist

3.    Exécutez la commande suivante pour ajouter l'utilisateur FTP :

sudo useradd -m ftp_user

Remarque : dans l'exemple précédent, remplacez ftp_user par le nom d'utilisateur de votre choix.

4.    Exécutez la commande suivante pour créer un mot de passe pour l'utilisateur :

sudo passwd ftp_user

5.    Exécutez la commande suivante pour modifier le propriétaire du fichier /home/ftp_user. Cette commande fait de ftp_user le propriétaire du fichier.

sudo chown ftp_user:ftp_user -R /home/ftp_user/

6.    Exécutez la commande suivante pour ajouter le nouvel utilisateur à vsftpd_user_list. Utilisez l'indicateur -a pour ajouter des données au fichier.

Amazon Linux 2 et CentOS

sudo echo "ftp_user" | sudo tee -a /etc/vsftpd/user_list

Debian et Ubuntu

Exécutez la commande suivante pour créer le fichier userlist et y ajouter le nouvel utilisateur :

sudo echo "ftp_user" | sudo tee -a /etc/vsftpd.userlist

7.    Redémarrez le service vsftpd :

sudo systemctl restart vsftpd

8.    Connectez-vous au serveur FTP. L'exemple suivant utilise le protocole FTP brut de Filezilla.

Status:    Connecting to 54.xxx.xxx.x2:10021...
Status:    Connection established, waiting for welcome message...
Status:    Plain FTP is insecure. Please switch to FTP over TLS.
Status:    Logged in
Status:    Retrieving directory listing...
Status:    Server sent passive reply with unroutable address. Using server address instead.
Status:    Calculating timezone offset of server...
Status:    Timezone offset of server is 0 seconds.
Status:    Directory listing of "/" successful
Status:    Connecting to 54.xxx.1xx.52:10021...
Status:    Connection established, waiting for welcome message...
Status:    Plain FTP is insecure. Please switch to FTP over TLS.
Status:    Logged in
Status:    Starting upload of C:\Users\Administrator\Documents\FTPtest.txt
Status:    Server sent passive reply with unroutable address. Using server address instead.
Status:    File transfer successful, transferred 10 bytes in 1 second
Status:    Retrieving directory listing of "/"...
Status:    Server sent passive reply with unroutable address. Using server address instead.
Status:    Directory listing of "/" successful

Résolution des problèmes liés à la configuration d'un serveur FTP

Si les paramètres du fichier de configuration vsftpd.conf ne sont pas correctement configurés, le serveur FTP risque de ne pas démarrer. Dans ce cas, exécutez la commande suivante pour identifier les options qui ne sont pas correctement configurées :

Amazon Linux 2 et CentOS

sudo /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

Debian et Ubuntu

sudo /usr/sbin/vsftpd /etc/vsftpd.conf
AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 10 mois