Serveur FTP · 8 min read · Sep 23, 2025

Installation de Pure-FTPd sur Ubuntu 24.04

Pure-FTPd est un logiciel de serveur FTP gratuit et open-source disponible pour Ubuntu et d’autres distributions Linux. Conçu avec un accent sur la sécurité, la performance et la facilité d’utilisation, Pure-FTPd offre des fonctionnalités robustes telles que le support des utilisateurs virtuels, des connexions cryptées utilisant TLS/SSL, et divers mécanismes d’authentification. Il fournit également des fonctionnalités telles que la limitation de la bande passante, la restriction des permissions des utilisateurs et l’activation de l’accès FTP anonyme. Pure-FTPd est souvent choisi pour sa simplicité de configuration par rapport à d’autres serveurs FTP, ce qui en fait un choix populaire pour les déploiements à la fois petits et à grande échelle sur les systèmes Ubuntu.

Le protocole de transfert de fichiers (FTP) est un protocole réseau standard utilisé pour transférer des fichiers entre un client et un serveur sur un réseau, tel qu’Internet. Développé au début des années 1970, le FTP permet aux utilisateurs de télécharger, téléverser et gérer des fichiers sur un serveur distant. Il fonctionne en utilisant deux canaux : un canal de commande pour contrôler la connexion et un canal de données pour transférer des fichiers. Le FTP peut fonctionner en mode actif ou passif, ce qui dicte comment le serveur et le client établissent des connexions. Bien qu’il soit largement utilisé pour les transferts de fichiers, le FTP est considéré comme peu sûr car les données, y compris les identifiants de connexion, sont transmises en texte clair ; je vais vous montrer dans ce guide comment configurer Pure-FTPd pour utiliser FTPS (FTP sur SSL/TLS), rendant le FTP sécurisé.

Ce tutoriel vous guide étape par étape à travers le processus d’installation et de configuration de Pure-FTPd sur Ubuntu.

Prérequis pour l’installation de Pure-FTPd

Avant de procéder à l’installation, assurez-vous d’avoir :

  • Un serveur Ubuntu configuré
  • Accès à un compte utilisateur avec des privilèges sudo

Installation étape par étape de Pure-FTPd

Mise à jour des paquets système

Tout d’abord, mettez à jour la liste des paquets de votre système :

sudo apt update

Installation de Pure-FTPd

Ensuite, installez Pure-FTPd en utilisant la commande suivante :

sudo apt install pure-ftpd

Configuration de Pure-FTPd pour une sécurité renforcée

Mise en place d’un environnement sécurisé

Créez un groupe dédié pour les utilisateurs FTP :

sudo groupadd ftpgroup

Créez un utilisateur pour Pure-FTPd :

sudo useradd -g ftpgroup -d /dev/null -s /etc ftpuser

Gestion de l’accès utilisateur

Pour ajouter un utilisateur au serveur FTP :

sudo pure-pw useradd [nom_utilisateur] -u ftpuser -g ftpgroup -d /home/ftpusers/[nom_utilisateur]  
sudo pure-pw mkdb

Remplacez [nom_utilisateur] par le nom d’utilisateur souhaité.

Configuration de TLS pour un transfert de données sécurisé

Générez un certificat auto-signé :

sudo openssl req -x509 -nodes -days 730 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem

Modifiez la configuration de Pure-FTPd pour activer TLS :

echo 1 | sudo tee /etc/pure-ftpd/conf/TLS  
sudo service pure-ftpd restart

Options de configuration avancées

