System-Linux

Aller au contenu | Aller au menu | Aller à la recherche

Compilation Installation et Configuration de Proftpd

Pour ceux qui voudraient installer un serveur ftp tout simple (sans support mysql) avec un minimum de sécurité et surtout le compiler eux même :)

Télécharger la derniere version stable c'est mieux ! :

cd /opt/SOURCES/
wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.1.tar.bz2
tar -xvjf proftpd-1.3.1.tar.bz2
cd proftpd-1.3.1

Compilation :

mkdir /opt/proftpd
./configure --help (pour voir les options qui vous interesse)
./configure --prefix=/opt/proftpd131 --enable-openssl --enable-ctrls
make
make install

Fichier de configuration .conf à modifier comme ci-dessous :


/opt/proftpd/etc $ cat proftpd.conf
# 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" and "ftp" for normal operation and anon.

ServerName                      "System-Linux.eu"
ServerType                      standalone
DefaultServer                   on

#Accélerer l'authentification de ProFtpd
IdentLookups off
UseReverseDNS off

# Port 21 is the standard FTP port.
Port                            51       (en l'honneur du pastaga :p)

# Option du mode passif
PassivePorts 7100 7200

# Autoriser l'usage de /etc/ftpusers
UseFtpUsers on

# Rertoire dans lequel arrivent les utilisateurs accepte
DefaultChdir /mnt/ftp

# Rértoire racine, les connectéau ftp ne verrons que lui et son contenu
DefaultRoot /mnt/ftp

# On autorise les reprises des téchargements interrompus :
AllowStoreRestart on

# Les logs des connections et transferts
SystemLog /var/log/proftpd.log
TransferLog /var/log/xferlog

# Nombre maximum de clients ayant le mê login
MaxClientsPerHost 2

# Message d'accueil aprèune connexion résie
AccessGrantMsg "Connexion reussie chapeau l'artiste"

# Pour ne pas donner d'info sur le serveur
DeferWelcome off

# Un utilisateur peut écraser ses propres fichiers
AllowOverwrite off

# 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                    20

# Set the user and group under which the server will run.
User                            proftpu
Group                           proftpg

# To cause every FTP user to be "jailed" (chrooted) into their home
# directory, uncomment this line.
#DefaultRoot ~

# Bar use of SITE CHMOD by default
<Limit SITE_CHMOD>
  DenyAll
</Limit>

# A basic anonymous configuration, no upload directories.  If you do not
# want anonymous users, simply delete this entire <Anonymous> section.
#<Anonymous ~ftp>
 # User                         ftp
 # Group                                ftp

 # We want clients to be able to login with "anonymous" as well as "ftp"
 # UserAlias                    anonymous ftp

  # Limit the maximum number of anonymous logins
 # MaxClients                   5

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

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

Créer l'utilisateur et le groupe pour lancer le serveur :

useradd proftpu -d / -s /bin/false 
usermod proftpu -g proftpg

Créer le client utilisateur ftp :

useradd userftp -s /bin/false
passwd userftp

Créer le partage (dossier ftp) :

mkdir /mnt/ftp 
cd /mnt/ftp 
mkdir images videos docs scripts films (etc....)
chmod -R 777 /mnt/ftp

Création du fichier /etc/ftpusers :

C'est le fichier dans lequel sont mentionnés tous les utilisateurs exclus du FTP, pour l'initialisez tapez :

cp /etc/passwd /etc/ftpusers

Le but est simple, il faut qu'apparaissent dans ce fichier tous les utilisateurs de votre linux à l'exception de ceux que vous avez crée précédemment (userftp). N'oubliez pas de rajouter anonymous et faîtes le ménage, pour qu'il ressemble à ça :

# This file describes the names of the users that may
# _*NOT*_ log into the system via the FTP server.
# This usually includes "root", "uucp", "news" and the
# like, because those users have too much power to be
# allowed to do "just" FTP...
#
 root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
ftp
smmsp
mysql
rpc
gdm
pop
nobody
anonymous
kernel 

Création des fichiers de log :

touch /var/log/porftpd.log touch /var/log/xferlog

Lancer votre serveur Proftpd :

cd /opt/proftpd/sbin/
./proftpd

Vérifier que le serveur tourne bien :

ps -ef | grep proftpd
root      5541  1972  0 16:14 pts/1    00:00:00 grep proftpd
proftpu   16174     1  0 11:27 ?        00:00:00 proftpd: (accepting connections)

Les petits plus :

Voici les autres binaires de proftpd il se trouve dans /opt/proftpd/bin :

ftpcount  ftpdctl  ftptop  ftpwho

ftpcount : donne le nombre d'utilisateur online

ftpdctl : controle le bon fonctionnement du socket d'ecoute ftp

ftptop : commande top mais pour proftpd

ftpwho : vous listes les comptes online

il y a aussi ftpshut dans /opt/proftpd/sbin qui sert à arreter le serveur, exemple :

ftpshut now "Coupure pour maintenance et pour xxxxxxx les utilisateurs"

Pour réouvrir le serveur ftp :

ftpshut -R

Voir les modules que support votre proftpd :

cd /opt/proftpd/sbin
./proftpd -vv

Qui vous donne quelque chose comme ça :

 - ProFTPD Version: 1.3.1 (stable)
 -   Scoreboard Version: 01040002
 -   Built: mar déc 23 15:38:02 CET 2008
 -     Module: mod_core.c
 -     Module: mod_xfer.c
 -     Module: mod_auth_unix.c
 -     Module: mod_auth_file/0.8.3
 -     Module: mod_auth.c
 -     Module: mod_ls.c
 -     Module: mod_log.c
 -     Module: mod_site.c
 -     Module: mod_delay/0.6
 -     Module: mod_cap/1.0
 -     Module: mod_ctrls/0.9.4

Je ferai bientôt le même article mais avec support Mysql.

Par GanGan | le dimanche, décembre 28 2008 08:00