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 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 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 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é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 --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.