Installer ProFTPd Linux Gentoo Aurélien BONNARDON 17/12/2007 Ce document explique les étapes pour installer et configurer le serveur FTP ProFTPd sous Gentoo.
ProFTPd ProFTPd est un serveur FTP libre. Ses auteurs l'annoncent comme puissant et parfaitement sécurisé sur le site web dédié au logiciel. Il est distribué selon les termes de la licence GNU GPL. Ses supporters disent que ProFTPd est bien documenté et que la plupart des configurations seront proches de celles des exemples fournis avec le logiciel. Son unique fichier de configuration, proftpd.conf, utilise une syntaxe similaire à celle d'apache permettant ainsi d'homogénéiser les fichiers de configuration. Le logiciel permet de configurer plusieurs serveurs FTP virtuels et a la possibilité d'être utilisé dans un environnement dédié (chroot). Il peut être lancé comme un démon ou comme service inetd. Enfin, ProFTPd est compatible IPv6. Son architecture est modulaire, ce qui a permis d'écrire des extensions pour le support de la cryptographie SSL/TLS et l'extension de l'authentification via des bases RADIUS, LDAP ou SQL. Site officiel : http://www.proftpd.org/
Téléchargement et installation Il faut taper la commande suivante dans un shell root pour lancer le téléchargement et l installation du démon ProFTPd. $ emerge proftpd
Configurations Fichier /etc/ftpusers Ce fichier contient la liste des utilisateurs à exclure du FTP. Pour plus de sécurité, il est important d y faire figurer tous les utilisateurs de votre système excepté ceux qui utilise le FTP, en particulier l utilisateur root. La commande suivante facilite la tâche : $ cat /etc/passwd cut -d ":" -f 1 > /etc/ftpusers Il suffit ensuite de le nettoyer. Ajout d un utilisateur Nous allons ajouter un utilisateur qui aura accès au serveur FTP. Nous l ajoutons au groupe ftp, créé lors de l installation de proftpd, et nous lui mettons un shell nul pour qu il ne puisse pas se connecter au serveur SSH. $ useradd -g ftp s /bin/false skeltryx Il faut penser à lui définir son mot de passe. $ passwd skeltryx On lui crée son répertoire personnel dans le répertoire racine de serveur ftp et on change l utilisateur associé à celui-ci. $ mkdir f /home/ftp/skeltryx $ chown skeltryx /home/ftp/skeltryx Lancer proftpd au démarrage Pour que le démon proftpd se lance au démarrage de votre machine, on utilise la commande suivante. $ rc-update add proftpd default
Fichier /etc/proftpd/proftpd.conf Le fichier /etc/proftpd/proftpd.conf est l unique fichier de configuration de proftpd. Déplacez vous dans le répertoire conserné. $ cd /etc/proftpd/ Commençons par visualiser le fichier d exemple pour voir comment les configurations se présentent : $ cat proftpd.conf.example # 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 anonymous access. ServerName "TryX ProFTPD" ServerType standalone DefaultServer on RequireValidShell off AuthPAM off AuthPAMConfig ftp # 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 the maximum number of processes per service # (such as xinetd). MaxInstances 30 # Set the user and group under which the server will run. User proftpd Group proftpd
Voici une configuration de base d un serveur de partage de fichier : # Nom du serveur ServerName "TryX ProFTPD" # Cela permet que le demon reste en memoire # (fonctionnement en demon et non avec inetd) ServerType standalone # Pour les serveurs virtuels DefaultServer on # Port du serveur Port 21 # Répertoire ou arrive les utilisateurs # Ils arrive dans le repertoire a leur nom de /home/ftp. DefaultChdir /home/ftp/%u # Répertoire racine # Les utilisateurs ne verrons que celui-ci. DefaultRoot /home/ftp # Autoriser l'usage de /etc/ftpusers. UseFtpUsers on # Seul le propriétaire d'un fichier peut le modifier. Umask 022 # Pour prevenir les attaques DOS, #on limite le nombre maximum de processus fils au demon. MaxInstances 30 # On definit l utilisateur avec lequel se lance le demon # nobody permet de securiser la machine User nobody Group nobody # Nombre maximum de clients simultanes MaxClients 3 # Nombre maximum de clients ayant le même login MaxClientsPerHost 3 # Message d'accueil après une connexion réussie AccessGrantMsg "Bienvenue %u" # Fichiers logs des connections et transferts SystemLog /var/log/proftpd.log TransferLog /var/log/xferlog # Autoriser la reprise des téléchargements interrompus AllowStoreRestart on
# Mise en place du repertoire racine du serveur /home/ftp <Directory /home/ftp> # Personne ne peut ecrire <Limit WRITE> DenyAll </Limit> </Directory> # Mise en place d un repertoire d un l utilisateur # (skeltryx dans l exemple) <Directory /mnt/ftp/skeltryx> <Limit WRITE> AllowUser skeltryx DenyAll </Limit> </Directory> Il faut ensuite lancer le démon proftpd avec la commande suivante. Celapermet de vérifier que le fichier /etc/proftpd/proftpd.conf ne possède pas d erreur. /etc/init.d/proftpd start
Sources Trustonme.net : http://www.trustonme.net/didactels/58.html Wikipedia : http://fr.wikipedia.org/wiki/proftpd Documentation officielle : http://www.proftpd.org/docs/