installation
apt-get install pure-ftpd-mysql
Configuration MySQL
-créer un nouvel utilisateur MySQL avec tous les privilèges sur une table pureftpd.
-modifier le fichier de configuration /etc/pure-ftpd/db/mysql.conf pour spécifier nos accès.
# Nom de l'utilisateur MySQL à utiliser MYSQLUser pureftpd # Password de cet utilisateur MYSQLPassword VOTRE_PASS_PUREFTPD_MYSQL # Nom de la base de données à utiliser MYSQLDatabase pureftpd # Important: Mode de cryptage des mots de passe, choisissez MD5 au lieu de cleartext ! MYSQLCrypt md5 # Requêtes MySQL 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"
-creation de la table dans mysql
CREATE TABLE users ( User varchar(16) NOT NULL default '', Password varchar(64) NOT NULL default '', Uid varchar(11) NOT NULL default '', Gid varchar(11) NOT NULL default '', Dir varchar(128) NOT NULL default '', PRIMARY KEY (User) );
-insérez un nouvel utilisateur virtuel dans la table users.
INSERT INTO `users` ( `User` , `Password` , `Uid` , `Gid` , `Dir` ) VALUES ('web', MD5( 'PASS_FTP_USER' ) , '2001', '2001', '/var/www/');
Options de configuration
Pour que chaque utilisateur puisse uniquement accéder au dossier qui lui est attribué, nous allons le chrooter.
vim /etc/pure-ftpd/conf/ChrootEveryone
Et entrez simplement "yes", sauvegardez et quittez.
Dans le cas où le répertoire associé à l'utilisateur virtuel n'existe pas, au lieu de provoquer une erreur, nous allons demander à pure-ftpd de le créer:
vim /etc/pure-ftpd/conf/CreateHomeDir
Même chose, un simple "yes" dans le fichier suffit.
Configuration système
Il faut que nos utilisateurs virtuels utilisent un utilisateur système spécifique pour faciliter la sécurité.
Nous allons donc créer un groupe ftpgroup et un utilisateur système ftpuser:
groupadd -g 2001 ftpgroup useradd -u 2001 -s /bin/false -d /bin/null -c "pureftpd user" -g ftpgroup ftpuser
Ainsi nous spécifierons 2001 pour le GID et UID lors de la création d'utilisateurs virtuels.
Lancement du serveur
/usr/sbin/pure-ftpd-mysql -4 -A -B -c 50 -C 4 -D -E -H -I 15 -j -k 90 -f ftpuser -L 7500:8 -m 4 -s -u 500 -U 033:012 -z -l mysql:/etc/pure-ftpd/db/mysql.conf
en cas d'erreur 530
vim /usr/sbin/pure-ftpd-wrapper
modifier les lignes:
my $daemon = '/usr/sbin/pure-ftpd'; my @capabilities = @ARGV; if ($ARGV[0]) { $daemon = "$daemon-$ARGV[0]"; }
par
my $daemon = '/usr/sbin/pure-ftpd-mysql'; my @capabilities = @ARGV; #if ($ARGV[0]) { # $daemon = "$daemon-$ARGV[0]"; #}
killer le PID du daemon pure-ftpd (ne pas utiliser /etc/init.d/pure-ftpd-mysql restart) puis :
/usr/sbin/pure-ftpd-mysql -4 -A -B -c 50 -C 4 -D -E -H -I 15 -j -k 90 -f ftpuser -L 7500:8 -m 4 -s -u 500 -U 033:012 -z -l mysql:/etc/pure- ftpd/db/mysql.conf
Sources pour aller plus loin :