Serveur FTP Ubuntu : comment le configurer ?
Le protocole FTP compte parmi les solutions les plus populaires pour le téléchargement et l’envoi de fichiers. Dans ce guide, vous apprendrez donc comment configurer votre propre serveur FTP Ubuntu, ainsi que les points d’attention à prendre en compte.
Installation d’un serveur FTP Ubuntu
Avant de pouvoir commencer à installer votre propre serveur FTP, il faut d’abord trouver le logiciel adéquat. Les systèmes Ubuntu comme Ubuntu 22.04 ont déjà leur propre solution à cet effet avec vsftpd dans le gestionnaire de paquets, qu’il vous suffit d’installer. Pour installer l’application, il suffit d’appeler le terminal et d’y entrer la commande suivante :
sudo apt install vsftpd
bash
Vous souhaitez sécuriser vos transferts de données ? Optez pour un serveur FTP sécurisé avec IONOS, bénéficiant de la protection SSH, SSL/TLS, ainsi que des sauvegardes quotidiennes pour garantir la sécurité et la disponibilité de vos fichiers.
Quel est le matériel adéquat pour votre serveur FTP Ubuntu ?
Selon l’utilisation que vous allez en faire, les exigences matérielles d’un serveur FTP sous Ubuntu 22.04 diffèrent. Pour profiter d’une connexion optimale à Internet, il est dans tous les cas recommandé de l’héberger chez un fournisseur d’accès professionnel comme IONOS. Avec les VPS (vServer) et les serveurs dédiés, vous disposez de deux modèles de serveurs pour exploiter un serveur FTP performant.
Dans l’aperçu ci-dessous, vous trouverez trois scénarios possibles pour votre serveur FTP Ubuntu ainsi que le tarif de serveur IONOS le plus adapté à chacun d’entre eux.
Scénario de serveur FTP Ubuntu | Tarif adapté chez IONOS |
---|---|
Serveur FTP simple ; transfert de données sporadique | VPS Linux M |
Serveur FTP important au sein de l’entreprise ; transfert de données régulier | VPS Linux XL |
Serveur FTP public ; transfert de données continu | Serveur dédié AR6-32 SSD |
- Virtualisation complète avec accès root
- Trafic illimité et jusqu'à 1 Gbit/s de bande passante
- Stockage SSD NVMe rapide et édition Plesk Web Host
Tutoriel : comment configurer un serveur FTP sous Ubuntu ?
Après le bref processus d’installation, vous pouvez refermer le terminal et commencer à configurer le serveur FTP Ubuntu. Pour cela, ouvrez le fichier de configuration vsftpd.conf, qui se trouve par défaut dans le répertoire etc.

Pour ouvrir et modifier le fichier de configuration du serveur FTP Ubuntu, vous avez besoin d’un simple éditeur de texte. Ubuntu dispose du programme gedit (éditeur GNOME) déjà installé à cette fin.
Le contenu du texte peut être divisé en deux parties :
- Les lignes qui commencent par le signe dièse (
#
) sont des commentaires et sont donc ignorées par le serveur vsftpd. Ces lignes servent parfois à décrire les différentes options de configuration, ou à désactiver des fonctions. - Les lignes ne commençant pas par le signe dièse contiennent les informations qui seront interprétées ultérieurement par le serveur.

