Chapitre 3. Installer un serveur FTP (proftpd)

Table des matières
1. Pré-requis théorique
2. Description
3. Installation
4. Configuration
4.1. Fichier de configuration
4.2. Prendre en compte les modifications
4.3. Reconfigurer proftpd
5. Désinstallation
6. Annexe : fichier de configuration

Tableau 3-1. Evolution de cet article

DateAjout(s) / Modification(s)
09 mai 2003Version initiale.
27 octobre 2003Relecture.

1. Pré-requis théorique

1.1. Qu'est-ce que le protocole FTP ?

Le protocole FTP (File Transfer Protocol) est, comme son nom l'indique, un protocole de transfert de fichier.

2. Description

Il existe de nombreux serveur FTP pour votre Debian GNU/Linux. J'ai choisi proftpd car c'est le plus populaire et le plus simple d'utilisation. De plus sa configuration ressemble beaucoup à celle d'Apache, il intégre beaucoup d'outils de diagnostics très utiles (Ratios, limitations de bande passante ...) et profite de mises-à-jour régulières.

3. Installation

# apt-get install proftpd

Une fois le paquet installé, vous devez répondre aux questions suivantes:

Tableau 3-2. apt-get install proftpd

Nom du paquetQuestionRéponse à choisir
proftpdManage ProFTPd configuration with debconf?Yes
proftpdRun proftpd from inetd or standalone ?standalone
proftpdEnable anonymous access?No

4. Configuration

4.1. Fichier de configuration

Le fichier de configuration est /etc/proftpd.conf.

4.2. Prendre en compte les modifications

Si vous apportez des modifications au fichier de configuration, vous devez redémarrer le service pour que les changements soient pris en compte

# /etc/init.d/proftpd reload

4.3. Reconfigurer proftpd

Si vous souhaitez reconfigurer votre paquet à l'aide de debconf exécutez la commande :

# dpkg-reconfigure proftpd

5. Désinstallation

# apt-get remove proftpd

AstuceSupprimer toute trace du package précédement installé
 

Lorsque vous décidez de retirer un package de votre Debian GNU/Linux APT n'efface par les fichiers de configuration de ce package. Ceci permet de réinstaller plus rapidement la package. Cependant si vous souhaitez faire table rase et ne plus entendre parler du package, vous pouvez ajouter l'option --purge lors de la suppression.
# apt-get remove --purge <package>

6. Annexe : fichier de configuration

# This is a basic ProFTPD configuration file (rename it to
# 'proftpd.conf' for actual use.  It establishes a single server
# and a single anonymous login.  It assumes that you have a user/group
# "nobody/nogroup" and "ftp" for normal operation and anon.

ServerName                      "Debian"
ServerType                      standalone
DeferWelcome                    off

MultilineRFC2228                on
DefaultServer                   on
ShowSymlinks                    on
AllowOverwrite                  on

TimeoutNoTransfer               600
TimeoutStalled                  600
TimeoutIdle                     1200

DisplayLogin                    welcome.msg
DisplayFirstChdir               .message
ListOptions                     "-l"

DenyFilter                      \*.*/

# Uncomment this if you are using NIS or LDAP to retrieve passwords:
#PersistentPasswd               off

# Uncomment this if you would use TLS module:
#TLSEngine                      on

# Uncomment this if you would use quota module:
#Quotas                         on

# Port 21 is the standard FTP port.
Port                            21

# To prevent DoS attacks, set the maximum number of child processes
# to 30.  If you need to allow more than 30 concurrent connexions
# at once, simply increase this value.  Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd)
MaxInstances                    30

# Set the user and group that the server normally runs at.
User                            nobody
Group                           nogroup

# Normally, we want files to be overwriteable.
<Directory /*>
  # Umask 022 is a good standard umask to prevent new files and dirs
  # (second parm) from being group and world writable.
  Umask                         022  022

  AllowOverwrite                on
</Directory>

# A basic anonymous configuration, no upload directories.

# These lines are marked with ##proftpd.deb anon access## so that they
# can be recognized, and edited by postinst.  You can remove them once
# you're sure you don't want to keep them around.

##proftpd.deb anon access## <Anonymous ~ftp>
##proftpd.deb anon access##   User                              ftp
##proftpd.deb anon access##   Group                             nogroup
##proftpd.deb anon access##   # We want clients to be able to login with "anonymous" as well as "ftp"
##proftpd.deb anon access##   UserAlias                 anonymous ftp
##proftpd.deb anon access##
##proftpd.deb anon access##   RequireValidShell         off
##proftpd.deb anon access##
##proftpd.deb anon access##   # Limit the maximum number of anonymous logins
##proftpd.deb anon access##   MaxClients                        10
##proftpd.deb anon access##
##proftpd.deb anon access##   # We want 'welcome.msg' displayed at login, and '.message' displayed
##proftpd.deb anon access##   # in each newly chdired directory.
##proftpd.deb anon access##   DisplayLogin                      welcome.msg
##proftpd.deb anon access##   DisplayFirstChdir         .message
##proftpd.deb anon access##
##proftpd.deb anon access##   # Limit WRITE everywhere in the anonymous chroot
##proftpd.deb anon access##   <Directory *>
##proftpd.deb anon access##     <Limit WRITE>
##proftpd.deb anon access##       DenyAll
##proftpd.deb anon access##     </Limit>
##proftpd.deb anon access##   </Directory>
##proftpd.deb anon access##
##proftpd.deb anon access##   # Uncomment this if you're brave.
##proftpd.deb anon access##   # <Directory incoming>
##proftpd.deb anon access##   #   # Umask 022 is a good standard umask to prevent new files and dirs
##proftpd.deb anon access##   #   # (second parm) from being group and world writable.
##proftpd.deb anon access##   #   Umask                         022  022
##proftpd.deb anon access##   #            <Limit READ WRITE>
##proftpd.deb anon access##   #            DenyAll
##proftpd.deb anon access##   #            </Limit>
##proftpd.deb anon access##   #            <Limit STOR>
##proftpd.deb anon access##   #            AllowAll
##proftpd.deb anon access##   #            </Limit>
##proftpd.deb anon access##   # </Directory>
##proftpd.deb anon access##
##proftpd.deb anon access## </Anonymous>