Chapitre 7. Déploiement et guide des opérations ProFTPD

$Revision: 1.11 $

$Date: 2007/07/06 20:49:09 $

Table des matières

7.1. Installation
7.2. Configuration
7.2.1. /etc/proftpd/modules.conf
7.2.2. /etc/proftpd/proftpd.conf
7.3. Filtrage
7.4. Gérer le service
7.4.1. Démarrage et arrêt
7.4.2. Supervision des connexions
7.4.3. Suspendre le service
7.4.4. Logs

Résumé

Après une décénie de disette, pendant laquelle le choix d'un serveur FTP se résumait à wu-ftpd, plusieurs serveurs FTP alternatifs ont surgi simultanément dans le monde OpenSource. Sur le devant de la scène, on trouve aujourd'hui vsftpd, Pure-FTPd et ProFTPD. Nous nous pencherons sur ce dernier, car ses fonctionnalités sont tout à fait honorables pour notre usage. Autre avantage, sa syntaxe est assez proche de celle d'Apache, donnant ainsi le sentiment d'être en terrain connu.

7.1. Installation

ProFTPd, comme certains services TCP, peut être démarré à la demande en cas de connexion ftp entrante. Cela permet de ne pas avoir un processus qui fonctionne en permanence, consommant de la mémoire, alors que les connexions TCP sont très rares. Dans cette configuration, c'est un super-serveur qui écoute le port FTP. Lorsqu'une connexion FTP est ouverte, le super-serveur exécutera ProFTPd et lui transmettra cette connexion.

Le prix à payer, théoriquement, est une certaine latence, puisque le serveur est démarré lors de la connexion. Mais dans la pratique, avec des charges raisonnables, on ne verra aucune différence entre une connexion passant par un super-serveur et une connexion directement prise en charge par ProFTPd.

Le super-serveur utilisé ici est xinetd. Il est plus souple que le super-serveur historique (inetd du package netkit) et permet une configuration très fine des ressources utilisable par les différents services.

On devra de préférence installer xinetd avant ProFTPd. Lors de l'installation de ce dernier, nous pourrons chosir le type d'installation dans une boîte de dialogue.

Figure 7.1. Choix d'installation

Choix d'installation


L'installation des deux paquetage s'effectue comme d'habitude avec apt-get :

root@ubuntu:/etc# apt-get install xinetd && apt-get install proftpd
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Reading state information... Fait       
Les NOUVEAUX paquets suivants seront installés :
  xinetd
0 mis à jour, 1 nouvellement installés, 0 à enlever et 8...
Il est nécessaire de prendre 0o/135ko dans les archives.
Après dépaquetage, 369ko d'espace disque supplémentaires...
Sélection du paquet xinetd précédemment désé...
(Lecture de la base de données... 18007 fichiers et répertoires...
Dépaquetage de xinetd (à partir de .../xinetd_2.3.14-1ubuntu1_i...
Paramétrage de xinetd (2.3.14-1ubuntu1) ...
Stopping internet superserver: xinetd.
Ajout de « diversion of /etc/init.d/inetd to /etc/init.d/inetd.real by xinetd »
Starting internet superserver: xinetd.

Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Reading state information... Fait       
Paquets suggérés :
  proftpd-doc
Les NOUVEAUX paquets suivants seront installés :
  proftpd
0 mis à jour, 1 nouvellement installés, 0 à enlever et 8...
Il est nécessaire de prendre 0o/784ko dans les archives.
Après dépaquetage, 2331ko d'espace disque supplémentaire...
Préconfiguration des paquets...
Sélection du paquet proftpd précédemment dés...
(Lecture de la base de données... 18036 fichiers et répertoires...
Dépaquetage de proftpd (à partir de .../proftpd_1.3.0-21ubuntu1...
Paramétrage de proftpd (1.3.0-21ubuntu1) ...
--------- IMPORTANT INFORMATION FOR XINETD USERS ----------
The following line will be added to your /etc/inetd.conf file:

ftp     stream  tcp     nowait  root    /usr/sbin/tcpd /usr/sbin/proftpd

If you are indeed using xinetd, you will have to convert the
above into /etc/xinetd.conf format, and add it manually. See
/usr/share/doc/xinetd/README.Debian for more information.
-----------------------------------------------------------

Adding system user `proftpd' (UID 109) ...
Adding new user `proftpd' (UID 109) with group `nogroup' ...
Not creating home directory `/var/run/proftpd'.
ProFTPd warning: cannot start neither in standalone nor in inetd/xinetd mode....

root@ubuntu:/etc# 

Même en installant xinetd avant ProFTPd, les scripts d'installation ne créent aucune configuration de base pour nous. Il faudra créér un fichier de configuration xinetd pour ProFTPd à la main. Sans rentrer des les détails des la syntaxe xinetd (voir xinetd.conf(5)), on pourra utiliser la configuration minimale ci-dessous. Il faudra placer ce fichier de configuration dans /etc/xinetd.d/proftpd.

service ftp 
  {
  disable        = no
  socket_type    = stream
  wait           = no
  nice           = 10
  user           = root
  server         = /usr/sbin/proftpd
  instances      = 4
  log_on_success += DURATION HOST USERID
  }

Si l'on désire exécuter ProFTPD en mode « standalone », dans lequel il fonctionne en permanence et prend l'écoute du port 21, on devra couper xinetd (ou mettre la variable disable à yes) et préciser ServerType standalone dans son fichier de configuration.