FTP ou 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 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 allons installer le serveur FTP vsftpd sur Debian 11 .
Étape 1 :Installez le package vsftpd
Tout d'abord, mettez à jour la liste des packages et mettez à niveau votre serveur Debian.
# apt update
# apt upgrade
Ensuite, installez le package vsftpd.
# apt install vsftpd
Une fois installé, vsftpd démarre automatiquement. Vous pouvez le confirmer en exécutant la commande :
# systemctl status vsftpd.service
Étape 2 :Créer un utilisateur FTP
Ensuite, nous allons créer un compte utilisateur FTP unique que nous allons utiliser pour nous connecter au serveur FTP. utilisez le adduser commande suivie du nom de l'utilisateur et répondez aux invites en conséquence.
# adduser unixcop-user
Étape 3 :Ajoutez un utilisateur FTP à la liste des utilisateurs autorisés à se connecter
Maintenant, nous allons ajouter l'utilisateur FTP à la vsftp.userlist dossier. Les utilisateurs locaux spécifiés dans ce fichier sont autorisés à accéder au serveur FTP.
# echo unixcop-user >> /etc/vsftpd.userlist
Étape 4 :Créer un répertoire d'utilisateurs FTP
Maintenant, créez un répertoire FTP pour l'utilisateur FTP et attribuez les autorisations et la propriété du répertoire appropriées.
# mkdir -p /home/unixcop-user/ftp-dir
# chmod -R 750 /home/unixcop-user/ftp-dir
# chown -R unixcop-user: /home/unixcop-user/ftp-dir
Étape 5 :Configurer le service vsftpd
Maintenant, nous devons continuer et éditer le fichier de configuration principal /etc/vsftpd.conf
# nano /etc/vsftpd.conf
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 /etc/vsftpd.userlist fichier.
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
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érerun certificat SSL auto-signé pour chiffrer le serveur. Pour ce faire, exécutez la commande.
# openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd-key.pem -out /etc/ssl/private/vsftpd-cert.pem
Revenez au fichier de configuration par défaut /etc/vsftpd.conf , 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-cert.pem
rsa_private_key_file=/etc/ssl/private/vsftpd-key.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.userlist
userlist_deny=NO
Pour que les modifications prennent effet, redémarrez le serveur.
# systemctl restart vsftpd.service
# systemctl status vsftpd.service
Étape 5 :Accéder au serveur vsftpd
Nous en avons maintenant terminé avec les configurations. La dernière chose est d'autoriser les ports 20 et 21 si le pare-feu est activé.
# ufw allow 20/tcp
# ufw allow 21/tcp
# ufw reload
Enfin, récupérez votre client FTP tel que FileZilla, et remplissez les détails comme suit :
Hébergeur :IP-serveur
Nom d'utilisateur : utilisateur-unixcop
Mot de passe :Mot de passe de l'utilisateur unixcop
Une fois la liste des répertoires réussie, vous pouvez maintenant commencer à transférer des fichiers en toute sécurité via SSL.
Et comme ça, nous appris à installer le serveur ftp vsftpd sur Debian 11.