Pure-FTPd : systèmes d’authentifcation multiples

Backend MySQL, PureDB et PAM

mardi 3 mai 2011, par Minimalteck

Dans quel contexte pourrait-on avoir ce type de besoin ?

L’exemple ici est un serveur qui abrite un ISPConfig3, soit une installation de PureFTPd avec le support Mysql.

L’idée est d’ajouter également le support des utilisateurs virtuels. Pour pouvoir gérés quelques utilisateurs FTP non gérés sous ISPConfig donc dans Mysql.

 Installation d’un répertoire FTP avec utilisateur virtuel sous PureFTPd non géré par ISPConfig

- Création du répertoire d’accueil du premier compte ftp virtuel :

root@machine:~# mkdir -p /var/www/standalone/www.website.com

- Création de l’utilisateur et du groupe système support des comptes ftp virtuels

root@machine:~# groupadd ftpgroup

- Ajustement des droits sur le répertoire d’accueil du premier compte ftp virtuel :

root@machine:~# useradd -g ftpgroup -d /dev/null -s /bin/false ftpuser
root@machine:~# chown ftpuser:ftpgroup /var/www/standalone/www.website.com


 Support des utilisateurs virtuels dans PureFTPd

root@machine:# cd /etc/pure-ftpd

- Ajout de notre premier utilisateur [1] (Création du fichier utilisateurs "/etc/pure-ftpd/pureftpd.passwd" ) :

root@machine:/etc/pure-ftpd# pure-pw useradd wwwwebsitecom -u ftpuser -d /var/www/standalone/www.website.com

Le mot de passe est alors demandé.

- Création de base locale PureDB "/etc/pure-ftpd/pureftpd.pdb" :

root@machine:/etc/pure-ftpd# pure-pw mkdb

- Ajout de la configuration PureDB

root@machine:/etc/pure-ftpd# echo /etc/pure-ftpd/pureftpd.pdb > conf/PureDB

- Ajout du support d’authenfication puredb

root@machine:/etc/pure-ftpd# cd auth
root@machine:/etc/pure-ftpd/auth# ln -s ../conf/PureDB 50pure
root@machine:/etc/pure-ftpd/auth# ls
30mysql  50pure  65unix  70pam

Ici on remarquera l’ordre de prise en compte des système d’authenfication :

  1. mysql
  2. puredb
  3. unix
  4. pam

- Rédemarrage du service pour la prise en compte de notre nouvelle configuration :

root@machine:/etc/pure-ftpd/auth# service pure-ftpd-mysql restart
Restarting ftp server: Running: /usr/sbin/pure-ftpd-mysql-virtualchroot -l mysql:/etc/pure-ftpd/db/mysql.conf -l puredb:/etc/pure-ftpd/pureftpd.pdb -l pam -b -O clf:/var/log/pure-ftpd/transfer.log -8 UTF-8 -A -u 1000 -D -E -H -B

Ici on voit que notre serveur PureFTPd est lancé avec les supports d’authentification mysql, puredb et pam

Notes

[1] La gestion des utilisateurs virtuels via PureDB s’effectue grâce à l’utilitaire "pure-pw", plus de détails "pure-pw -h" et "man pure-pw".
D’expérience, il est important de ne pas oublier l’option [-m] de la commande pure-pw lorsque l’on modifie ou supprime un utilisateur… ou refaite un "pure-pw mkdb" systématique après pour reconstruire la base pureftpd.pdb

SPIP | squelette | | Plan du site | Suivre la vie du site RSS 2.0