La configuration de ProFTPD est donnée par le fichier
/etc/proftpd/proftpd.conf
. Ce fichier inclus tout de suite
un autre fichier de configuration :
/etc/proftpd/modules.conf
La configuration par défaut de ces deux fichiers devra subir quelques
ajustements.
Ce fichier contient la liste des modules que ProFTPD doit charger.
La plupart d'entre eux sont probablement inutiles. Il faudra bien sûr adapter
en fonction de sa situation, mais si l'authentification se fait avec la base
des utilisateurs locaux, inutile de charger le modules
mod_sql*
,
mod_ldap
et
mod_radius
. On pourra donc les commenter.
#LoadModule mod_sql.c #LoadModule mod_ldap.c #LoadModule mod_sql_mysql.c #LoadModule mod_sql_postgres.c
Idem pour les quotas. S'ils ne sont pas utilisés, il faut commenter dans le fichier de configuration :
#LoadModule mod_quotatab.c #LoadModule mod_quotatab_file.c #LoadModule mod_quotatab_ldap.c #LoadModule mod_quotatab_sql.c
Les tcpwrappers n'étant pas utilisés dans notre
configuration, on pourra supprimer mod_wrap
.
Idem pour mod_rewrite
servant à faire de la réécriture
d'URL : s'il n'est pas utilisé on le commente.
#LoadModule mod_wrap.c #LoadModule mod_rewrite.c
Ce fichier contient le reste de la configuration du serveur. On pourra
supprimer l'utilisation d'IPv6. Dans la mesure ou nous l'avons désactivé au
niveau système, inutile que ProFTPD tente d'ouvrir le port 21 en IPv6.
Il faudra aussi changer ServerIdent
, afin
d'éviter d'exposer la version du serveur. Avec la valeur par défaut, lors d'une
connexion le serveur enverrait :
220 ProFTPD 1.3.0 Server (MonServeur) [192.168.17.139]
En ajoutant la directive de configuration, nous aurons :
220 Serveur prêt
La directive RequireValidShell
sera
positionnée à off si nous voulons permettre aux
utilisateurs d'accéder au serveur en FTP sans forcément leur fournir un shell.
Cela permet de les laisser mettre des fichiers en FTP sur un
espace Web même si l'on a modifié leur shell par /bin/false
.
On utilisera aussi
« DefaultRoot ~
»
afin de restreindre les utilisateurs dans leur répertoire personnel.
UseIPv6 off ServerName "MonServeur" ServerIdent on "Serveur prêt" ShowSymlinks off DefaultRoot ~ RequireValidShell off IdentLookups off