Voici une liste des paramètres courants qui peuvent être configurés pour Pure-FTPd dans le répertoire /etc/pure-ftpd/conf/ sur Ubuntu. Le nom du fichier de configuration est en gras.

  • AltLog : Spécifie des méthodes de journalisation alternatives. Par exemple, AltLog clf:/var/log/pureftpd.log enregistrera les transferts au format W3C.
  • AnonymousOnly : Lorsqu’il est activé (en créant un fichier nommé AnonymousOnly), il restreint le serveur à n’autoriser que les connexions anonymes.
  • AntiWarez : Si ce fichier existe, les utilisateurs sont interdits de téléverser des fichiers qui existent déjà sur le serveur.
  • AutoRename : Renomme automatiquement les fichiers téléversés si un fichier avec le même nom existe.
  • Bind : Lie le serveur à une adresse IP et un port spécifiques. Par exemple, Bind 21 lie au port 21 sur toutes les adresses disponibles.
  • BrokenClientsCompatibility : Active la compatibilité avec les clients FTP qui ne respectent pas strictement les normes FTP.
  • ChrootEveryone : S’il est activé, restreint tous les utilisateurs à leur répertoire personnel.
  • CreateHomeDir : Crée automatiquement des répertoires personnels s’ils n’existent pas lors de la connexion d’un utilisateur.
  • CustomerProof : Augmente la résilience contre les erreurs courantes dans les configurations et commandes des clients.
  • Daemonize : Lorsque ce fichier existe, Pure-FTPd fonctionnera en tant que démon.
  • DisplayDotFiles : Contrôle si les fichiers cachés (fichiers dot) sont affichés ou non.
  • DontResolve : Empêche la résolution DNS pour la journalisation et le contrôle de la bande passante, ce qui peut améliorer les performances.
  • ExtAuth : Spécifie un programme externe pour l’authentification des utilisateurs.
  • ForcePassiveIP : Force le serveur à signaler une adresse IP spécifique aux clients en mode passif.
  • FSCharset : Définit le jeu de caractères du système de fichiers, utile pour les noms de fichiers non-ASCII.
  • IPv4Only ou IPv6Only : Restreint le serveur à écouter uniquement les adresses IPv4 ou IPv6.
  • KeepAllFiles : Empêche la suppression de fichiers sur le serveur.
  • LDAPConfigFile : Spécifie le chemin vers le fichier de configuration LDAP pour l’authentification.
  • LimitRecursion : Limite la profondeur de récursion et le nombre de fichiers affichés dans les listes de répertoires.
  • MaxClientsNumber : Limite le nombre maximum de clients simultanés.
  • MaxClientsPerIP : Restreint le nombre de connexions simultanées d’une seule adresse IP.
  • MaxDiskUsage : Limite le pourcentage d’utilisation du disque.
  • MaxIdleTime : Définit le temps d’inactivité maximum en minutes avant de déconnecter un client.
  • MaxLoad : Déconnecte les clients ou refuse de nouvelles connexions au-dessus d’une certaine charge système.
  • MinUID : Définit l’UID minimum pour la connexion. Les utilisateurs avec un UID inférieur ne peuvent pas se connecter.
  • MySQLConfigFile : Spécifie le chemin vers le fichier de configuration MySQL pour l’authentification basée sur une base de données.
  • NoAnonymous : Désactive les connexions anonymes si ce fichier existe.
  • NoChmod : Désactive la commande CHMOD sur le serveur.
  • NoRename : Empêche les utilisateurs de renommer des fichiers.
  • PassivePortRange : Définit une plage de ports pour les connexions passives (par exemple, 30000 35000).
  • PerUserLimits : Définit des limites sur une base par utilisateur.
  • PureDB : Spécifie le chemin vers le fichier de base de données utilisateur PureDB.
  • Quota : Définit des limites de quota utilisateur.
  • SyslogFacility : Définit la facilité syslog pour la journalisation.
  • TLSCipherSuite : Spécifie les chiffres TLS autorisés pour les connexions cryptées.
  • TrustedGID : Spécifie une liste d’ID de groupe de confiance pour la connexion.
  • UMask : Définit le umask par défaut pour la création de fichiers.
  • UnixAuthentication : Active l’authentification contre la base de données de mots de passe UNIX.
  • UploadScript : Spécifie un script à exécuter après un téléversement réussi.

Cette liste couvre les options de configuration les plus couramment utilisées mais n’est pas exhaustive. Référez-vous toujours à la documentation officielle de Pure-FTPd ou utilisez la commande

pure-ftpd-wrapper --help

pour les informations les plus précises et complètes.

Exemples

