Pure-FTPd MySQL avec DEBIAN ETCH (4.0)

J'ai tester cela avec succès sous DEBIAN ETCH avec pure-ftpd-mysql.

#Installation
apt-get install-mysql

# Lecture de la doc
cd /usr/share/doc/pure-ftpd-common
gzip -d README.MySQL.gz
vim README.MySQL

# Configuration d'accès myqsl
vim /etc/pure-ftpd/db/mysql.conf

Création de la base de donnée et de la table avec la structure définie dans le fichier de doc. Ensuite ajout des utilisateurs dans cette table.

Puis lancement définitif en standalone après les erreurs rencontrées reportées par syslog :

  • Le serveur ne se lance pas. Dans le fichier /etc/default/pure-ftpd-common j'ai modifié la ligne STANDALONE_OR_INETD=inetd par STANDALONE_OR_INETD=standalone et du coup /etc/init.d/pure-ftpd-mysql start fonctionne !
  • [WARNING] Wrong SQL parameters : [SELECT Password FROM users WHERE User="www-data"]

La table n'était pas encore crée.

  • [WARNING] Can't login as [www-data]: account disabled

Côté client : 530 Sorry, but I can't trust you Il faut passer le /etc/pure-ftpd/conf/MinUID à une valeur au minimum égale à votre user web.

  • [INFO] www-data is now logged in

Ah quelle joie quand tout fonctionne !

D'autres infos sur les sites :

Il suffit de créer un fichier /etc/pure-ftpd/conf/DisplayDotFiles et d'y inscrire : "yes"

Identiquement, pour bloquer les utilisateurs dans leur home (chroot), rajouter le fichier /etc/pure-ftpd/conf/ChrootEveryone dont le contenu est "yes"

Pure-FTPd MySQL avec SUSE 10

J'ai tester cela avec succès sous SUSE 10 avec pure-ftpd.

Installez avec yast votre serveur FTP : pure-ftpd

5. Support de MySQL Le support de MySQL apporte la possibilité d'assurer l'authentification des utilisateurs via une base de donnée.

5.1. Prérequis

MySQL doit être installé afin d'activer cette fonctionnalité. Pure-FTPd nécessite également d'être compilé avec l'option --with-mysql.

5.2. Configuration de Pure-FTPd

vi pure-ftpd.conf
# MySQL configuration file (see README.MySQL)
# MySQLConfigFile               /etc/pure-ftpd/pureftpd-mysql.conf
MySQLConfigFile               /etc/pure-ftpd/pureftpd-mysql.conf
# If you want to enable PAM authentication, uncomment the following line
#PAMAuthentication             yes

# If you want simple Unix (/etc/passwd) authentication, uncomment this
# UnixAuthentication            yes

Nous allons créer un fichier de configuration afin d'y placer toutes les options pour le support de MySQL.

vi /etc/pure-ftpd/pureftpd-mysql.conf
MYSQLServer monserveurmysql.mondomaine.com
MYSQLPort 3306
#MYSQLSocket /tmp/mysql.sock
MYSQLUser root
MYSQLPassword rootpw
MYSQLDatabase pureftpd
MYSQLCrypt cleartext
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"

PureFTPd utilise des variables pour ses requêtes SQL, comme \L dans l'exemple: \L désigne le login de l'utilisateur. \I désigne l'adresse IP a laquelle le client se connecte. \P désigne le port auqel le client se connecte. \R désigne l'adresse IP du client. \D désigne l'adresse IPv4 du client au format décimal.

Il suffit maintenant de lancer Pure-FTPd avec l'option -l mysql:

/usr/sbin/pure-ftpd -l mysql:/etc/pure-ftpd/pureftpd-mysql.conf &

ou plus simplement

/etc/init.d/pure-ftpd restart

Notez qu'il est possible de mixer plusieurs méthodes d'authentification qui se compléteront les unes aux autres. 5.3. Strucures des tables MySQL

On commence par créer une base pureftpd (via phpmyadmin par exemple).

Ensuite on crée la table users:

CREATE TABLE users (
User varchar(16) NOT NULL default '',
Password varchar(64) NOT NULL default '',
Uid int(11) NOT NULL default '-1',
Gid int(11) NOT NULL default '-1',
Dir varchar(128) NOT NULL default '',
PRIMARY KEY (User)
);

Vous pouvez dès lors rajouter des utilisateurs dans la base et profiter de votre serveur FTP. N'oubliez pas de définir le Uid et Gid.

Ensuite pour connaître les utilisateurs définis sur votre serveur, utilisez la commande :

pure-ftpwho

Article réalisé selon l'explication de pure ftpd par supinfo surement lui même réalisé suivant how to forge : pure ftpd mysql