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 updateInstallation de Pure-FTPd
Ensuite, installez Pure-FTPd en utilisant la commande suivante :
sudo apt install pure-ftpdConfiguration 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 ftpgroupCréez un utilisateur pour Pure-FTPd :
sudo useradd -g ftpgroup -d /dev/null -s /etc ftpuserGestion 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 mkdbRemplacez [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.pemModifiez la configuration de Pure-FTPd pour activer TLS :
echo 1 | sudo tee /etc/pure-ftpd/conf/TLS
sudo service pure-ftpd restartOptions 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 --helppour 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é
IPv4OnlyouIPv6Only. - 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.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.