PureFTP

03 Jan. 2006
Auteur : roudoudou
Responsable : TrustRobot
Score ( voter ) :
Connexes : Même auteur | Même responsable | Historique
Pureftp est un serveur ftp qui présente l'avantage d'être a la fois très sécure et de se mettre en place tres facilement malgré l'abscence d'une interface graphique de configuration. Il existe une multitude de configuration possible pour un serveur ftp [public, privé, ...]. On va essayer de mettre en place ici, un serveur ftp public auquel pourront accéder les utilisateurs anonymes ainsi que les utilisateurs de notre systeme pour télécharger ou transférer des fichiers.

1. Créer un utilisateur ftp (mode console)

2. Installation de pure-ftpd

2.1 Installation de la version de base

2.2 Installation de Pure-ftpd avec support TLS/SSL

Pour utiliser Pure-FTP avec TLS/SSL, assurez-vous : Avant de commencer l'installation de Pure-ftpd avec son module SSL/TLS, la création d'une clé sécurisée est nécessaire. Pour ce faire exécutez les commandes qui suivent. création du chemin d'accueil :
# mkdir -p /etc/ssl/private
génération de la clé SSL :
# openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
attribution des droits sur cette clé :
# chmod 600 /etc/ssl/private/*.pem
A ce stade, il ne vous reste plus qu'à télécharger les sources de Pure-FTP depuis le site officiel. En effet, les packages de votre distribution ne sont, par défaut, pas compilés avec l'option TLS/SSL. L'installation des sources se résume alors :
$ cd /où/sont/les/sources $ tar -xzvf pure-ftpd-xxx.tar.gz $ cd pure-ftpd-xxx $ ./configure --prefix=/usr --with-everything --with-tls --with-paranoidmsg --with-language=french --without-capabilities --with-virtualchroot $ su # make install-strip

3. Configuration de pure-ftpd

3.1 Configuration par défaut

La configuration par défaut de pure-ftpd est judicieuse et convient parfaitement pour une utilisation normale d'un serveur ftp. Elle autorise entre autre les connexions anonymes comme celles des utilisateurs du système et ce en toute sécurité. Pour profiter de notre nouveau serveur, on va donc tout simplement le lancer:
# pure-ftpd &
Voila, votre serveur ftp est opérationnel. Pour le vérifier il suffit de lancer un client ftp ou un navigateur et de se connecter en anonyme ou en s'identifiant sur ftp://localhost.

3.2 Configuration plus fine

Si le comportement par défaut ne vous satisfait pas, vous pouvez facilement personnaliser le fonctionnement de pureftpd. En effet, la configuration de pure-ftpd se distingue de celle des autres serveurs puisqu'elle ne fait appel à aucun fichier. Pour lui faire adapter le comportement souhaité, il suffit tout simplement de lui passer en argument un certain nombre d'options. L'ensemble des options disponibles et leurs significations sont détaillés dans la documentation livrée avec le logiciel. Voici juste pour exemple, la configuration de mon serveur ftp anonyme:
# pure-ftpd -A -b -B -c 5 -C 2 -e -F /usr/share/games/fortune/fr/amusantes -H -k 95% -K -M -q 1:2 -r -s -t :12
Lexique des options ci-dessous: Il existe beaucoup d'autres options dont vous trouverez le détail dans la documentation fournie avec le logiciel et qui est localisé dans votre répertoire /usr/share/doc/ ou man pure-ftpd.

3.3 Configuration pour SSL/TLS

Si vous avez installé Pure-FTP avec le support SSL/TLS assurez-vous d'avoir l'une des options suivantes dans la ligne qui lance Pure-FTP. Je vous invite à regarder le lien suivant pour plus d'information :

4. Création d'utilisateurs virtuels

Dans cette partiz nous allons créer un utilisateur mommé TEST, qui va être chrooté ( pas de remonté de répertoire )dans /Download/Download/ftp/. L'intérêt de crée ce type d'utilisateur est de ne pas crée des compte directement sur la machine. Je vais supposer que votre base de données des virtual users est /etc/pure-ftpd/pureftpd.pdb, si ce n'est pas le cas chez vous, adaptez. Pour lancer, pure avec le support de la base données c'est :
pure-ftpd -B -1 -K -A -c 5 -C 1 -E -r -w -l puredb:/etc/pure-ftpd/pureftpd.pdb &
S'il est déjà lancé, vous n'avez qu'à tuer son processus avant d'exécuter la commande précédente. Pour rajouter un utilisateur, tapez simplement la commande qui suit. 501 étant, le gid et l'uid de l'utilisateur ainsi créé, vérifiez qu'il n'entre en conflit avec aucun autre utilisateur, avant, chez vous :
pure-pw useradd TEST -u 501 -g 501 -d /Download/Download/ftp/ password : ***** confirm : *****
Pour que cet utilisateur soit pris en compte il faut mettre à jour la base de données des virtual users, chez moi mkdb :
pure-pw mkdb
Vérification de la création de l'utilisateur TEST :
pure-pw show TEST
-----------------------------------------------------
Login : TEST
Password : $1$UOz/bTt0$MIQaP52DT/LeA7MJksCNc0
UID : 501 (user)
GID : 501 (user)
Directory : /Download/Download/ftp/./
Full name :
Download bandwidth : 0 Kb (unlimited)
Upload bandwidth : 0 Kb (unlimited)
Max files : 0 (unlimited)
Max size : 0 Mb (unlimited)
Ratio : 0:0 (unlimited:unlimited)
Allowed local IPs :
Denied local IPs :
Allowed client IPs :
Denied client IPs :
Time restrictions : 0000-0000 (unlimited)
Max sim sessions : 0 (unlimited) 

5. Automatiser le lancement du serveur

Pour lancer notre serveur au démarrage du PC, il faut ajouter à la fin du fichier /etc/rc.d/init.d/rc.local, la ligne qui nous sert habituellement à le lancer. Ceci ne concerne bien-sûr pas ceux qui utilisent, les utilisateurs virtuels.
#Lancement de pure-ftpd (la suite en une ligne)
 pure-ftpd -A -b -B -c 5 -C 2 -e -F /usr/share/games/fortune/fr/amusantes -H -k 95% -K -M -q 1:2 -r -s -t :12 & 
pour ceux qui utilisent, les virtuals users, c'est ceci qu'il faut rajouter à /etc/rc.d/init.d/rc.local :
#Lancement de pure-ftpd (la suite en une ligne)
pure-ftpd -B -1 -K -A -c 5 -C 1 -E -r -w -l puredb:/etc/pure-ftpd/pureftpd.pdb & 

6. Commandes utiles

That's all !