Comment installer et configurer un serveur FTP sur Ubuntu avec vsftpd
Le transfert de fichiers est une tâche fondamentale pour tout administrateur de serveur. Que vous téléchargiez des fichiers de site web, gériez des sauvegardes ou partagiez de grands ensembles de données entre systèmes, disposer d’un serveur FTP fiable rend l’ensemble du processus nettement plus efficace. Ce guide complet vous accompagne dans l’installation, la configuration et la sécurisation de vsftpd (Very Secure FTP Daemon) sur Ubuntu — la solution de serveur FTP la plus fiable pour les environnements Linux.
Pourquoi utiliser vsftpd sur Ubuntu ?
FTP (File Transfer Protocol) reste l’une des méthodes les plus utilisées pour transférer des fichiers entre une machine locale et un serveur distant. Bien que des alternatives plus récentes comme SFTP et SCP existent, FTP avec chiffrement SSL/TLS (FTPS) reste un choix pratique pour de nombreux environnements d’hébergement.
vsftpd se distingue comme le daemon FTP privilégié sur Ubuntu pour plusieurs raisons convaincantes :
- Empreinte légère — consommation minimale des ressources, idéale pour les environnements VPS
- Modèle de sécurité robuste — prise en charge intégrée de SSL/TLS, des jails chroot et des contrôles d’accès précis
- Maintenance active — régulièrement mis à jour et bien documenté
- Compatibilité — fonctionne parfaitement avec les clients FTP populaires tels que FileZilla, WinSCP et Cyberduck
Si vous exploitez un environnement VPS Hosting ou un Serveur Dédié, vsftpd est un excellent choix pour gérer les transferts de fichiers de manière sécurisée et efficace.
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
- Un serveur exécutant Ubuntu 20.04, 22.04 ou 24.04
- Un accès root ou sudo au serveur
- Une compréhension de base de la ligne de commande Linux
- Le pare-feu UFW installé (recommandé)
Étape 1 : Mettre à jour votre système
Avant d’installer tout nouveau logiciel, il est essentiel de s’assurer que les paquets de votre système sont entièrement à jour. Cela évite les conflits de dépendances et garantit que vous recevez les derniers correctifs de sécurité.
Ouvrez un terminal et exécutez :
sudo apt update
sudo apt upgrade -yAttendez que le processus de mise à jour soit terminé avant de continuer.
Étape 2 : Installer vsftpd
Installez le paquet vsftpd depuis les dépôts officiels d’Ubuntu :
sudo apt install vsftpd -yUne fois l’installation terminée, vérifiez que le service vsftpd est en cours d’exécution :
sudo systemctl status vsftpdVous devriez voir une sortie indiquant que le service est actif (en cours d’exécution). Si le service ne fonctionne pas, démarrez-le manuellement :
sudo systemctl start vsftpd
sudo systemctl enable vsftpdL’option enable garantit que vsftpd démarre automatiquement à chaque redémarrage du système.
Étape 3 : Sauvegarder le fichier de configuration par défaut
Avant de modifier tout fichier de configuration, créez toujours une sauvegarde. Cela vous permet de restaurer les paramètres d’origine en cas de problème :
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bakÉtape 4 : Configurer vsftpd
Le fichier de configuration principal de vsftpd se trouve à l’emplacement /etc/vsftpd.conf. Ouvrez-le avec votre éditeur de texte préféré :
sudo nano /etc/vsftpd.confAppliquez les modifications de configuration suivantes pour améliorer à la fois les fonctionnalités et la sécurité :
4.1 — Autoriser la connexion des utilisateurs locaux
Trouvez et décommentez la ligne suivante pour permettre aux utilisateurs système locaux de s’authentifier via FTP :
local_enable=YES4.2 — Activer les téléversements de fichiers
Pour permettre aux utilisateurs authentifiés de téléverser des fichiers sur le serveur, décommentez :
write_enable=YES4.3 — Restreindre les utilisateurs à leurs répertoires personnels (Jail Chroot)
Il s’agit d’une mesure de sécurité essentielle. Elle empêche les utilisateurs FTP de naviguer en dehors de leurs répertoires personnels désignés :
chroot_local_user=YES4.4 — Configurer les ports du mode passif
Le mode passif est indispensable pour les clients derrière un NAT ou des pare-feux. Ajoutez les lignes suivantes à la fin du fichier de configuration :
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=500004.5 — Paramètres de sécurité supplémentaires recommandés
Ajoutez ou vérifiez les directives suivantes pour une configuration renforcée :
anonymous_enable=NO
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES> Explication des paramètres clés :
> – anonymous_enable=NO — Désactive l’accès FTP anonyme, un risque de sécurité majeur
> – xferlog_enable=YES — Enregistre tous les transferts de fichiers à des fins d’audit
> – use_localtime=YES — Utilise l’heure locale du serveur dans les entrées de journal
Une fois toutes les modifications effectuées, enregistrez le fichier avec Ctrl+O, puis quittez avec Ctrl+X.
Étape 5 : Créer un utilisateur FTP dédié
Il est recommandé de créer un compte utilisateur dédié spécifiquement pour l’accès FTP plutôt que d’utiliser votre compte root ou administrateur :
sudo adduser ftpuserSuivez les invites interactives pour définir un mot de passe robuste et terminer le processus de création de l’utilisateur.
Ensuite, créez un répertoire FTP dédié pour cet utilisateur et définissez la propriété et les permissions correctes :
sudo mkdir -p /home/ftpuser/ftp/upload
sudo chown nobody:nogroup /home/ftpuser/ftp
sudo chmod a-w /home/ftpuser/ftp
sudo chown ftpuser:ftpuser /home/ftpuser/ftp/upload> Pourquoi cette structure ? Le répertoire parent ftp appartient à nobody et n’est pas accessible en écriture, ce qui satisfait l’exigence de sécurité chroot de vsftpd. Le sous-répertoire upload est l’endroit où l’utilisateur lit et écrit réellement les fichiers.
Étape 6 : Redémarrer vsftpd pour appliquer les modifications
Après avoir terminé la configuration, redémarrez le service vsftpd :
sudo systemctl restart vsftpdConfirmez que le service fonctionne toujours correctement :
sudo systemctl status vsftpdÉtape 7 : Configurer le pare-feu UFW
Si UFW (Uncomplicated Firewall) est actif sur votre serveur, vous devez ouvrir les ports nécessaires pour le trafic FTP. FTP utilise le port 21 pour les commandes, le port 20 pour les transferts de données en mode actif, et la plage de ports passifs définie dans votre configuration :
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcpRechargez le pare-feu pour appliquer les nouvelles règles :
sudo ufw reloadVérifiez les règles mises à jour :
sudo ufw statusÉtape 8 : Tester votre serveur FTP
Tout étant configuré, il est temps de tester la connexion. Vous pouvez utiliser n’importe quel client FTP standard :
Option A : Utiliser FileZilla (client graphique)
- Ouvrez FileZilla et accédez à Fichier → Gestionnaire de sites
- Cliquez sur Nouveau site et entrez un nom
- Définissez le Protocole sur
FTP – File Transfer Protocol - Entrez l’adresse IP de votre serveur dans le champ Hôte
- Définissez le Port sur
21 - Définissez le Type d’authentification sur
Normal - Entrez
ftpusercomme nom d’utilisateur et votre mot de passe choisi - Cliquez sur Connexion
Option B : Utiliser la ligne de commande
ftp your_server_ipEntrez ftpuser et le mot de passe associé lorsque vous y êtes invité. Testez les téléversements et téléchargements de fichiers pour confirmer que tout fonctionne comme prévu.
Étape 9 : Sécuriser FTP avec le chiffrement SSL/TLS (fortement recommandé)
La transmission des identifiants et des données via FTP en clair représente un risque de sécurité important. Le chiffrement de votre connexion FTP avec SSL/TLS la transforme en FTPS, protégeant vos données en transit.
Générer un certificat SSL auto-signé
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048
-keyout /etc/ssl/private/vsftpd.pem
-out /etc/ssl/private/vsftpd.pemMettre à jour la configuration vsftpd pour SSL/TLS
Ouvrez à nouveau le fichier de configuration :
sudo nano /etc/vsftpd.confAjoutez ou mettez à jour les directives suivantes :
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
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pemRedémarrez vsftpd pour appliquer la configuration SSL :
sudo systemctl restart vsftpd> Conseil pro : Pour les environnements de production, envisagez d’utiliser un certificat SSL approuvé délivré par une autorité de certification plutôt qu’un certificat auto-signé. AlexHost propose des Certificats SSL qui offrent une confiance totale des navigateurs et des clients sans avertissements de certificat.
Résolution des problèmes courants de vsftpd
| Problème | Cause probable | Solution |
|---|---|---|
500 OOPS: vsftpd: refusing to run with writable root inside chroot | Le répertoire chroot est accessible en écriture | Supprimez la permission d’écriture de la racine chroot : sudo chmod a-w /home/ftpuser/ftp |
| Connexion refusée sur le port 21 | Pare-feu bloquant FTP | Vérifiez les règles UFW avec sudo ufw status |
| Échecs de connexion en mode passif | Plage de ports passifs non ouverte | Assurez-vous que les ports 40000–50000 sont ouverts dans UFW |
| Échec d’authentification à la connexion | Identifiants incorrects ou problème PAM | Vérifiez que l’utilisateur existe avec id ftpuser et réinitialisez le mot de passe si nécessaire |
| Impossible de téléverser des fichiers | write_enable non défini | Confirmez write_enable=YES dans /etc/vsftpd.conf |
Pour consulter les journaux vsftpd afin d’obtenir des informations détaillées sur les erreurs :
sudo tail -f /var/log/vsftpd.logChoisir le bon environnement d’hébergement pour votre serveur FTP
Les performances et la sécurité de votre serveur FTP sont directement influencées par la qualité de votre infrastructure d’hébergement sous-jacente. Voici ce qu’il faut prendre en compte :
- VPS Hosting — Idéal pour la plupart des cas d’utilisation. Fournit des ressources dédiées, un accès root complet et la flexibilité de configurer vsftpd exactement selon vos besoins.
- Serveurs Dédiés — Idéal pour les environnements à fort trafic ou les organisations ayant des exigences strictes en matière d’isolation des données. Performances maximales et contrôle total.
- Hébergement Web Mutualisé — Adapté aux besoins de gestion de fichiers de base avec des volumes de trafic plus faibles. Notez que l’installation de vsftpd nécessite un accès root, qui n’est pas disponible sur l’hébergement mutualisé.
Pour les équipes qui ont également besoin d’une infrastructure de messagerie professionnelle en parallèle de leur configuration de transfert de fichiers, l’Hébergement Email offre une solution fiable et gérée sans la complexité de l’auto-hébergement d’un serveur de messagerie.
Conclusion
La mise en place d’un serveur FTP entièrement fonctionnel et sécurisé sur Ubuntu avec vsftpd est un processus simple lorsqu’il est abordé de manière méthodique. En suivant ce guide, vous avez :
- ✅ Installé et activé vsftpd sur Ubuntu
- ✅ Configuré un accès utilisateur sécurisé avec jail chroot
- ✅ Configuré le mode passif pour une large compatibilité client
- ✅ Ouvert les ports de pare-feu appropriés
- ✅ Optionnellement sécurisé la connexion avec le chiffrement SSL/TLS
Que vous gériez des fichiers de site web, automatisiez des sauvegardes ou activiez le partage de fichiers en équipe, vsftpd sur un VPS Ubuntu bien configuré offre la fiabilité et la sécurité dont vous avez besoin. Avec l’infrastructure VPS Hosting haute performance d’AlexHost, vous disposez de la base idéale pour exécuter vsftpd en production — avec une disponibilité de niveau entreprise, un accès root complet et un support technique réactif chaque fois que vous en avez besoin.
