[DOC] Installer et configurer vsftpd sur Linux
Présentation de vsftpd
Vsftpd (Very Secure FTP Daemon) est l’un des serveurs FTP les plus populaires sur les systèmes Linux. Il est réputé pour sa légèreté, son efficacité et, comme son nom l’indique, pour ses fonctionnalités de sécurité intégrées.
Cet outil est essentiel pour permettre le transfert de fichiers vers et depuis votre serveur de manière contrôlée et sécurisée.
Installation de vsftpd
Vsftpd est disponible dans les dépôts officiels de la grande majorité des distributions Linux.
Sur Debian / Ubuntu Utilisez apt pour mettre à jour la liste des paquets puis installer vsftpd :
sudo apt update
sudo apt install vsftpd
Sur Fedora / CentOS / RHEL
Utilisez dnf (ou yum pour les anciennes versions) :
sudo dnf install vsftpd
ou pour les anciennes versions de CentOS/RHEL
sudo yum install vsftpd
Pour vérifier que vsftpd est bien installé, vous pouvez exécuter :
vsftpd -version
Vous devriez obtenir la version actuelle installée.
Configuration de vsftpd
Le fichier principal de configuration est nommé vsftpd.conf et se trouve dans le répertoire /etc/.
Modification du fichier de configuration Ouvrez le fichier de configuration avec votre éditeur de texte préféré (ici nano) :
sudo nano /etc/vsftpd.conf
Paramètres de base recommandés Décommentez ou ajustez les lignes suivantes pour une configuration de base sécurisée :
Activer les utilisateurs locaux : Permet la connexion avec les utilisateurs système.
local_enable=YES
Autoriser l’écriture (upload) : Indispensable si vous souhaitez permettre l’envoi de fichiers.
write_enable=YES
Isoler les utilisateurs dans leur répertoire personnel (chroot) : Ceci est une mesure de sécurité cruciale pour empêcher les utilisateurs d’accéder à des répertoires en dehors de leur dossier personnel.
chroot_local_user=YES
Note : Si l’option chroot_local_user=YES est activée, vous devrez peut-être désactiver la vérification d’écriture sur le répertoire racine de l’utilisateur pour certaines versions récentes de vsftpd. Une solution simple est de créer un sous-répertoire d’upload pour l’utilisateur.
FTP passif (fortement recommandé) : Active le mode passif, utile si le client se trouve derrière un pare-feu. Définissez une plage de ports à ouvrir dans votre firewall.
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=40000
Redémarrage du service Après avoir sauvegardé le fichier de configuration, vous devez redémarrer le service vsftpd pour appliquer les changements :
sudo systemctl restart vsftpd
Vérifiez que le service est actif et fonctionne :
sudo systemctl status vsftpd
Test du serveur FTP Test avec un client FTP Vous pouvez utiliser le client FTP intégré à Linux ou un client graphique comme FileZilla ou WinSCP depuis un autre PC.
Si vous testez depuis le serveur lui-même :
ftp localhost
Identifiez-vous avec un utilisateur local existant sur votre machine.
Naviguez dans les répertoires et vérifiez que vous pouvez uploader et télécharger des fichiers.
Conseil : Si la connexion échoue, vérifiez que le port FTP par défaut (21) et les ports passifs (si configurés) sont ouverts dans votre pare-feu (ufw, firewalld, etc.).
Sécurisation supplémentaire (optionnel) Pour un usage en production ou pour un accès à distance, il est impératif de sécuriser davantage la connexion.
Activer TLS/SSL (FTPS) Activez le chiffrement pour protéger les identifiants et les données transférées :
Générez un certificat SSL (auto-signé pour les tests, ou un Let’s Encrypt pour la production).
Dans /etc/vsftpd.conf, ajoutez les lignes pointant vers vos clés et activez le SSL :
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.key
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
Restriction des utilisateurs Pour une sécurité maximale, vous pouvez définir une liste explicite d’utilisateurs autorisés ou interdits :
Pour autoriser uniquement les utilisateurs listés dans /etc/vsftpd.user_list, assurez-vous que :
userlist_enable=YES
userlist_deny=NO