Voici une liste de paramètres Pure-FTPd dans /etc/pure-ftpd/conf/ avec des exemples pour illustrer les types de valeurs qu’ils acceptent :

  • AltLog : AltLog clf:/var/log/pureftpd.log - Exemple : clf:/var/log/pureftpd.log
  • AnonymousOnly : Activez en créant un fichier nommé AnonymousOnly. - Pas de valeur nécessaire.
  • AntiWarez : Activez en créant un fichier nommé AntiWarez. - Pas de valeur nécessaire.
  • AutoRename : Activez en créant un fichier nommé AutoRename. - Pas de valeur nécessaire.
  • Bind : Bind 21 - Exemple : 192.168.0.1,21
  • BrokenClientsCompatibility : Activez en créant un fichier nommé BrokenClientsCompatibility. - Pas de valeur nécessaire.
  • ChrootEveryone : Activez en créant un fichier nommé ChrootEveryone. - Pas de valeur nécessaire.
  • CreateHomeDir : Activez en créant un fichier nommé CreateHomeDir. - Pas de valeur nécessaire.
  • CustomerProof : Activez en créant un fichier nommé CustomerProof. - Pas de valeur nécessaire.
  • Daemonize : Activez en créant un fichier nommé Daemonize. - Pas de valeur nécessaire.
  • DisplayDotFiles : Activez en créant un fichier nommé DisplayDotFiles. - Pas de valeur nécessaire.
  • DontResolve : Activez en créant un fichier nommé DontResolve. - Pas de valeur nécessaire.
  • ExtAuth : ExtAuth /path/to/authenticator - Exemple : /usr/local/bin/myauth
  • ForcePassiveIP : ForcePassiveIP 192.168.0.1 - Exemple : 192.168.0.1
  • FSCharset : FSCharset utf-8 - Exemple : utf-8
  • IPv4Only ou IPv6Only : Activez en créant un fichier nommé IPv4Only ou IPv6Only. - Pas de valeur nécessaire.
  • KeepAllFiles : Activez en créant un fichier nommé KeepAllFiles. - Pas de valeur nécessaire.
  • LDAPConfigFile : LDAPConfigFile /etc/pure-ftpd/ldap.conf - Exemple : /etc/pure-ftpd/ldap.conf
  • LimitRecursion : LimitRecursion 10000 8 - Exemple : 10000 8 (10000 fichiers, 8 niveaux de profondeur)
  • MaxClientsNumber : MaxClientsNumber 50 - Exemple : 50
  • MaxClientsPerIP : MaxClientsPerIP 8 - Exemple : 8
  • MaxDiskUsage : MaxDiskUsage 95 - Exemple : 95 (95 pour cent)
  • MaxIdleTime : MaxIdleTime 15 - Exemple : 15 (15 minutes)
  • MaxLoad : MaxLoad 4.0 - Exemple : 4.0
  • MinUID : MinUID 1000 - Exemple : 1000
  • MySQLConfigFile : MySQLConfigFile /etc/pure-ftpd/mysql.conf - Exemple : /etc/pure-ftpd/mysql.conf
  • NoAnonymous : Activez en créant un fichier nommé NoAnonymous. - Pas de valeur nécessaire.
  • NoChmod : Activez en créant un fichier nommé NoChmod. - Pas de valeur nécessaire.
  • NoRename : Activez en créant un fichier nommé NoRename. - Pas de valeur nécessaire.
  • PassivePortRange : PassivePortRange 30000 35000 - Exemple : 30000 35000
  • PerUserLimits : PerUserLimits 8 - Exemple : 8 (8 connexions simultanées par utilisateur)
  • PureDB : PureDB /etc/pure-ftpd/pureftpd.pdb - Exemple : /etc/pure-ftpd/pureftpd.pdb
  • Quota : Quota 1000M - Exemple : 1000M (1000 mégaoctets)
  • SyslogFacility : SyslogFacility ftp - Exemple : ftp
  • TLSCipherSuite : TLSCipherSuite HIGH:MEDIUM:+TLSv1:!SSLv2:+SSLv3 - Exemple : HIGH:MEDIUM:+TLSv1:!SSLv2:+SSLv3
  • TrustedGID : TrustedGID 1000 - Exemple : 1000
  • UMask : UMask 133:022 - Exemple : 133:022 (Fichiers : 133, Répertoires : 022)
  • UnixAuthentication : Activez en créant un fichier nommé UnixAuthentication. - Pas de valeur nécessaire.
  • UploadScript : UploadScript /path/to/script - Exemple : /usr/local/bin/uploadscript

Ces exemples devraient clarifier comment configurer diverses options dans Pure-FTPd.

Surveillance et maintenance

Vérifiez régulièrement les journaux dans /var/log/pure-ftpd/ pour toute activité ou erreur inhabituelle.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.