ProFTPD-1.2.9

Introduction à ProFTPD

Le package ProFTPD contient un démon FTP sécurisé et hautement configurable. Il est utile pour servir des grandes archives de fichiers sur un réseau.

Informations sur le package

Dépendances de ProFTPD

Optionnel

Linux_PAM-0.77

Installation de ProFTPD

Pour des raisons de sécurité, lancer ProFTPD en tant qu'utilisateur et groupe non privilégiés est encouragé.

groupadd proftpd &&
useradd -c proftpd -d /home/ftp -g proftpd -s /bin/false proftpd

Installez ProFTPD en lançant les commandes suivantes:

install_user=proftpd install_group=proftpd \
   ./configure --prefix=/usr --sysconfdir=/etc \
   --localstatedir=/var/run &&
make &&
make install

Explication des commandes

install_user=proftpd install_groud=proftpd : Spécifie l'identité de l'utilisateur et du groupe pour ProFTPD.

--prefix=/usr : Ceci installe ProFTPD dans /usr au lieu de /usr/local.

--sysconfigdir=/etc : Ceci empêche que les fichiers de configuration aillent dans /usr/etc.

--localstatedir=/var/run : Ceci utilise /var au lieu de /usr/var pour les fichiers de verrouillage.

Configurer ProFTPD

Script de démarrage proftpd

Installez le script de démarrage /etc/rc.d/init.d/proftpd inclus dans le paquetage blfs-bootscripts-5.1.

make install-proftpd

Fichiers de configuration

/etc/proftpd.conf

Ceci est la configuration d'exemple uniquement téléchargeable. Voir la documentation dans /usr/share/doc/proftpd et consultez le site web sur http://www.proftpd.org/ pour d'autres exemples de configuration.

cat > /etc/proftpd.conf << "EOF"
# This is a basic ProFTPD configuration file
# It establishes a single server and a single anonymous login.

ServerName                      "ProFTPD Default Installation"
ServerType                      standalone
DefaultServer                   on

# Port 21 is the standard FTP port.
Port                            21
# Umask 022 is a good standard umask to prevent new dirs and files
# from being group and world writable.
Umask                           022

# To prevent DoS attacks, set the maximum number of child processes
# to 30.  If you need to allow more than 30 concurrent connections
# 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                            proftpd
Group                           proftpd

# Normally, we want files to be overwriteable.
<Directory /*>
  AllowOverwrite                on
</Directory>

# A basic anonymous configuration, no upload directories.
<Anonymous ~proftpd>
  User                          proftpd
  Group                         proftpd
  # We want clients to be able to login with "anonymous" as well as "proftpd"
  UserAlias                     anonymous proftpd

  # Limit the maximum number of anonymous logins
  MaxClients                    10

  # We want 'welcome.msg' displayed at login, and '.message' displayed
  # in each newly chdired directory.
  DisplayLogin                  welcome.msg
  DisplayFirstChdir             .message

  # Limit WRITE everywhere in the anonymous chroot
  <Limit WRITE>
    DenyAll
  </Limit>
</Anonymous>
EOF

Script init.d de proftpd

cat > /etc/rc.d/init.d/proftpd << "EOF"
#!/bin/sh
# Begin $rc_base/init.d/proftpd

# Based on sysklogd script from LFS-3.1 and earlier.
# Rewritten by Gerard Beekmans  - gerard@linuxfromscratch.org

source /etc/sysconfig/rc
source $rc_functions

case "$1" in
        start)
                echo "Starting FTP Server..."
                loadproc /usr/sbin/proftpd
                ;;

        stop)
                echo "Stopping FTP Server..."
                killproc /usr/sbin/proftpd
                ;;

        reload)
                echo "Reloading FTP Server..."
                reloadproc /usr/sbin/proftpd
                ;;
             
        restart)
                $0 stop
                sleep 1
                $0 start
                ;;

        status)
                statusproc /usr/sbin/proftpd
                ;;

        *)
                echo "Usage: $0 {start|stop|reload|restart|status}"
                exit 1
                ;;
esac

# End $rc_base/init.d/proftpd
EOF
chmod 755 /etc/rc.d/init.d/proftpd

Créez les liens symboliques vers ce fichier dans les répertoires rc.d adéquats avec les commandes suivantes:

cd /etc/rc.d/init.d &&
ln -sf ../init.d/proftpd ../rc0.d/K50proftpd &&
ln -sf ../init.d/proftpd ../rc1.d/K50proftpd &&
ln -sf ../init.d/proftpd ../rc2.d/K50proftpd &&
ln -sf ../init.d/proftpd ../rc3.d/S50proftpd &&
ln -sf ../init.d/proftpd ../rc4.d/S50proftpd &&
ln -sf ../init.d/proftpd ../rc5.d/S50proftpd &&
ln -sf ../init.d/proftpd ../rc6.d/K50proftpd

Contenu

Le package ProFTPD contient ftpcount, ftpshut, ftptop, ftpwho et proftpd.

Description

ftpcount

ftpcount affiche le nombre actuel de connexions.

ftpshut

ftpshut arrête tous les serveurs proftpd à un moment donné.

ftptop

ftptop affiche le statut en cours des connexions.

ftpwho

ftpwho affiche les informations sur l'identifiant du processus pour chaque session.

proftpd

proftpd est le démon lui-même.