28déc.2008
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.
