Centos 7 – Installer VSFTPD avec authentification MySQL

janvier 2, 2017 4:44 Publié par Laissez vos commentaires

Bonjour à tous

Dans cet article nous allons configurer l’authentification des utilisateurs FTP à partir d’une base de donnée MYSQL. Si vous avez suivi l’article
Centos – Installer un serveur FTP sftpd, vous avez déjà un serveur vsftpd opérationnel.

Sous centos il faut commencer par télécharger la librairie pam_mysql, non installable via yum :

https://github.com/anthcourtney/pam-mysql/blob/master/pam_mysql-0.7-0.16.rc1.el7.centos.x86_64.rpm

Installation de librairie :

rpm -Uvh pam_mysql-0.7-0.16.rc1.el7.centos.x86_64.rpm

Vérification :

[root@tuto tmp]# ls -al /lib64/security/pam_m*
-rwxr-xr-x. 1 root root 11200 18 août   2015 /lib64/security/pam_mail.so
-rwxr-xr-x. 1 root root 11176 18 août   2015 /lib64/security/pam_mkhomedir.so
-rwxr-xr-x. 1 root root  7080 18 août   2015 /lib64/security/pam_motd.so
-rwxr-xr-x  1 root root 46616  8 janv.  2015 /lib64/security/pam_mysql.so

Création de la table utilisateurs :

CREATE TABLE  `vsftpd`.`users` (
     `id_user` int(11) NOT NULL auto_increment,
     `login` varchar(50) NOT NULL,
     `password` varchar(100) NOT NULL,
     `active` int(11) NOT NULL,
     PRIMARY KEY  (`id_user`)
     ) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;

Insertion de l’utilisateur virtuel user1 dans la base :

INSERT INTO users (login, password, active) VALUES('user1', md5('test'),1
Query OK, 1 row affected (0.00 sec)

Configuration de PAM :

nano /etc/pam.d/vsftpd

#%PAM-1.0
auth sufficient pam_unix.so
account sufficient pam_unix.so
auth required /lib64/security/pam_mysql.so verbose=0 user=dbuser passwd=monmotdepasse host=127.0.0.1 db=vsftpd table=users usercolumn=login passwdcolumn=password crypt=3 where=users.active=1 
account required /lib64/security/pam_mysql.so verbose=0 user=dbuser passwd=monmotdepasse host=127.0.0.1 db=vsftpd table=users usercolumn=login passwdcolumn=password crypt=3 where=users.active=1 

Exemple de fichier vsftpd.conf

listen=YES
listen_port=21

# anonymous user
#####################
anonymous_enable=NO
anon_upload_enable=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES

#
#
# general user
#####################
local_enable=YES
local_umask= 022
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES

# virtual user
#####################
guest_enable=YES
guest_username=vsftpd
nopriv_user=vsftpd
virtual_use_local_privs=YES
user_sub_token=$USER
local_root=/home//ftp/$USER
#user_config_dir=/etc/vsftpd/vsftpd_conf_users  #change le dossier root pour des utilisateurs specifiques
hide_ids=YES

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

########## LOGS ###################
dual_log_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.xfer.log
log_ftp_protocol=YES
vsftpd_log_file=/var/log/vsftpd.log

test avec client ftp linux

yum install ftp
ftp localhost

Identifiez vous avec l’utilisateur créé précédemment en base de donnée et normalement vous devriez atterrir dans votre dossier racine /home/ftp/user1

A++

Classés dans :

Cet article a été écrit par admin

Laisser un commentaire