Aller au contenu principal

proftpd

ProFTPD est un serveur FTP alternatif à vsftpd, plus modulaire : configuration proche de la syntaxe Apache (blocs <Directory>, <Anonymous>), support de modules (mod_tls, mod_sql pour authentifier contre une base de données, mod_vroot...), et possibilité de fichiers de config par répertoire (comme .htaccess).

Installation

sudo apt install proftpd-basic # Debian/Ubuntu
sudo dnf install proftpd # RHEL/Fedora
sudo systemctl enable --now proftpd

Fichiers de configuration

FichierRôle
/etc/proftpd/proftpd.confConfiguration principale
/etc/proftpd/conf.d/Fragments de config additionnels
/etc/proftpd/tls.confConfiguration FTPS (module mod_tls)
.ftpaccess (par répertoire, si activé)Restrictions locales par dossier

Commandes utiles

systemctl status proftpd
proftpd -t # tester la syntaxe de config
ftpwho # lister les connexions actives
ftptop # équivalent "top" pour les sessions FTP
journalctl -u proftpd

Exemple de configuration

ServerName "Serveur FTP"
DefaultRoot ~
RequireValidShell off

<Global>
AllowOverwrite on
PassivePorts 40000 40100
</Global>

<IfModule mod_tls.c>
TLSEngine on
TLSRequired on
TLSRSACertificateFile /etc/ssl/certs/proftpd.pem
TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key
</IfModule>

DefaultRoot ~ chroot chaque utilisateur dans son home, équivalent du chroot_local_user de vsftpd.

Sécurisation

  • Activer mod_tls et forcer TLSRequired on — comme vsftpd, FTP en clair expose tout.
  • DefaultRoot ~ pour chrooter systématiquement.
  • Désactiver les modules non utilisés (mod_ident historique, notamment) — chaque module chargé est une surface d'attaque.
  • Restreindre le range PassivePorts et n'ouvrir que celui-ci au firewall.
  • Limiter les tentatives de connexion (MaxLoginAttempts) pour freiner le bruteforce.

Logs & dépannage

journalctl -u proftpd
tail -f /var/log/proftpd/proftpd.log
ftpwho # sessions FTP actives en temps réel

Voir aussi

  • vsftpd — alternative plus légère et plus simple à auditer