www.RiffZone.net
code.RiffZone.net
login.RiffZone.net

Retour au Sommaire

Un serveur PureFTPd-MySQL sous Linux

Un serveur FTP, on en a encore besoin assez couramment, que ce soit pour WordPress ou bien sitecopy. Nous allons donc voir les étapes nécessaires à l'installation d'un serveur PureFTPd, avec définition des comptes dans une base MySQL, pour ne pas avoir à les créer au niveau système.

L'installtion du moteur proprement dit est triviale:

apt-get install pure-ftpd-mysql

Puis on crée une base MySQL (appelons-la "pureftpd"), je vous laisse voir si vous préférez faire ça sous PHPMyAdmin ou en ligne de commande, chacun sa dope. Dans cette nouvelle base, créons la table "users" (là encore, utilisez votre méthode favorite):

CREATE TABLE `users` ( `Id` int(11) NOT NULL auto_increment, `User` varchar(32) NOT NULL default '', `Password` varchar(64) NOT NULL default '', `Uid` int(3) NOT NULL default '33', `Gid` int(3) NOT NULL default '33', `Dir` varchar(255) NOT NULL default '', `QuotaSize` int(4) NOT NULL default '250', `ULBandwidth` int(2) NOT NULL default '10', `DLBandwidth` int(2) NOT NULL default '10', PRIMARY KEY (`ID`), UNIQUE KEY `User` (`User`) );

On note la valeur "33" par défaut pour Uid et Gid, correspondant à l'utilisateur "www-data" et utilisée pour les nouveaux fichiers.

Modifions maintenant quelques options de PureFTPd, en renseignant quelques fichiers dans /etc/pure-ftpd/conf.

Pour interdire les connexions anonymes:

echo "yes" > /etc/pure-ftpd/conf/NoAnonymous

Pour enfermer chaque utilisateur dans son répertoire racine:

echo "yes" > /etc/pure-ftpd/conf/ChrootEveryone

Pour autoriser les Uids à partir de 33 (la valeur par défaut est 1000):

echo "33" > /etc/pure-ftpd/conf/MinUID

On configure les paramètres MySQL de PureFTPd en définissant comme suit un fichier "/etc/pure-ftpd/db/pure-ftpd-mysql.conf":

#Parametres de connexion a la base de donnee MYSQLServer 127.0.0.1 MYSQLUser <MySQL User> MYSQLPassword <MySQL Password> MYSQLDatabase pureftpd #Parametres supplementaires MYSQLPort 3306 MYSQLSocket /var/lib/mysql/mysql.sock # Methode de cryptage du mot de passe # Parametres possible : 'crypt', 'md5' ou 'cleartext' pour afficher le mot de passe en clair. MYSQLCrypt cleartext # Requetes SQL permettant a Pure-FTPd de trouver les donnees dans la base MYSQLGetPW SELECT Password FROM users WHERE User="\L" MYSQLGetUID SELECT Uid FROM users WHERE User="\L" MYSQLGetGID SELECT Gid FROM users WHERE User="\L" MYSQLGetDir SELECT Dir FROM users WHERE User="\L" MySQLGetQTASZ SELECT QuotaSize FROM users WHERE User="\L" MySQLGetRatioUL SELECT ULRatio FROM users WHERE User="\L" MySQLGetRatioDL SELECT DLRatio FROM users WHERE User="\L" MySQLGetBandwidthUL SELECT ULBandwidth FROM users WHERE User="\L" MySQLGetBandwidthDL SELECT DLBandwidth FROM users WHERE User="\L"

Puis on le déclare via la commande suivante:

echo "/etc/pure-ftpd/db/pure-ftpd-mysql.conf" > /etc/pure-ftpd/conf/MySQLConfigFile

On valide enfin ces différentes configurations en redémarrant le service:

service pure-ftpd-mysql restart

Voilà, c'est terminé, s'il vous en faut plus vous trouverez certainement votre bonheur dans la doc de PureFTPd: https://www.pureftpd.org/project/pure-ftpd/doc