7.2. Configuration

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.

7.2.1. /etc/proftpd/modules.conf

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

7.2.2. /etc/proftpd/proftpd.conf

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