Installer et configurer PureFTPD avec des utilisateurs virtuels et gestion de quotas

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.

Vous avez une idée ? Trouvez gratuitement des développeurs sur Codeur.com !

Recevez des devis (gratuit)

1.   Installation Pure-ftpd

L’installation de pure-ftpd se fait par la commande suivante:

[bash]apt-get install pure-ftpd[/bash]

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:

[bash] # STANDALONE_OR_INETD
# valid values are « standalone » and « inetd ».
# Any change here overrides the setting in debconf.
STANDALONE_OR_INETD=standalone
[/bash]

Il faut alors arrêter inetd et le relancer :

[bash] /etc/init.d/openbsd-inetd stop
/etc/init.d/openbsd-inetd start
[/bash]

On peut maintenant gérer l’arrêt et le démarrage du serveur avec les commandes suivante :

[bash] /etc/init.d/pure-ftpd stop
/etc/init.d/pure-ftpd start
[/bash]

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 :

[bash] /etc/pure-ftpd/conf/MinUID
[/bash]

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 :

[bash] root:x:0:0:root:/root:/bin/bash
[/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 :

[bash] rm 65unix
rm 70pam
[/bash]

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 :
[bash] pure-pw mkdb
[/bash]

a.     Création d’un utilisateur

[bash] pure-pw useradd UTILISATEUR -u UTILISATEUR_SYSTEME_REFERENCE -g GROUPE_SYSTEME_REFERENCE -d /DOSSIER_ACCUEIL_FTP  -N 10
[/bash] 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 :
[bash] pure-pw mkdb
[/bash]

b.    Modifier le  mot de passe d’un utilisateur

La commande permettant de modifier le mot de passe d’un utilisateur est :
[bash] pure-pw passwd UTILISATEUR -m
[/bash] 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 :
[bash] pure-pw usermod user1 -y 2 -m
[/bash] 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 :
[bash] pure-pw userdel UTILISATEUR –m
[/bash] 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 :

[bash] pure-pw UTILISATEUR
[/bash]

Vous obtiendrez alors une série d’informations :

[bash]# 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
[/bash]

f.     Afficher la liste complète des utilisateurs

La commande suivante permet de lister l’ensemble de vos comptes utilisateurs virtuels :

[bash] pure-pw list
[/bash]

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:

[bash]

ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/50PureDB

[/bash]

b.    Connaître les utilisateurs connectés

Il faut utiliser la commande :
[bash] pure-ftpwho
[/bash] qui permet d’obtenir les informations suivantes :
[bash]

+——+———+——-+——+——————————————-+
| PID  |  login  |For/Spd| What |                 File/IP                   |
+——+———+——-+——+——————————————-+
| 6105 | user1   | 00:00 |  DL  | File.avi                                  |
|   »  |     »   | 170K/s|   »  | ->                           62.39.155.70 |
+——+———+——-+——+——————————————-+
[/bash] Vous pouvez aussi exporter l’utilisation du serveur sous un fichier graphique MRTG :

[bash] pure-mrtg info
[/bash]

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…

L'équipe de WebActus.net vous propose tous les jours des articles sur l'univers des startups, du e-commerce et du growth hacking.
  • 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).
    😉

    • Romain

      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 😀

Rejoignez la communauté Webactus

Recevez régulièrement les meilleures actus et ressources

Pas de spam, vous pouvez vous désabonner à tous moment.