Table des matières
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.
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.
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.