FTP, abréviation de File Transfer Protocol, est un protocole populaire pour transférer des fichiers vers et depuis un serveur FTP. Cependant, il présente des risques de sécurité car il envoie des données et des informations sensibles telles que des noms d’utilisateur et des mots de passe en texte brut. VSFTPD (Very Secure FTP Daemon) est un serveur FTP rapide, sécurisé et stable qui utilise le cryptage pour sécuriser les données échangées avec le serveur.
Dans ce tutoriel, nous apprenons à installer le serveur FTP vsftpd au Debian 11.
Étape 1 : Installer vsftpd sur Debian 11
Tout d’abord, ouvrez le terminal et mettez à jour les listes de paquets sur votre serveur Debian.
$ sudo apt update
Le paquet vsftpd est hébergé sur les dépôts officiels de Debian. Par conséquent, utilisez le gestionnaire de packages APT comme indiqué.
$ sudo apt install vsftpd
La commande installe vsftpd, aux côtés d’autres dépendances. Une fois installé, vsftpd démarre automatiquement. Vous pouvez le confirmer en exécutant la commande :
$ sudo systemctl status vsftpd
À partir de la sortie, vous pouvez voir que vsftpd s’exécute comme prévu.
Si le service vsftpd ne fonctionne pas dans votre cas, vous pouvez le démarrer comme indiqué.
$ sudo systemctl start vsftpd
Activez ensuite le démarrage du service au démarrage.
$ sudo systemctl enable vsftpd
Étape 2 : Créez un utilisateur FTP unique
Ensuite, nous allons créer un compte utilisateur FTP unique que nous allons utiliser pour nous connecter au serveur FTP. Utilisez simplement le adduser
commande suivie du nom de l’utilisateur et répondez aux invites en conséquence.
$ sudo adduser ftpuser

Étape 3 : ajouter un utilisateur FTP à la liste des utilisateurs de connexion autorisés
En continuant, nous ajouterons l’utilisateur FTP au vsftpd.userlist
déposer. Les utilisateurs locaux spécifiés dans ce fichier sont autorisés à accéder au serveur FTP.
Alors, exécutez la commande :
$ echo "ftpuser" | sudo tee -a /etc/vsftpd.userlist

Parfait. Continuons maintenant et configurons vsftpd.
Étape 4 : Créer un répertoire d’utilisateurs FTP
Ensuite, créez un répertoire FTP pour l’utilisateur FTP et attribuez les autorisations et la propriété de répertoire appropriées.
$ sudo mkdir -p /home/ftpuser/ftp_dir
$ sudo chmod -R 750 /home/ftpuser/ftp_dir
$ sudo chown -R ftpuser: /home/ftpuser/ftp_dir
Étape 5 : Configurer vsftpd
Quelques étapes supplémentaires sont nécessaires avant que nous puissions nous connecter et commencer à interagir avec le serveur. Continuez et éditez le fichier de configuration principal – /etc/vsftpd.conf
.
$ sudo vim /etc/vsftpd.conf
Vous devez vous assurer que certains paramètres sont définis.
Commençons d’abord par Accès FTP. Par défaut, l’accès est accordé aux utilisateurs anonymes. Mais ce n’est pas ce que nous voulons pour des raisons de sécurité. Par conséquent, nous désactiverons la connexion par l’utilisateur anonyme et n’accorderons l’accès qu’à l’utilisateur local.
anonymous_enable=NO
local_enable=YES
Ensuite, vous devez autoriser l’utilisateur local à télécharger des fichiers et à accéder à son répertoire de base, ainsi qu’à apporter des modifications aux fichiers comme indiqué.
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
De plus, vous pouvez limiter les utilisateurs locaux qui peuvent accéder et télécharger des fichiers en spécifiant uniquement les utilisateurs contenus dans le vsftpd.userlist
déposer.
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO
Pour fournir une connexion FTP sécurisée au serveur, nous devons crypter le serveur à l’aide d’un certificat SSL. Nous allons générer un certificat SSL auto-signé pour chiffrer le serveur. Pour ce faire, exécutez la commande.
$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
Revenez au fichier de configuration par défaut et collez ces lignes pour spécifier le chemin des certificats SSL générés et activer SSL.
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=YES
En résumé, votre fichier de configuration doit contenir ces lignes :
écouter = NON
listen_ipv6=OUI
anonyme_enable=NON
local_enable=OUI
write_enable=OUI
dirmessage_enable=OUI
use_localtime=OUI
xferlog_enable=OUI
connect_from_port_20=OUI
chroot_local_user=OUI
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=OUI
user_sub_token=$USER
racine_locale=/home/$USER/ftp
userlist_enable=OUI
userlist_file=/etc/vsftpd.user_list
userlist_deny=NON
Pour que les modifications prennent effet, redémarrez le serveur.
$ sudo systemctl restart vsftpd
Juste pour vous assurer que tout va bien, vous pouvez vérifier son état de fonctionnement.
$ sudo systemctl status vsftpd
Étape 5 : Accéder au serveur vsftpd
Nous en avons maintenant terminé avec les configurations. Le dernier bit consiste à vous connecter. Si vous avez un pare-feu activé, autorisez les ports 20 et 21.
$ sudo ufw allow 20/tcp
$ sudo ufw allow 21/tcp
Rechargez ensuite le pare-feu pour que les modifications s’appliquent.
$ sudo ufw reload
Enfin, récupérez votre client FTP tel que FileZilla et remplissez les détails comme suit :
Héberger: sftp://serveur-IP
Nom d’utilisateur: ftpuser
Mot de passe: Mot de passe de ftpuser
Une fois que vous avez rempli les détails, cliquez sur le bouton « QuickConnect ».

Une fois la liste des répertoires réussie, vous pouvez maintenant commencer à transférer des fichiers en toute sécurité via SSL.

Sur la ligne de commande, exécutez simplement la commande :
$ sftp ftpuser@server-IP
Tapez « oui » lorsque vous êtes invité à continuer et fournissez le mot de passe à l’utilisateur FTP pour se connecter.

Conclusion
Il s’agissait d’un didacticiel où nous avons appris à installer le serveur FTP vsftpd sur Debian 11. Nous sommes allés de l’avant et avons créé l’utilisateur, configuré le serveur et connecté à partir d’un client FTP et sur la ligne de commande.