Proftpd est uns serveur FTP pour GNU/Linux que j'ai choisi d'installer sur mon petit serveur Debian. Ce serveur me permet de partager certains documents (photos, vidéos personnelles ...) via internet et au port via un réseau local wifi. Le serveur n'a pas directement accès à internet, il est placé derrière un routeur et fait parti de la zone démilitarisée[1].
Ce type de configuration pose un problème majeur : pour ne pas engorger ma connection internet, je suis obligé de limiter le débit de données entrant et sortant de mon serveur FTP, limitation qui affectera aussi les machines dans le réseau local. Mais j'ai trouvé un moyen de satisfaire tout le monde grâce à une petite astuce dans mon fichier de configuration de proftpd.
<class inet>
From 192.168.1.1
</class>
...
TransferRate RETR,APPE,STOR 60 class inet
...
Petite explication de texte : nous déclarons une classe que l'on appelle inet, cette classe porte sur les informations venant du routeur (192.168.1.1). Pourquoi le routeur? Parce que tout ce qui vient d'internet aura comme source notre routeur vu de notre serveur. Nous définissons ensuite une close TransferRate (limite de notre bande passante) pour les actions RETR, APPE, STOR (Lire et Ecrire sur notre serveur) à 60Ko maximum pour notre classe inet. Le tour est joué...
Pour aller un peu plus loin : pour ne pas mettre à genoux notre serveur lors de transfert sur le réseau local, nous pouvons rajouter une close TransferRate avec comme classe !inet (qui signifie tout sauf inet). La configuration ressemblera alors à ceci :
<class inet>
From 192.168.1.1
</class>
...
TransferRate RETR,APPE,STOR 60 class inet
TransferRate RETR,APPE,STOR 1024 class !inet
...
Les transferts sur le réseau local depuis et vers notre serveur ne pourront alors excéder 1024 Ko/s alors que depuis Internet la limite sera de 60 Ko/s. Voilà maintenant nos limites de transfert réglées aux petits oignons...