Configurer un serveur FTPS avec Pure-FTPd sous Debian
Introduction
Pure‑FTPd est un serveur FTP open source reconnu pour sa robustesse, sa sécurité et sa légèreté. Conçu pour répondre aux exigences des environnements modernes, il offre des fonctionnalités distinctives :
- Sécurité avancée :
- Chiffrement SSL/TLS : Support natif pour sécuriser les transferts.
- Chroot des utilisateurs : Chaque utilisateur est confiné dans son répertoire personnel, limitant ainsi l'accès aux autres zones du système.
- Contrôle d'accès : Des mécanismes (quotas, limitations de connexions, etc.) assurent une gestion fine de la sécurité.
- Performance et stabilité :
- Capable de gérer de nombreuses connexions simultanées, il offre des performances élevées et une grande stabilité, même en forte charge.
- Simplicité et flexibilité :
- Sa configuration modulaire (via des fichiers dans /etc/pure-ftpd/conf/) permet une personnalisation rapide.
- Il s'intègre facilement aux comptes Linux locaux ou à des bases de données externes pour une authentification flexible.
- Facilité d'utilisation :
- Simple à installer et à administrer, Pure‑FTPd convient aussi bien aux petites structures qu'aux environnements professionnels exigeants.
Installation et Configuration
Se loguer en root
su -
Faire la mise à jour du catalogue de paquets
apt update
Installer Pure-FTPd
apt install pure-ftpd -y
Générer un certificat SSL
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-subj "/C=FR/ST=Nouvelle-Aquitaine/L=Pau/O=/OU=IT/CN=ftp.monserveur.fr/emailAddress=admin@monserveur.fr" \
-keyout /etc/ssl/private/pure-ftpd.pem \
-out /etc/ssl/private/pure-ftpd.pem
Pure-FTPd se configure via des fichiers individuels placés dans le répertoire :
/etc/pure-ftpd/conf/
Il suffit de lui envoyer de simples instructions pour obtenir une configuration ...
... en quelques secondes.
Forcer l'utilisation de TLS (FTPS explicite)
echo "2" > /etc/pure-ftpd/conf/TLS
Définir la plage de ports passifs (dans le cas d'un DNAT avec pare-feu)
echo "60000 61000" > /etc/pure-ftpd/conf/PassivePortRange
Ajouter une IP passive (dans le cas d'un DNAT avec pare-feu : l'IP côté WAN)
echo "12.23.34.45" > /etc/pure-ftpd/conf/ForcePassiveIP
Chrooter tous les utilisateurs locaux
echo "yes" > /etc/pure-ftpd/conf/ChrootEveryone
Relancer Pure-FTPd
systemctl restart pure-ftpd
Vérifier le statut
systemctl status pure-ftpd
Connexion depuis un client FTP
Sur un client FTP (type FileZilla)
- initier une connexion en mode explicite avec :
Hôte : ftpes://IP-SERVEUR
Nom d'utilisateur : votre-utilisateur-linux
Mot de passe : son-mot-de-passe
Ne pas préciser de port.. Par défaut FileZilla se connectera au port 21.
Quid des avertissements de FileZilla concernant la reprise de connexion TLS ?
Le problème de reprise de session TLS avec Pure-FTPD vient du fait que, bien que le serveur supporte l'SSL/TLS pour le chiffrement de la connexion de contrôle, il ne reprend pas la session TLS pour les connexions de données.
Cela force une nouvelle négociation TLS à chaque transfert de fichier, ce qui peut déclencher un avertissement dans certains clients FTP, comme FileZilla.
Ce comportement est connu, mais il n'y a pas de solution en l'état à ma connaissance pour le moment.
↑ Haut de page