-==<XTBA>==-

Windows ne demande jamais à Chuck Norris d'envoyer le rapport d'erreur. Bill Gates vient le chercher lui même, avec toutes ses excuses.
Nous sommes le sam. 20 avr. 2024, 00:53

Heures au format UTC+03:00




Poster un nouveau sujet  Répondre au sujet  [ 1 message ] 
Auteur Message
MessagePosté : dim. 30 août 2009, 05:11 
Hors ligne
Administrateur
Administrateur
Avatar de l’utilisateur

Enregistré le : ven. 3 oct. 2008, 20:21
Messages : 17419
Pseudo Boinc : [XTBA>TSA] IvanleFou
Localisation : Grenoble (38)
Installer en configurer PureFTPd avec gestion des utilisateurs par base de données

Description Blog // affichée sur la liste tutos:
Voici un petit tutoriel pour installer et configurer pure-ftp avec gestion des utilisateurs par base de données. Cette méthode a l'avantage de pourvoir utiliser des limites en terme de bande passante et de quotas utilisés.


Voici un petit tutoriel pour installer et configurer pure-ftp avec gestion des utilisateurs par base de données. Cette méthode a l'avantage de pourvoir utiliser des limites en terme de bande passante et de quotas utilisés.

source

Installer MySQL et phpMyAdmin:
Code :
apt-get install mysql-server mysql-client phpmyadmin


Installer PureFTPd avec le support de MySQL
Code :
apt-get install pure-ftpd-mysql


Code :
Run pure-ftpd from inetd or as a standalone server? <-- standalone
Do you want pure-ftpwho to be installed setuid root? <-- No


On crée le group "ftpgroup" et le user "ftpuser"
Code :
groupadd -g 2001 ftpgroup
useradd -u 2001 -s /bin/false -d /bin/null -c "pureftpd user" -g ftpgroup ftpuser


Création de la base de données dans MySQL pour PureFTPd:
Connectez vous à l'interface phpMyAdmin et cliquez sur l'icône "SQL" en haut a gauche. Dans la fenêtre entrez les lignes suivantes pour créer la base de données et les utilisateurs que PureFTPd utilisera pour consulter la base de données. Remplacez "ftpdpass" par le mot de passe appartenant au user 'pureftpd'.
Code :
CREATE DATABASE pureftpd;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO 'pureftpd'@'localhost' IDENTIFIED BY 'ftpdpass';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO 'pureftpd'@'localhost.localdomain' IDENTIFIED BY 'ftpdpass';
FLUSH PRIVILEGES;


Ensuite on crée la table des utilisateurs du FTP. Toujours dans la fenetre "SQL":
Code :
USE pureftpd;

CREATE TABLE ftpd (
User varchar(16) NOT NULL default '',
status enum('0','1') NOT NULL default '0',
Password varchar(64) NOT NULL default '',
Uid varchar(11) NOT NULL default '-1',
Gid varchar(11) NOT NULL default '-1',
Dir varchar(128) NOT NULL default '',
ULBandwidth smallint(5) NOT NULL default '0',
DLBandwidth smallint(5) NOT NULL default '0',
comment tinytext NOT NULL,
ipaccess varchar(15) NOT NULL default '*',
QuotaSize smallint(5) NOT NULL default '0',
QuotaFiles int(11) NOT NULL default 0,
PRIMARY KEY (User),
UNIQUE KEY User (User)
) TYPE=MyISAM;


Configurer PureFTPd:
Pour cela éditez le fichier de configuration mysql.conf
Code :
sudo nano /etc/pure-ftpd/db/mysql.conf


et modifiez le pour qu'il ressemble a ca:
Code :
MYSQLSocket      /var/run/mysqld/mysqld.sock
#MYSQLServer     localhost
#MYSQLPort       3306
MYSQLUser       pureftpd
MYSQLPassword   ftpdpass
MYSQLDatabase   pureftpd
#MYSQLCrypt md5, cleartext, crypt() or password() - md5 is VERY RECOMMENDABLE uppon cleartext
MYSQLCrypt      md5
MYSQLGetPW      SELECT Password FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MYSQLGetUID     SELECT Uid FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MYSQLGetGID     SELECT Gid FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MYSQLGetDir     SELECT Dir FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MySQLGetBandwidthUL SELECT ULBandwidth FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MySQLGetBandwidthDL SELECT DLBandwidth FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MySQLGetQTASZ   SELECT QuotaSize FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MySQLGetQTAFS   SELECT QuotaFiles FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
Pensez à remplacer le "ftpdpass" par le mot de passe que vous avez donner lors de la création des utiulisateurs de la base de données dans l'étape précédente.

Créez un fichier ChrootEveryone afin d'empêcher les utilisateurs remonter dans les répertoires qui sont au dessus de leur home:
Code :
sudo nano /etc/pure-ftpd/conf/ChrootEveryone
et ecrivez simplement "yes" à l'interieur. Sauvez et quittez.

Enfin redémarrez PureFTPd:
Code :
sudo /etc/init.d/pure-ftpd-mysql restart



Maintenant il suffit de rajouter dans la table les utilisateurs qui pourront se connecter a votre FTP. Pour cela utilisez phpMyAdmin pour afficher le contenu de la table, qui est vide pour le moment.

Description des champs de la table:
User: le nom de l'utilisateur
status: 0 ou 1. 0 signifie que le compte est désactivé, l'utilisateur ne pourra donc pas se logger.
Password: mot de passe. prenez garde d'utiliser la fonction MD5 de MySQL pour encoder le mot de passe au format MD5.as an MD5 string:
Image
UID: Le userid du FTP que vous avez créé plus haut (par exemple 2001). Cela peut etre le userid d'un autre utilisateur suivant les droits que vous voulez donner aux fichiers.
GID: Pareil que précédemment mais pour le group.
Dir: Le répertoire home ou arrivera l'utilisateur lorsqu'il se connecte (e.g. /mnt/ftp).
ULBandwidth: La limite de bande passante en envoi dont l'utilisateur dispose en Ko/sec. 0 signifie illimité.
DLBandwidth: La limite de bande passante en réception dont l'utilisateur dispose en Ko/sec. 0 signifie illimité.
comment: Un commentaire qui ne sera visible que par vous, pour vous aider a reconnaitre le compte par exemple.
ipaccess: Les IPs autorisées à se connecter a ce compte. * signifie n'importe qu'elle IP.
QuotaSize: L'espace en Mo que l'utilisateur peut occuper sur le FTP. 0 signifie illimité.
QuotaFiles: Le nombre de fichiers que l'utilisateur a le droit de mettre sur le FTP. 0 signifie illimité.

_________________
Image
V8 farmer [benou_miam.gif]


Haut
   
Afficher les messages postés depuis :  Trier par  
Poster un nouveau sujet  Répondre au sujet  [ 1 message ] 

Heures au format UTC+03:00


Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas modifier vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Rechercher :
Aller à :  
cron
Développé par phpBB® Forum Software © phpBB Limited
Traduit par phpBB-fr.com