Le protocole FTP compte parmi les solutions les plus po­pu­laires pour le té­lé­char­ge­ment et l’envoi de fichiers. Dans ce guide, vous ap­pren­drez donc comment con­fi­gu­rer votre propre serveur FTP Ubuntu, ainsi que les points d’attention à prendre en compte.

Ins­tal­la­tion 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 ges­tion­naire de paquets, qu’il vous suffit d’installer. Pour installer l’ap­pli­ca­tion, il suffit d’appeler le terminal et d’y entrer la commande suivante :

sudo apt install vsftpd
bash
Image: Ubuntu 22.04 : installation de vsftpd dans le terminal
Les droits root ou d’ad­mi­nis­tra­teur (sudo) sont une condition de base pour l’ins­tal­la­tion de vsftpd.
Conseil

Vous souhaitez sécuriser vos trans­ferts de données ? Optez pour un serveur FTP sécurisé avec IONOS, bé­né­fi­ciant de la pro­tec­tion SSH, SSL/TLS, ainsi que des sau­ve­gardes quo­ti­diennes pour garantir la sécurité et la dis­po­ni­bi­lité de vos fichiers.

Quel est le matériel adéquat pour votre serveur FTP Ubuntu ?

Selon l’uti­li­sa­tion que vous allez en faire, les exigences ma­té­rielles d’un serveur FTP sous Ubuntu 22.04 diffèrent. Pour profiter d’une connexion optimale à Internet, il est dans tous les cas re­com­mandé de l’héberger chez un four­nis­seur d’accès pro­fes­sion­nel 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 per­for­mant.

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 spo­ra­dique VPS Linux M
Serveur FTP important au sein de l’en­tre­prise ; transfert de données régulier VPS Linux XL
Serveur FTP public ; transfert de données continu Serveur dédié AR6-32 SSD
Serveurs virtuels (VPS)
VPS éco­no­miques sur serveurs Dell En­ter­prise
  • 1 Gbit/s de bande passante et trafic illimité
  • Dis­po­ni­bi­lité de 99,99 % et cer­ti­fi­ca­tion ISO
  • As­sis­tance 24/7 primée pour sa qualité et con­seil­ler personnel

Tutoriel : comment con­fi­gu­rer un serveur FTP sous Ubuntu ?

Après le bref processus d’ins­tal­la­tion, vous pouvez refermer le terminal et commencer à con­fi­gu­rer le serveur FTP Ubuntu. Pour cela, ouvrez le fichier de con­fi­gu­ra­tion vsftpd.conf, qui se trouve par défaut dans le ré­per­toire etc.

Image: Extrait de documents disponibles dans le dossier etc.
Dans le ré­per­toire « etc », vous trouverez divers fichiers de con­fi­gu­ra­tion et d’in­for­ma­tion, comme vsftpd.conf.

