Installer et configurer PureFTPD avec des utilisateurs virtuels et gestion de quotas
Ecrit par Romain |
Coin du geek, Linux | Le guide d’installation suivant permet d’installer et configurer un serveur FTP gérant des quotas par utilisateurs même si c’est ces derniers ont un UID identiques. Il permet aussi de gérer des utilisateurs virtuels.
1. Installation Pure-ftpd
L’installation de pure-ftpd se fait par la commande suivante:
apt-get install pure-ftpd
Pure-FTPD est associé automatiquement à inetd et n’est plus en mode standalone comme avant. Il faut donc modifier le fichier /etc/default/pure-ftpd-common ainsi:
# STANDALONE_OR_INETD # valid values are "standalone" and "inetd". # Any change here overrides the setting in debconf. STANDALONE_OR_INETD=standalone
Il faut alors arrêter inetd et le relancer :
/etc/init.d/openbsd-inetd stop /etc/init.d/openbsd-inetd start
On peut maintenant gérer l’arrêt et le démarrage du serveur avec les commandes suivante :
/etc/init.d/pure-ftpd stop /etc/init.d/pure-ftpd start
Pour éviter l’erreur 530 Sorry, but I can’t trust you, Il faut modifier la valeur du fichier avec une valeur égale au minimum au plus petit UID des utilisateurs qui posséderont les dossiers racines :
/etc/pure-ftpd/conf/MinUID
Exemple : Pour faire simple, si vous voulez autoriser un utilisateur virtuel à se connecter sur le FTP et qu’il est mappé avec les droits de root, il faudra mettre 0 dans le fichier précédent car dans /etc/passwd :
root:x:0:0:root:/root:/bin/bash
2. Configuration du serveur FTP
De base, pure-ftpd autorise la connexion de tous les utilisateurs systèmes (ceux de linux). Il faut donc supprimer cette configuration puisque nous ne souhaitons qu’avoir des utilisateurs virtuels.
Il faut donc se rendre dans le dossier /etc/pure-ftpd/auth/ et supprimer les deux liens symboliques suivants :
rm 65unix rm 70pam
3. Opérations sur les utilisateurs virtuels
Pour toutes opérations sur les utilisateurs, il faut utiliser les commandes propres à Pure-FTPD. Comme nous allons créer un fichier qui sera une base de données des différents utilisateurs chaque opération, pour qu’elle soit prise en compte, devra finir par une reconstruction de la base via la commande :
pure-pw mkdb
a. Création d’un utilisateur
pure-pw useradd UTILISATEUR -u UTILISATEUR_SYSTEME_REFERENCE -g GROUPE_SYSTEME_REFERENCE -d /DOSSIER_ACCUEIL_FTP -N 10
Cette commande a pour but d’ajouter un utilisateur UTILISATEUR et de mapper ses droits sur l’utilisateur UTILISATEUR_SYSTEME_REFERENCE (uid) du groupe GROUPE_SYSTEME_REFERENCE (GID). Cela permettra lors d’upload ou de modification de prendre les droits de l’utilisateur système précédent.
L’option –d /DOSSIER_ACCUEIL_FTP précise le dossier dans lequel l’utilisateur sera emprisonné (chrooter par l’option –d)
L’option –N 10 permet de lui assigner 10Mbits d’espace disque maximum. Vous pouvez aussi assigner 10000:10 ce qui signifie que vous le restreignez à 10000 fichiers ou 10Mbits.
Les différentes options possibles lors de la création d’un utilisateur sont :
| Option | Effet |
| -u | Précise l’UID de l’utilisateur virtuel (généralement celui de ftpuser). |
| -g | Précise le GID de l’utilisateur virtuel (généralement celui de ftpgroup). |
| -D | Précise le répertoire personnel de l’utilisateur. |
| -d | Précise le répertoire personnel de l’utilisateur (celui-ci sera chrooter dans ce répertoire). |
| -T | Précise le débit maximum (upload) de l’utilisateur. |
| -t | Précise le débit maximum (download) de l’utilisateur. |
| -y | Précise le nombre maximum de sessions simultanées que l’utilisateur peut ouvrir (threads). |
| -z | Précise les heures de connexion de l’utilisateur (Exemple -z 1400-1800 entre 14h et 18h). |
| -Q | Précise le ratio de l’utilisateur (download). |
| -q | Précise le ratio de l’utilisateur (upload). |
Pour finaliser la création et utiliser vos nouveaux utilisateurs n’oublier pas de faire la commande :
pure-pw mkdb
b. Modifier le mot de passe d’un utilisateur
La commande permettant de modifier le mot de passe d’un utilisateur est :
pure-pw passwd UTILISATEUR -m
L’option –m vous permet de vous affranchir de la reconstruction de la base.
c. Modifier les options d’un utilisateur
La commande est similaire à celle de modification d’un mot de passe :
pure-pw usermod user1 -y 2 -m
L’option –m signifie la même chose que précédemment.
d. Supprimer un utilisateur
La commande est similaire à celle de modification d’un mot de passe :
pure-pw userdel UTILISATEUR –m
L’option –m signifie la même chose que précédemment.
e. Lister les informations d’un utilisateur
Pour obtenir, les informations d’un utilisateur spécifique il suffit d’exécuter la commande :
pure-pw UTILISATEUR
Vous obtiendrez alors une série d’informations :
# pure-pw show user1 Login : user1 Password : $1$zL.EEBKZ$MbyJUyqrAa3sT719arBbB0 UID : 1001 (ftpuser) GID : 101 (ftpgroup) Directory : /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 : 2
f. Afficher la liste complète des utilisateurs
La commande suivante permet de lister l’ensemble de vos comptes utilisateurs virtuels :
pure-pw list
4. Administration du serveur
a. Autoriser les utilisateurs virtuels à se connecter au serveur
Il faut pour se faire, après avoir construit la première base de données utilisateurs (généré par la commande pure-pw mkdb), faire la commande suivante:
ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/50PureDB
b. Connaître les utilisateurs connectés
Il faut utiliser la commande :
pure-ftpwho
qui permet d’obtenir les informations suivantes :
+------+---------+-------+------+-------------------------------------------+ | PID | login |For/Spd| What | File/IP | +------+---------+-------+------+-------------------------------------------+ | 6105 | user1 | 00:00 | DL | File.avi | | '' | '' | 170K/s| '' | -> 62.39.155.70 | +------+---------+-------+------+-------------------------------------------+
Vous pouvez aussi exporter l’utilisation du serveur sous un fichier graphique MRTG :
pure-mrtg info
Ce tutoriel s’est largement inspiré des sites suivants:
http://didier.misson.net/blog/2009/09/09/installation-de-pureftpd/
http://www.labo-linux.org/cours/module-2/chapitre-02-pureftpd/
N’hésitez pas àle commenter ou à poser me poser des questions…












Commentaires
Merci Romain pour le lien vers mon installation PureFTP.

Tu as été plus loin que moi dans la recherche il me semble. Ta présentation est clair et simple (les miennes sont parfois trop longues).
De rien mais ton tuto m’a permis d’y voir plus clair. Il contient une base solide et m’a permis d’y voir plus clair rapidement dans l’administration de pure-ftpd. Il est donc normal que je cite ton travail