Configuration de Proftpd
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