Il n’y a pas de spécification générale pour la suite de la configuration du serveur FTP dans Ubuntu 22.04 : cela dépendra des exigences que vous aurez en tant qu’utilisateur sur le serveur FTP. Dans les sections suivantes de ce guide, vous trouverez donc des informations sur les principales options de configuration et leur fonctionnement.
Pour enregistrer les modifications apportées à vsftpd.conf, vous devez disposer des droits d’accès root. Sinon, vous ne pouvez que lire le fichier de configuration.
Autoriser l’accès anonyme
Par défaut, vsftpd est configuré de manière à ce que les utilisateurs ne puissent se connecter au serveur FTP qu’avec un compte spécifique. Le File Transfer Protocol (FTP) autorise toutefois une procédure de connexion permettant aux utilisateurs de se connecter de manière anonyme, sans avoir à fournir de données personnelles. Pour activer ce type d’accès, cherchez l’entrée anonymous_enable=NO
et remplacez le paramètre NO
par YES
:
anonymous_enable=YES
txt
Étendre les droits des utilisateurs anonymes
Par défaut, les droits sont fortement limités lorsque les utilisateurs se connectent de manière anonyme sur un serveur FTP Ubuntu. Par exemple, il n’est possible de télécharger que des fichiers lisibles par tous les utilisateurs (anon_world_readable_only=YES
). Si vous refusez cette instruction, vous pouvez également télécharger d’autres fichiers.
Si le serveur FTP est connecté à Internet, il n’est pas recommandé d’étendre les droits pour les sessions anonymes. Le cas échéant, vous risqueriez que votre serveur soit détourné de son but par des tiers ! En effet, les utilisateurs anonymes pourraient alors télécharger, renommer ou supprimer des fichiers de manière non sécurisée, ce qui peut compromettre la sécurité de votre serveur.
Les autres options disponibles pour étendre les droits des utilisateurs anonymes sont les suivantes :
anon_mkdir_write_enable
: les utilisateurs anonymes peuvent créer de nouveaux répertoires si vous entrez ici la valeurYES
ou si vous supprimez le#
en fin de ligne. La condition préalable est quewrite_enable
soit activé.anon_other_write_enable=YES
: si vous ajoutez cette ligne, les fichiers et les répertoires sur le serveur FTP peuvent être renommés et supprimés même si l’accès a été obtenu de manière impersonnelle.an_upload_enable=YES
: cette ligne de texte permet d’activer le téléchargement anonyme de fichiers. Pour cela, il faut activerwrite_enable
et créer un répertoire de téléchargement séparé, car les utilisateurs anonymes ne peuvent pas écrire directement dans le répertoire personnel.
Limiter l’accès des utilisateurs locaux au répertoire personnel
Si vous souhaitez autoriser les utilisateurs locaux à accéder uniquement à votre répertoire personnel /home/username, vous pouvez également le spécifier dans le fichier vsftpd.conf. Le paramètre de balisage responsable est chroot_local_user
. Dans Ubuntu 22.04, cette ligne est commentée par défaut. Supprimez le #
pour interdire aux comptes locaux l’accès à tous les autres répertoires :
chroot_local_user=YES
txtActiver ou désactiver la connexion des utilisateurs locaux
Pour permettre aux utilisateurs locaux d’accéder au serveur FTP, l’entrée local_enable=YES
doit être définie, ce qui est le paramètre par défaut. Si vous souhaitez interdire aux utilisateurs locaux l’accès à votre serveur FTP Ubuntu, il vous suffit de définir la ligne correspondante comme commentaire en la faisant précéder du signe dièse :
#local_enable=YES
txt
Mettre en place l’accès global en écriture
Dans Ubuntu 22.04, la configuration par défaut définit que ni les comptes locaux ni les comptes anonymes ne peuvent utiliser les commandes FTP. La ligne correspondante pour l’écriture globale write_enable=YES
est commentée. Pour permettre aux utilisateurs d’écrire des fichiers sur le serveur, il est nécessaire de supprimer le signe dièse précédant cette ligne :
write_enable=YES
txtLimiter l’accès FTP à certains comptes
Dans certaines situations, il peut être utile d’interdire à certains utilisateurs l’accès au serveur FTP Ubuntu ou de définir clairement quels utilisateurs peuvent se connecter.
Pour interdire l’accès à certains utilisateurs, ajoutez les lignes suivantes à la fin du fichier de configuration :
userlist_deny=YES
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
txtLes utilisateurs inscrits dans le fichier externe vsftpd.user_list
se verront alors refuser l’accès, et tous les autres pourront normalement accéder au serveur normalement.
Si vous souhaitez n’autoriser l’accès qu’à certaines personnes, le paramètre userlist_deny
doit être refusé. Une fois cette action faite, seuls les comptes d’utilisateurs que vous avez inscrits dans le fichier vsftpd.user_list pourront se connecter :
userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
txtDans les deux cas, il est nécessaire de créer manuellement le fichier texte externe vsftpd.user_list dans le répertoire /etc/. Une ligne séparée doit être utilisée dans le fichier pour chaque entrée de compte utilisateur.
Serveur FTP Ubuntu : autres options dans ce tableau d’aperçu
Option | Valeur par défaut | Description |
---|---|---|
download_enable
|
- | Active les téléchargements (YES ) ou les désactive (NO )
|
ssl_enable
|
NO
|
Active le chiffrement SSL pour l’accès FTP (YES ) ou non (NO )
|
force_anon_logins_ssl
|
NO
|
Rend la connexion SSL obligatoire pour les utilisateurs anonymes (YES ) ou non (NO )
|
force_local_logins_ssl
|
NO
|
Rend la connexion SSL obligatoire pour les utilisateurs locaux (YES ) ou non (NO )
|
anon_max_rate
|
0
|
Vitesse de transmission maximale (en octets/seconde) pour les utilisateurs anonymes ; 0 représente un débit illimité
|
``local_max_rate` | 0
|
Vitesse de transmission maximale (en octets/seconde) pour les utilisateurs locaux ; 0 représente un débit illimité
|
max_clients
|
0
|
Nombre maximal de clients pouvant être connectés en même temps ; 0 représente un nombre illimité
|
max_per_ip
|
0
|
Nombre maximal de connexions possibles à partir d’une adresse IP ; 0 signifie qu’il n’y a aucune restriction
|
anon_root
|
/home/ftp | Répertoire par défaut des utilisateurs anonymes |
Vous pouvez par ailleurs obtenir une liste complète de toutes les options via le terminal, à l’aide de la commande suivante :
man vsftpd.conf
bash
Profitez de votre propre serveur, avec hardware dédié, intégration Cloud, facturation à la minute et processeur Intel® Xeon® ou AMD.
Voici comment utiliser un serveur FTP sous Ubuntu 22.04
Après avoir conçu le fichier de configuration selon vos souhaits, n’oubliez pas de l’enregistrer. Pour que l’application serveur prenne en compte toutes les modifications, un redémarrage est également nécessaire, que vous pouvez lancer avec la commande suivante :
sudo systemctl restart vsftpd
bashSi vous n’avez pas encore démarré le serveur FTP, vous pouvez le faire avec cette commande de terminal :
sudo systemctl start vsftpd
bashSi vous souhaitez arrêter le serveur FTP Ubuntu, remplacez simplement le paramètre start
par stop
dans la commande précédente.
Créer un compte utilisateur FTP
Maintenant que vous avez configuré et démarré votre serveur FTP Ubuntu, vous avez besoin d’un compte utilisateur pour pouvoir vous y connecter. Nous créons ici l’utilisateur avec le nom « ftpuser » et le mot de passe « test123 ».
sudo useradd -m user -s /usr/sbin/nologin
sudo passwd user
bashEnsuite, autorisez l’accès au shell NoLogin en ajoutant la ligne suivante à la fin du fichier /etc/shells :
/usr/sbin/nologin
txtÉtablir une connexion au serveur FTP
Vous pouvez maintenant utiliser le compte d’utilisateur créé pour établir la connexion au serveur vsftpd avec le client FTP de votre choix. Une solution populaire avec les paquets Ubuntu par défaut est l’application open source multiplateforme FileZilla. L’installation fonctionne selon la méthode éprouvée, via le terminal :
sudo apt-get install filezilla
bashOuvrez FileZilla et ajoutez une nouvelle connexion avec les données appropriées : sous Host, indiquez l’adresse IP de votre serveur FTP Ubuntu, qui (si vous ne l’avez pas modifiée dans les paramètres) écoute les requêtes sur le port 21. Sélectionnez le File Transfer Protocol, et si possible SFTP (Secure FTP) ou FTP over TLS, car une simple connexion FTP sur le port 21 représente un risque de sécurité assez élevé. Dans le champ Logon Type, entrez « Normal ». Pour User et Password, vous avez besoin des données de connexion créées précédemment pour le compte d’exemple. En cliquant sur « Connect », vous vous connectez au serveur.

500 OOPS : une fonctionnalité de sécurité cause des problèmes
Si vous avez configuré un serveur FTP Ubuntu et que certains paramètres ne fonctionnent pas, cela peut avoir différentes raisons. Il est possible que vous ayez oublié de redémarrer le serveur FTP ou de sauvegarder le fichier de configuration. Des erreurs de syntaxe peuvent également se glisser dans le fichier vsftpd.conf, par exemple si un espace est placé au mauvais endroit. Un message d’erreur fréquent, dont la cause est totalement différente, est le suivant :
500 OOPS: vsftpd: refusing to run with writable root inside chroot ()
Ce message, qui peut apparaître lors de l’établissement d’une connexion, n’est en fait pas un message d’erreur, mais un élément de sécurité. La raison est une vulnérabilité possible de la bibliothèque glibc (bibliothèque standard Ubuntu du langage de programmation C), que les utilisateurs avec des permissions d’écriture pourraient exploiter pour leur propre répertoire racine. Il y a deux façons de contourner ce blocage de sécurité :
- Supprimer les droits d’écriture dans le répertoire racine de l’utilisateur : vous retirez aux utilisateurs locaux les droits d’écriture dans leur propre répertoire racine, de sorte qu’ils ne peuvent plus écrire que dans des sous-répertoires. Cette restriction résout l’erreur 500 OOPS, mais s’avère défavorable lorsque les fichiers doivent être écrits dans le répertoire racine. La commande de terminal pour cette solution se présente comme suit :
chmod a-w */home/user*
bash- Autoriser l’écriture dans le répertoire racine dans vsftpd.conf : si cette utilisation abusive des droits d’écriture ne vous pose pas de souci, vous pouvez également indiquer au serveur FTP Ubuntu que cette fonction est explicitement souhaitée. Pour cela, il suffit d’ajouter une entrée supplémentaire dans le fichier de configuration :
allow_writeable_chroot=YES
txt