Serveur FTP Ubuntu : voici comment le mettre en place

Afin de stocker des fichiers sur un serveur et de les récupérer à partir de celui-ci, le protocole de transfert FTP (File Transfer Protocol) basé sur TCP/IP a été spécifié dans la RFC 959 en 1985. Ce protocole permet de transporter les données via les ports 20 (client) et 21 (serveur) d’une part, et de créer, éditer et lire les répertoires d’autre part. Pour utiliser une telle structure client-serveur, les utilisateurs n’ont qu’à se connecter au serveur à l’aide d’un client FTP et d’un compte utilisateur spécifique.

Particulièrement avec l’hébergement web, le FTP (sécurisé) jouit d’une grande popularité : à l’aide du protocole de transport et du logiciel client approprié, le contenu de votre propre projet est facilement téléchargé dans l’espace web et des structures de répertoire sont créées. Si vous hébergez votre site Web chez un fournisseur, ce dernier fournit généralement une application serveur correspondante, y compris les données d’accès requises. Si l’hébergement web et le transfert de fichiers sont sous votre responsabilité, vous devez vous occuper vous-même des structures matérielles et logicielles appropriées. Dans ce guide, vous apprendrez donc configurer votre propre serveur FTP Ubuntu et ce à quoi vous devriez absolument faire attention.

Conseil

Vous souhaitez sauvegarder ou tranférer des données ? Louez dans ce cas un serveur secure FTP en ligne chez IONOS et obtenez ainsi un transfert sécurisé avec SSH et SSL/TLS de même que des sauvergardes quotidiennes.

Installation d’un serveur FTP Ubuntu

Avant de pouvoir commencer à configurer votre propre serveur FTP Ubuntu, vous devez d’abord trouver le logiciel approprié. Pour cela, les systèmes Ubuntu ont déjà leur propre solution dans la gestion des paquets avec vsftpd, qu’il suffit d’installer. L’application open source pour les systèmes unixoid est basée sur des modules et des composants qui se caractérisent par une programmation particulièrement compacte. De cette façon, les serveurs vsftpd garantissent un excellent standard de sécurité et des performances stables même avec un grand nombre d’accès clients. Pour installer l’application, il suffit de lancer le terminal et d’entrer la commande suivante :

sudo apt-get install vsftpd

Tutoriel Serveur FTP Ubuntu : configuration

Après un court processus d’installation, vous pouvez fermer le terminal et commencer à configurer le serveur FTP Ubuntu. Pour ce faire, ouvrez le fichier de configuration vsftpd.conf, qui se trouve par défaut dans le dossier "etc".

