Comment installer le serveur FTP vsftpd et le sécuriser avec TLS sur Debian 11

Le protocole de transfert de fichiers ou FTP est un très ancien et l’un des protocoles réseau les plus connus. Il n’est pas sécurisé par rapport à SFTP ou SCP de nos jours mais reste le premier choix de nombreux utilisateurs pour transférer des fichiers entre un serveur et un client. FTP est considéré comme non sécurisé car il transfère des données avec les informations d’identification de l’utilisateur sans aucun type de cryptage.

Nous disposons aujourd’hui d’un large éventail de serveurs FTP open-source comme FTPD, VSFTPD, PROFTPD et pureftpd. Parmi tous ces serveurs, VSFTPD est un protocole très sûr, rapide et très utilisé pour transférer des fichiers entre deux systèmes.

VSFTPD est aussi connu sous le nom de « Very Secure File Transfer Protocol Daemon » et prend en charge SSL, IPv6, FTPS explicite et implicite.

Dans ce guide, nous allons te montrer comment installer le serveur FTP vsftpd sur Debian 11.

Conditions préalables

Un serveur fonctionnant sous Debian 11.
Un utilisateur non-root avec les privilèges sudo.

1. Installer Vsftpd

Avant de commencer l’installation, mets à jour ton serveur Debian 11 en exécutant la commande suivante dans le terminal :

sudo apt update -y
sudo apt upgrade -y

Debian a un très grand dépôt et le paquet vsftpd est disponible dans le dépôt officiel. Tu peux donc facilement installer vsftpd en exécutant la commande suivante :

sudo apt install vsftpd -y

Après l’installation du paquet, démarre le service vsftpd, vérifie l’état du service et active le service au démarrage.

sudo systemctl start vsftpd

sudo systemctl status vsftpd

systemctl enable vsftpd.service

2. Crée un utilisateur FTP et configure pour la connexion FTP

Maintenant, crée un nouveau compte utilisateur pour le FTP, en utilisant cet utilisateur nous nous connecterons au serveur FTP plus tard.

sudo adduser sohan

Les utilisateurs ajoutés dans le fichier vsftpd.userlist ont la permission d’accéder au serveur FTP.

Ensuite, nous devons ajouter l’utilisateur sohan dans la liste des utilisateurs vsftpd. Ouvre le fichier et ajoute un utilisateur en exécutant la commande suivante :

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

3. Créer le répertoire de l’utilisateur FTP

Ensuite, nous devons créer un répertoire FTP pour notre utilisateur FTP et définir la propriété avec la commande suivante :

sudo mkdir -p /home/sohan/ftp_directory

sudo chown nobody:nogroup /home/sohan/ftp_directory

sudo chmod a-w /home/sohan/ftp_directory

Maintenant, crée un répertoire où les fichiers peuvent être téléchargés et donne la propriété à l’utilisateur sohan en exécutant la commande :

sudo mkdir -p /home/sohan/ftp_directory/ftp_data
sudo chown sohan:sohan /home/sohan/ftp_directory/ftp_data
cd /home/sohan/ftp_directory/
chmod -R 777 ftp_data

Créer un répertoire FTP

4. Configurer Vsftpd

Ensuite, tu dois modifier certains paramètres par défaut pour configurer un serveur FTP.

Tout d’abord, crée une copie de sauvegarde du fichier de configuration vsftpd original.

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak

Dans le serveur FTP, les utilisateurs anonymes ont un accès par défaut. Pour rendre le serveur FTP plus sûr, nous allons désactiver la connexion des utilisateurs anonymes et n’accorder l’accès qu’à l’utilisateur spécifique.

Ensuite, ouvre le fichier vsftpd.conf et apporte les modifications comme ci-dessous :

vim /etc/vsftpd.conf
anonymous_enable=NO

local_enable=YES

Il y a d’autres changements que nous devons faire dans la configuration, Ouvre d’abord vsftpd.conf

sudo vim /etc/vsftpd.conf

Ensuite, vérifie que vsftpd.conf doit contenir les lignes suivantes :

listen=NO
listen_ipv6=YES
anonymous_enable=NO
write_enable=YES
local_umask=022
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
user_sub_token=$USER
local_root=/home/$USER/ftp_directory
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO

Sauvegarde et ferme le fichier. Tu peux modifier la configuration ci-dessus en fonction de tes besoins.

Maintenant, redémarre le service vsftpd et vérifie l’état du service en exécutant les commandes suivantes :

sudo systemctl restart vsftpd

Ensuite, vérifie que le service vsftpd est dans son état de fonctionnement en exécutant la commande suivante dans le Terminal :

sudo systemctl status vsftpd

5. Autorise vsftpd dans le pare-feu et accède au serveur vsftpd

Ensuite, si tu utilises un pare-feu, autorise les ports 21 et 22 en exécutant la commande suivante :

sudo ufw allow 21/tcp

sudo ufw allow 22/tcp

Recharge ensuite le pare-feu pour appliquer les modifications :

sudo ufw reload

Ensuite, ouvre un client FTP comme FileZilla et entre les détails de ton serveur, comme Protocole, Hôte, Utilisateur :


Maintenant, clique sur connecter, puis entre ton mot de passe :

Sais de mot de mot de d'entrée

Ensuite, il affichera les détails comme ci-dessous, clique sur OK.

Accepter le nouvel hôte

À ce stade, tu es connecté au serveur FTP, et tu peux télécharger des fichiers/dossiers.

La connexion au serveur FTP a réussi

6. Sécuriser Vsftpd en utilisant SSL/TLS

Disons que tu veux transférer des données cryptées via FTP, pour cela tu dois créer un certificat SSL et activer la connexion SSL/TLS.

Tu peux créer un certificat en utilisant OpenSSL à l’aide de la commande suivante :

sudo mkdir /etc/cert
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/cert/vsftpd.pem -out /etc/cert/vsftpd.pem

Maintenant, tu dois éditer le fichier vsftpd.conf et faire quelques modifications :

sudo vim /etc/vsftpd.conf

Ajoute les lignes suivantes en dernier :

rsa_cert_file=/etc/cert/vsftpd.pem
rsa_private_key_file=/etc/cert/vsftpd.pem
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH

Sauvegarde et quitte le fichier, puis redémarre Vsftpd à l’aide de la commande suivante :

sudo systemctl restart vsftpd

7. Accéder à FTP via SSL/TLS

Ouvre le client FTP FileZilla et va dans Fichier>Gestionnaire de sites. Ici, clique sur Ajouter un nouveau site et saisis le nom de l’hôte/site, ajoute l’adresse IP, définis le protocole à utiliser, le cryptage : Exiger pour expliciter FTP sur TLS et le type de connexion. Puis clique sur le bouton Connecter. Tu devrais voir l’image suivante :

Accéder à FTP sur SSL/TLS

Ensuite, saisis ton mot de passe :

Sais de mot de mot de d'entrée
Ensuite, tu verras le certificat SSL, vérifie les détails du certificat et clique sur OK.

Accept SSL cert
Enfin, tu verras le contenu de ton serveur FTP et tu pourras transférer tes données en toute sécurité d’un système à un autre.

Connexion au serveur FTP réussie

Conclusion

Dans le guide ci-dessus, nous avons installé le serveur VSFTPD sur Debian 11. Nous avons également appris à nous connecter via une connexion non cryptée et via une connexion cryptée en utilisant un certificat SSL.

Vous aimerez aussi...