Serveur FTP · 7 min read · Sep 24, 2025

Installation de Pure-FTPd sur Ubuntu 22.04

Pure-FTPd est un serveur FTP gratuit (licence BSD), sécurisé, de qualité professionnelle et conforme aux normes. Il ne fournit pas de fonctionnalités inutiles mais se concentre sur l’efficacité et la facilité d’utilisation. Ce guide fournit un processus étape par étape pour installer et configurer 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 des utilisateurs

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écharger des fichiers qui existent déjà sur le serveur.
  • AutoRename : Renomme automatiquement les fichiers téléchargé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 (dot files) 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-delà 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 chiffré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échargement 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.