ProFTPD est un service de transfert de fichiers via le protocole FTP. Ce service est largement utilisé sur les serveurs Linux pour la gestion des fichiers.
Les serveurs FTP peuvent fonctionner en deux modes :
- Actif - PORT : Le client détermine le port de connexion.
- Passif - PASV : Le serveur détermine le port de connexion.
En plus du port 21 par défaut, il y a un processus de négociation pour ouvrir des ports supplémentaires. Selon le mode de fonctionnement du serveur, l'initiateur de la négociation ultérieure est soit le client, soit le serveur.
Inconvénients du mode actif :
- Ne fonctionne pas si le client est derrière un NAT/pare-feu (le serveur ne peut pas atteindre le client).
- Un nouveau port est ouvert pour chaque fichier, ce qui entraîne une augmentation significative des sessions.
Avantages du mode passif :
- Fonctionne à travers un NAT/pare-feu (l'initiative vient du client).
- Il est possible de limiter la plage de ports sur le serveur (PassivePorts dans ProFTPD).
Pour limiter le nombre de connexions, des paramètres doivent être configurés dans le fichier de configuration du service :
/etc/proftpd.conf
MaxInstances 30 # Nombre maximum de processus (y compris ceux de service) que ProFTPD peut lancer.
MaxClients 20 # Nombre maximum de connexions simultanées (utilisateurs).
MaxClientsPerHost 3 # Limite le nombre de connexions depuis une seule adresse IP.
Vous pouvez également activer de force le mode passif :
/etc/proftpd.conf
Passive on
PassivePorts 50000 50100 # Limite la plage de ports (max. 100 connexions).
Le mode passif peut ne pas fonctionner pour tout le monde, vérifiez le fonctionnement du NAT et du pare-feu.
Vérifiez le fichier de configuration pour détecter les erreurs. S'il fonctionne comme un service, redémarrez-le. S'il fonctionne avec inetd, il suffit de s'assurer qu'il n'y a pas d'erreurs dans le fichier de configuration.
proftpd -t # Vérifier la configuration.
systemctl restart proftpd # Redémarrer.
Le protocole FTP présente plusieurs inconvénients et fonctionne parfois avec un "retard", contrairement à HTTP/S ou SFTP (Protocole de transfert de fichiers SSH), en raison de la nécessité de négocier les actions et d'attendre la confirmation client-serveur.
Si vous devez transférer un grand nombre de petits fichiers, il est recommandé de le faire dans une archive et de la décompresser ensuite sur le serveur.