Pour ouvrir et modifier le fichier de con­fi­gu­ra­tion 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 com­men­cent par le signe dièse (#) sont des com­men­taires et sont donc ignorées par le serveur vsftpd. Ces lignes servent parfois à décrire les dif­fé­rentes options de con­fi­gu­ra­tion, ou à dé­sac­ti­ver des fonctions.
  • Les lignes ne com­men­çant pas par le signe dièse con­tien­nent les in­for­ma­tions qui seront in­ter­pré­tées ul­té­rieu­re­ment par le serveur.
Image: Aperçu du fichier vsftpd.conf
Les dièses ne sont pas seulement des signaux pour le serveur vsftpd, ils servent aussi à la com­pré­hen­sion et op­ti­mi­sent la li­si­bi­lité.

Il n’y a pas de spé­ci­fi­ca­tion générale pour la suite de la con­fi­gu­ra­tion du serveur FTP dans Ubuntu 22.04 : cela dépendra des exigences que vous aurez en tant qu’uti­li­sa­teur sur le serveur FTP. Dans les sections suivantes de ce guide, vous trouverez donc des in­for­ma­tions sur les prin­ci­pales options de con­fi­gu­ra­tion et leur fonc­tion­ne­ment.

Note

Pour en­re­gis­trer les mo­di­fi­ca­tions apportées à vsftpd.conf, vous devez disposer des droits d’accès root. Sinon, vous ne pouvez que lire le fichier de con­fi­gu­ra­tion.

Autoriser l’accès anonyme

Par défaut, vsftpd est configuré de manière à ce que les uti­li­sa­teurs ne puissent se connecter au serveur FTP qu’avec un compte spé­ci­fique. Le File Transfer Protocol (FTP) autorise toutefois une procédure de connexion per­met­tant aux uti­li­sa­teurs de se connecter de manière anonyme, sans avoir à fournir de données per­son­nelles. 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
Image: vsftpd.conf : configuration de l’accès FTP anonyme
Une fois que vous avez saisi la ligne « anonymous enable=YES », la connexion anonyme est possible sur votre serveur FTP Ubuntu.

Étendre les droits des uti­li­sa­teurs anonymes

Par défaut, les droits sont fortement limités lorsque les uti­li­sa­teurs se con­nec­tent de manière anonyme sur un serveur FTP Ubuntu. Par exemple, il n’est possible de té­lé­char­ger que des fichiers lisibles par tous les uti­li­sa­teurs (anon_world_readable_only=YES). Si vous refusez cette ins­truc­tion, vous pouvez également té­lé­char­ger d’autres fichiers.

Note

Si le serveur FTP est connecté à Internet, il n’est pas re­com­mandé d’étendre les droits pour les sessions anonymes. Le cas échéant, vous ris­que­riez que votre serveur soit détourné de son but par des tiers ! En effet, les uti­li­sa­teurs anonymes pour­raient alors té­lé­char­ger, renommer ou supprimer des fichiers de manière non sécurisée, ce qui peut com­pro­mettre la sécurité de votre serveur.

Les autres options dis­po­nibles pour étendre les droits des uti­li­sa­teurs anonymes sont les suivantes :

  • anon_mkdir_write_enable : les uti­li­sa­teurs anonymes peuvent créer de nouveaux ré­per­toires si vous entrez ici la valeur YES ou si vous supprimez le # en fin de ligne. La condition préalable est que write_enable soit activé.
  • anon_other_write_enable=YES : si vous ajoutez cette ligne, les fichiers et les ré­per­toires sur le serveur FTP peuvent être renommés et supprimés même si l’accès a été obtenu de manière im­per­son­nelle.
  • an_upload_enable=YES : cette ligne de texte permet d’activer le té­lé­char­ge­ment anonyme de fichiers. Pour cela, il faut activer write_enable et créer un ré­per­toire de té­lé­char­ge­ment séparé, car les uti­li­sa­teurs anonymes ne peuvent pas écrire di­rec­te­ment dans le ré­per­toire personnel.

Limiter l’accès des uti­li­sa­teurs locaux au ré­per­toire personnel

Si vous souhaitez autoriser les uti­li­sa­teurs locaux à accéder uni­que­ment à votre ré­per­toire personnel /home/username, vous pouvez également le spécifier dans le fichier vsftpd.conf. Le paramètre de balisage res­pon­sable 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é­per­toires :

chroot_local_user=YES
txt

Activer ou dé­sac­ti­ver la connexion des uti­li­sa­teurs locaux

Pour permettre aux uti­li­sa­teurs 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 uti­li­sa­teurs locaux l’accès à votre serveur FTP Ubuntu, il vous suffit de définir la ligne cor­res­pon­dante comme com­men­taire en la faisant précéder du signe dièse :

#local_enable=YES
txt
Image: Serveur FTP Ubuntu : configuration des droits des utilisateurs locaux
Par défaut, la connexion est autorisée pour tous les comptes d’uti­li­sa­teurs locaux dans vsftpd.conf.

Mettre en place l’accès global en écriture

Dans Ubuntu 22.04, la con­fi­gu­ra­tion par défaut définit que ni les comptes locaux ni les comptes anonymes ne peuvent utiliser les commandes FTP. La ligne cor­res­pon­dante pour l’écriture globale write_enable=YES est commentée. Pour permettre aux uti­li­sa­teurs d’écrire des fichiers sur le serveur, il est né­ces­saire de supprimer le signe dièse précédant cette ligne :

write_enable=YES
txt

Limiter l’accès FTP à certains comptes

Dans certaines si­tua­tions, il peut être utile d’interdire à certains uti­li­sa­teurs l’accès au serveur FTP Ubuntu ou de définir clai­re­ment quels uti­li­sa­teurs peuvent se connecter.

Pour interdire l’accès à certains uti­li­sa­teurs, ajoutez les lignes suivantes à la fin du fichier de con­fi­gu­ra­tion :

userlist_deny=YES
userlist_enable=YES
userlist_file=/etc/vsftpd.user_list
txt

Les uti­li­sa­teurs inscrits dans le fichier externe vsftpd.user_list se verront alors refuser l’accès, et tous les autres pourront nor­ma­le­ment accéder au serveur nor­ma­le­ment.

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’uti­li­sa­teurs 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
txt
Note

Dans les deux cas, il est né­ces­saire de créer ma­nuel­le­ment le fichier texte externe vsftpd.user_list dans le ré­per­toire /etc/. Une ligne séparée doit être utilisée dans le fichier pour chaque entrée de compte uti­li­sa­teur.

Serveur FTP Ubuntu : autres options dans ce tableau d’aperçu

Option Valeur par défaut Des­crip­tion
download_enable - Active les té­lé­char­ge­ments (YES) ou les désactive (NO)
ssl_enable NO Active le chif­fre­ment SSL pour l’accès FTP (YES) ou non (NO)
force_anon_logins_ssl NO Rend la connexion SSL obli­ga­toire pour les uti­li­sa­teurs anonymes (YES) ou non (NO)
force_local_logins_ssl NO Rend la connexion SSL obli­ga­toire pour les uti­li­sa­teurs locaux (YES) ou non (NO)
anon_max_rate 0 Vitesse de trans­mis­sion maximale (en octets/seconde) pour les uti­li­sa­teurs anonymes ; 0 re­pré­sente un débit illimité
``local_max_rate` 0 Vitesse de trans­mis­sion maximale (en octets/seconde) pour les uti­li­sa­teurs locaux ; 0 re­pré­sente un débit illimité
max_clients 0 Nombre maximal de clients pouvant être connectés en même temps ; 0 re­pré­sente un nombre illimité
max_per_ip 0 Nombre maximal de con­nexions possibles à partir d’une adresse IP ; 0 signifie qu’il n’y a aucune res­tric­tion
anon_root /home/ftp Ré­per­toire par défaut des uti­li­sa­teurs 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
Image: Page de manuel du fichier de configuration vsftpd
Consultez les manuels de l’ap­pli­ca­tion serveur FTP Ubuntu pour obtenir des des­crip­tions dé­tail­lées de toutes les options dis­po­nibles.
Serveurs dédiés
Per­for­mance et in­no­va­tion
  • Pro­ces­seurs dernière gé­né­ra­tion
  • Hardware dédié haute per­for­mance
  • Data centers certifiés ISO

Voici comment utiliser un serveur FTP sous Ubuntu 22.04

Après avoir conçu le fichier de con­fi­gu­ra­tion selon vos souhaits, n’oubliez pas de l’en­re­gis­trer. Pour que l’ap­pli­ca­tion serveur prenne en compte toutes les mo­di­fi­ca­tions, un re­dé­mar­rage est également né­ces­saire, que vous pouvez lancer avec la commande suivante :

sudo systemctl restart vsftpd
bash

Si vous n’avez pas encore démarré le serveur FTP, vous pouvez le faire avec cette commande de terminal :

sudo systemctl start vsftpd
bash
Conseil

Si vous souhaitez arrêter le serveur FTP Ubuntu, remplacez sim­ple­ment le paramètre start par stop dans la commande pré­cé­dente.

Créer un compte uti­li­sa­teur FTP

Main­te­nant que vous avez configuré et démarré votre serveur FTP Ubuntu, vous avez besoin d’un compte uti­li­sa­teur pour pouvoir vous y connecter. Nous créons ici l’uti­li­sa­teur avec le nom « ftpuser » et le mot de passe « test123 ».

sudo useradd -m user -s /usr/sbin/nologin
sudo passwd user
bash

Ensuite, 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 main­te­nant utiliser le compte d’uti­li­sa­teur 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’ap­pli­ca­tion open source mul­ti­pla­te­forme FileZilla. L’ins­tal­la­tion fonc­tionne selon la méthode éprouvée, via le terminal :

sudo apt-get install filezilla
bash

Ouvrez FileZilla et ajoutez une nouvelle connexion avec les données ap­pro­priées : sous Host, indiquez l’adresse IP de votre serveur FTP Ubuntu, qui (si vous ne l’avez pas modifiée dans les pa­ra­mètres) écoute les requêtes sur le port 21. Sé­lec­tion­nez le File Transfer Protocol, et si possible SFTP (Secure FTP) ou FTP over TLS, car une simple connexion FTP sur le port 21 re­pré­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é­dem­ment pour le compte d’exemple. En cliquant sur « Connect », vous vous connectez au serveur.

Image: FileZilla Site Manager
Le client FileZilla offre des pos­si­bi­li­tés de pa­ra­mé­trage dé­tail­lées pour l’éta­blis­se­ment d’une connexion à un serveur FTP.

500 OOPS : une fonc­tion­na­lité de sécurité cause des problèmes

Si vous avez configuré un serveur FTP Ubuntu et que certains pa­ra­mètres ne fonc­tion­nent pas, cela peut avoir dif­fé­rentes raisons. Il est possible que vous ayez oublié de re­dé­mar­rer le serveur FTP ou de sau­ve­gar­der le fichier de con­fi­gu­ra­tion. 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 to­ta­le­ment dif­fé­rente, est le suivant :

500 OOPS: vsftpd: refusing to run with writable root inside chroot ()

Ce message, qui peut ap­pa­raître lors de l’éta­blis­se­ment d’une connexion, n’est en fait pas un message d’erreur, mais un élément de sécurité. La raison est une vul­né­ra­bi­lité possible de la bi­blio­thèque glibc (bi­blio­thèque standard Ubuntu du langage de pro­gram­ma­tion C), que les uti­li­sa­teurs avec des per­mis­sions d’écriture pour­raient exploiter pour leur propre ré­per­toire racine. Il y a deux façons de con­tour­ner ce blocage de sécurité :

  1. Supprimer les droits d’écriture dans le ré­per­toire racine de l’uti­li­sa­teur : vous retirez aux uti­li­sa­teurs locaux les droits d’écriture dans leur propre ré­per­toire racine, de sorte qu’ils ne peuvent plus écrire que dans des sous-ré­per­toires. Cette res­tric­tion résout l’erreur 500 OOPS, mais s’avère dé­fa­vo­rable lorsque les fichiers doivent être écrits dans le ré­per­toire racine. La commande de terminal pour cette solution se présente comme suit :
chmod a-w */home/user*
bash
  1. Autoriser l’écriture dans le ré­per­toire racine dans vsftpd.conf : si cette uti­li­sa­tion abusive des droits d’écriture ne vous pose pas de souci, vous pouvez également indiquer au serveur FTP Ubuntu que cette fonction est ex­pli­ci­te­ment souhaitée. Pour cela, il suffit d’ajouter une entrée sup­plé­men­taire dans le fichier de con­fi­gu­ra­tion :
allow_writeable_chroot=YES
txt
Aller au menu principal