Configuration de Proftpd

Posted by

I) Introduction :

Proftpd est un serveur FTP particulièrement apprécié. C’est l’une des meilleurs solutions disponibles actuellement. Il est distribué sous licence GPL, supportes les Hôtes Virtuels et est particulièrement simple à configurer. La syntaxe de son fichier de configuration est particulièrement proche de celle de Apache. Il supporte également l’utilisation d’une base de données SQL MySQL ou PostgreSQL ou d’un annuaire LDAP pour authentifier les utilisateurs

Il s’installe sous Debian de la manière suivante :

apt-get install proftpd

Le fichier de configuration associé est le fichier

/etc/proftpd.conf

.
L’ensemble des paramètres de configuration et leur signification est donné ici :
http://www.proftpd.org/docs/directives/linked/by-name.html

II) Configuration de base :

ServerName "Serveur FTP Debian"
 ServerType standalone
 DeferWelcome off
 Port 21
  
  MultilineRFC2228 on
 DefaultServer on
 ShowSymlinks on
 # Authorise l'écriture d'un fichier sur un fichier portant le même nom :
 AllowOverwrite on
  
  TimeoutNoTransfer 600
 TimeoutStalled 600
 TimeoutIdle 1200
  
  DisplayLogin welcome.msg
 DisplayFirstChdir .message
 ListOptions "-l"
 DenyFilter *.*/
 MaxInstances 30
  
 # Nom et groupe de l'utilisateur sous lequel Proftpd est lancé :
  User nobody
 Group nogroup

Jusque la, ces options standard parlent d’elles-mêmes. Voyons certaines options plus interressantes.
Autoriser la reprise des téléchargements :

AllowStoreRestart on
AllowRetrieveRestart on

Limiter la bande passante :
En Woody :

ReadRateBPS	1048576
WriteRateBPS	1048576

Les valeurs se donnent en octets par seconde, soit ici une limite en upload et en download de 1Mo/sec.

En Sarge et en Sid, la version de Proftpd ayant évoluée, les paramètres sont différents. L’option de configuration est maintenant
TransferRate et reçoit en paramètre la commande FTP, le débit et éventuellement un utilisateur.
La syntaxe est la suivante :
TransferRate [commande] [débit] [utilisateur/groupe] [nom de l’utilisateur/du groupe]
Donc pour limiter l’upload à 1Mo/sec pour tout le monde et le download à 2Mo/sec pour l’utilisateur bar on fera :

TransferRate APPE,STOR 1048576
TransferRate RETR 2097152 user foo

Chrooter ses utilisateurs :
Vous pouvez également restreindre la navigation à vos utilisateurs.
Les limiter à leur répertoire personnel :

DefaultRoot ~

Limiter l’utilisateur bar à /ftp/www.boobar.com :

DefaultRoot /ftp/www.foobar.com bar

Interdire le ftp à un utilisateur : Ajoutez son nom à la liste contenue dans le fichiers

/etc/ftpusers

.

III) La directive :

Les options dont nous avons parlées précédement peuvent s’appliquer de manière globale en utilisant et , mais proftpd permet de gérer plus finement un répertoire en particulier. Exemple :

  
    
       Order Allow,Deny
       Allow 192.168.1.0/24
       Allow 10.0.0.1
       Deny ALL
    
 

IV) Les Hôtes Virtuels :

Vous pouvez être amenés à gérer plusieurs serveurs FTP sur un même serveur, par exemple si vous gérez plusieurs serveurs Web. Ils se gèrent de la même façon que avec Apache. Vous aurez donc rapidement compris leur fonctionnement. Il suffit d’utiliser les directives et . Personnellement, je m’en suis beaucoup servi pour gérer différemment mon serveur FTP selon qu’il était accédé via le LAN ou via internet, notamment en ce qui concerne les limites de bande passante. Un petit exemple :


    ServerName "Serveur FTP de foobar.com!"
    Port 4000
    Umask 027
    DefaultRoot ~
    
       DenyAll
    
    
       User ftp
       Group ftp
       UserAlias anonymous ftp
    
       AllowAll
    
       
    DenyAll
    
    
          
       AllowAll
       
       TransferRate APPE,STOR 1048576
       TransferRate RETR 2097152 user foo
    
    
 

V) Sécurisation des transferts avec TLS :

En premier lieu, il faut générer le certificat x509 :

openssl req -new -x509 -days 365 -nodes  -out /etc/ssl/certs/proftpd.cert.pem -keyout /etc/ssl/certs/proftpd.key.pem

Ensuite il faut rajouter dans /etc/proftpd.conf :

TLSEngine on
 TLSLog /var/log/tls.log
 TLSProtocol SSLv23
 TLSOptions NoCertRequest
 TLSRSACertificateFile /etc/ssl/certs/proftpd.cert.pem
 TLSRSACertificateKeyFile /etc/ssl/certs/proftpd.key.pem
 TLSVerifyClient off

Leave a Reply

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *