
FTP, abréviation de File Transfer Protocol, est un protocole populaire pour transférer des fichiers vers et depuis un serveur FTP. Cependant, il comporte de nombreux risques de sécurité car il envoie des données et des informations sensibles telles que les noms d'utilisateur et les 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 sur Debian 11 .
Étape 1 :Installez vsftpd sur Debian 11
Commencez par ouvrir 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 Debian officiels. Par conséquent, utilisez le gestionnaire de packages APT comme indiqué.
$ sudo apt install vsftpd
La commande installe vsftpd, ainsi que 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 service pour qu'il démarre 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 :Ajoutez un utilisateur FTP à la liste des utilisateurs autorisés à se connecter
Ensuite, nous ajouterons l'utilisateur FTP au vsftpd.userlist
dossier. Les utilisateurs locaux spécifiés dans ce fichier sont autorisés à accéder au serveur FTP.
Exécutez donc 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é du 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 de pouvoir se connecter et commencer à interagir avec le serveur. Continuez et modifiez le fichier de configuration principal - /etc/vsftpd.conf
.
$ sudo vim /etc/vsftpd.conf
Il y a quelques paramètres dont vous devez vous assurer qu'ils sont définis.
Commençons d'abord par l'accès FTP . Par défaut, les utilisateurs anonymes sont autorisés à accéder. 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 personnel, 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
fichier.
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO
Pour fournir une connexion FTP sécurisée au serveur, nous devons chiffrer 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 :
listen=NO
listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
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=YES
user_sub_token=$USER
local_root=/home/$USER/ftp
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
userlist_deny=NO
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. La dernière étape consiste à se 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ébergeur :sftp://IP-serveur
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, lancez 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 dans lequel nous avons appris à installer le serveur FTP vsftpd sur Debian 11. Nous sommes allés plus loin et avons créé l'utilisateur, configuré le serveur et nous nous sommes connectés à partir d'un client FTP et sur la ligne de commande.