Pour ouvrir et modifier le fichier de configuration du serveur FTP, vous avez besoin d’un simple éditeur de texte. Ubuntu a le programme gedit (éditeur GNOME) déjà installé à l’usine pour de tels buts, donc vous n’avez pas nécessairement à chercher votre propre solution. Le contenu du texte peut être divisé en deux zones : les lignes commençant par le signe dièse (#) sont commentées et sont donc ignorées par le serveur vsftpd. D’une part, ces lignes sont des commentaires sur les différentes options de réglage, d’autre part, ce sont des fonctions désactivées. Les lignes qui ne commencent pas par le signe dièse, cependant, contiennent les informations qui sont interprétées plus tard par le serveur.

Il n’y a pas de spécification générale pour la suite de la configuration du serveur FTP, car lors de la configuration, cela dépend des exigences que vous faites en tant qu’utilisateur sur le serveur FTP. Pour ce faire, il est important que vous examiniez d’abord les différentes options. Dans les sections suivantes de ce Guide du serveur FTP Ubuntu, vous trouverez donc des informations sur les différentes options de paramétrage et leurs fonctions.

Remarque

Pour sauvegarder les modifications apportées au fichier vsftpd.conf, vous avez besoin des accès racine (root). Sinon, vous ne pouvez lire que le fichier de configuration.

Permettre des accès anonymes

Par défaut, vsftpd est configuré pour que les utilisateurs ne puissent se connecter au serveur FTP qu’avec un compte spécifique. Cependant, le protocole de transfert de fichiers permet également une procédure de connexion dans laquelle les utilisateurs se connectent anonymement sans avoir à entrer de données personnelles. Pour activer ce mode d’accès non spécifique, recherchez l’entrée "anonymous_enable=NO" et remplacez le paramètre "NO" par "YES" :

anonymous_enable=YES

Etendre les droits des utilisateurs anonymes

Par défaut, les droits sont sévèrement restreints lorsque les utilisateurs se connectent anonymement à 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_world_readable_only=YES). Si vous refusez cette instruction, vous pouvez également télécharger d’autres fichiers. Les options suivantes sont également disponibles :

  • anon_mkdir_write_enable: Les utilisateurs anonymes peuvent créer de nouveaux répertoires en entrant "YES" ici. Une condition supplémentaire est l’activation de write_enable (voir le paragraphe "Autoriser les modifications du système de fichiers" ci-dessous). Valeur par défaut : "NO" ou désactivé (#) "YES"
     
  • anon_other_write_enable: Si cette ligne est activée, les fichiers et répertoires du serveur FTP peuvent être renommés et supprimés même si l’accès a été obtenu de manière impersonnelle. Valeur par défaut : "NO" ou désactiver (#) "YES"
     
  • anon_upload_enable: Cette ligne de texte active le téléchargement anonyme de fichiers. Pour cela, vous devez activer write_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 home. Valeur par défaut : "NO" ou désactiver (#) "YES"

Si le serveur FTP est connecté à Internet, il n’est pas recommandé d’étendre ainsi les droits des utilisateurs anonymes. Sinon, vous risquez que votre serveur soit utilisé à mauvais escient par des tiers.

Restreindre l’accès aux utilisateurs locaux

Si vous voulez seulement permettre aux utilisateurs locaux d’accéder à votre répertoire personnel /home/username, vous pouvez également le définir dans vsftpd.conf. Le paramètre d’étiquetage responsable est "chroot_local_user", auquel la valeur "NO" est attribuée par défaut. Modifiez l’entrée comme suit

chroot_local_user=YES

Tous les autres annuaires restent fermés aux utilisateurs locaux.

Désactiver la connexion d’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 voulez refuser aux utilisateurs locaux l’accès à votre serveur FTP Ubuntu, vous n’avez qu’à inscrire la ligne correspondante en mettant le signe dièse devant :

#local_enable=YES

Autoriser les modifications du système de fichiers

Dans la configuration par défaut, ni les utilisateurs locaux ni les utilisateurs anonymes ne peuvent utiliser les commandes FTP. La ligne correspondante pour l’écriture globale "#write_enable=YES" est désactivée. Si les utilisateurs connectés doivent avoir la possibilité d’adapter le système de fichiers du serveur vsftpd, il est donc nécessaire de commenter l’instruction :

write_enable=YES

Restreindre l’accès FTP à des utilisateurs spécifiques

Dans certaines situations, il peut être utile de refuser l’accès au serveur FTP à certains utilisateurs ou de définir clairement quels utilisateurs peuvent se connecter. Pour la première solution, les lignes suivantes doivent être insérées à la fin du fichier de configuration :

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

Ces paramètres demandent au serveur vsftpd de refuser l’accès à tous les utilisateurs entrés dans le fichier externe vsftpd.user_list. Dans ce cas, tous les autres utilisateurs peuvent se connecter comme d’habitude.

Pour le second scénario, dans lequel seuls les utilisateurs saisis dans vsftpd.user_list peuvent se connecter, le paramètre "userlist_deny" doit être refusé :

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

Dans les deux cas, il est nécessaire de créer le fichier texte externe et de saisir manuellement les utilisateurs concernés.

Autres options dans ce tableau d’aperçu

Option Valeur standard Description
download_enable YES indique si les téléchargements à partir du serveur FTP Ubuntu sont possibles.
ssl_enable NO offre la possibilité d’activer le cryptage SSL pour l’accès FTP.
anon_max_rate 0 Définit la vitesse de transmission maximale (en octets par seconde) pour les utilisateurs anonymes ; 0 représente un taux illimité.
local_max_rate 0 Définit la vitesse de transmission maximale (en octets par seconde) pour les utilisateurs locaux ; 0 correspond à un taux illimité.
max_clients 0 Valeur maximale pour le nombre de clients connectés au serveur FTP en même temps ; 0 signifie qu’il n’y a pas de limite.
anon_root /home/ftp Répertoire vers lequel les utilisateurs anonymes sont automatiquement dirigés.
log_ftp_protocol NO enregistre toutes les demandes et réponses FTP
connect_timeout 60 définit la durée en secondes après laquelle la connexion entre le serveur et le client est interrompue en l’absence de communication.
ftpd_banner Texte de bienvenue  
guest_enable NO permet d’activer le profil d’accès anonyme défini dans guest_username.
guest_username ftp Nom d’utilisateur pour la connexion anonyme

Pour une liste complète d’options, utilisez la commande suivante sur le terminal :

man vsftpd.conf

Voici comment utiliser un serveur FTP sous Ubuntu

Après avoir conçu le fichier de configuration selon vos souhaits, vous ne devez pas oublier de l’enregistrer. Pour que l’application serveur accepte toutes les modifications, un redémarrage est également nécessaire, que vous lancez avec la commande suivante :

sudo etc/init.d/vsftpd restart

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

sudo etc/init.d/vsftpd start
Conseil

Si vous voulez arrêter à nouveau le serveur FTP Ubuntu, remplacez simplement le paramètre "start" par "stop" dans la commande précédente.

Maintenant que vous avez configuré et démarré votre serveur FTP Ubuntu, vous avez besoin d’un compte utilisateur pour vous y connecter. Ici, nous créons l’utilisateur avec le nom "user" et le mot de passe "password" comme exemple.

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

Autorisez ensuite l’accès de connexion pour l’interpréteur de commandes nologin en ajoutant la ligne suivante à la fin du fichier /etc/shells :

/usr/sbin/nologin

Vous pouvez maintenant utiliser le compte utilisateur créé pour vous connecter au serveur vsftpd en utilisant un client FTP. Une solution populaire avec les paquets Ubuntu par défaut est l’application Open Source multiplateforme FileZilla. Ainsi, l’installation fonctionne selon la méthode éprouvée via le terminal :

sudo apt-get install filezilla

Ouvrez FileZilla et ajoutez une nouvelle connexion avec les données appropriées : sous Hôte, entrez l’adresse IP de votre serveur FTP Ubuntu, qui, si vous n’avez pas changé cela dans les paramètres, écoute les requêtes sur le port 21. Sélectionnez le protocole de transfert de fichiers et si possible SFTP (Secure FTP) ou FTP sur TLS, car une simple connexion FTP sur le port 21 représente un risque de sécurité assez élevé. Dans le champ "Logon Type", sélectionnez "Normal". Pour "User" et "Password", vous avez besoin des données de connexion précédemment créées du compte d’exemple. Cliquez sur "Connect" pour vous connecter au serveur.

500 OOPS: la fonction de sécurité s’occupe des problèmes

Si vous avez configuré un serveur FTP Ubuntu et que certains paramètres ne fonctionnent pas, cela peut être dû à différentes raisons : par exemple, vous avez peut-être oublié de redémarrer le serveur FTP ou de sauvegarder le fichier de configuration. Les erreurs de syntaxe se glissent dans vsftpd.conf tout aussi rapidement si, par exemple, un espace est placé au mauvais endroit. Un message d’erreur commun qui a une cause complètement différente est le suivant :

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

Cependant, ce message, qui peut se produire lors de l’établissement de la 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é :

  1. Supprimer les droits d’écriture dans le répertoire racine de l’utilisateur : vous supprimez les droits d’écriture pour votre répertoire racine des utilisateurs locaux afin qu’ils ne puissent écrire que dans des sous-répertoires. Cette restriction résout l’erreur « 500 OOPS », mais s’avère défavorable lorsque les fichiers sont forcés d’être écrits dans le répertoire racine. La commande de Terminal de cette solution ressemble à cela :
chmod a-w /home/user
  1. Autoriser les droits d’écriture pour le répertoire racine dans vsftpd.conf : si vous n’avez aucun problème concernant l’abus des droits d’écriture, vous pouvez également indiquer au serveur FTP Ubuntu que cette fonctionnalité est explicitement souhaitée. Pour cela, vous n’avez besoin que d’une autre entrée dans le fichier de configuration.
allow_writeable_chroot=YES

Serveurs virtuels (VPS) avec IONOS

Hébergement VPS puissant et économique pour l'exécution de vos applications personnalisée, avec conseiller personnel et assistance 24/7.

Certificat SSL
Stockage 100% SSD
Prêt en 55 s