#1 Le 16/06/2020, à 16:56
- Oggy
VSFTPD avec MariaDB - pam_mysql - SELECT returned no result
Bonjour,
J'essaye de configurer vsftpd avec des utilisateurs virtuels qui seront authentifiés via une bdd mysql.
J'ai créé une base contenant une table avec mes utilisateurs et leur mot de passe comme ceci :
CREATE DATABASE vsftpd;
GRANT ALL ON vsftpd.* TO "vsftpd"@"localhost" IDENTIFIED BY 'mot_de_passe_bdd_vsftpd';
USE vsftpd;
CREATE TABLE `utilisateurs` (
`username` varchar(64) NOT NULL default '',
`password` varchar(64) NOT NULL default '',
`quota` int(10) NOT NULL default '0',
PRIMARY KEY (username)
) ENGINE=MyISAM COMMENT='Utilisateurs Virtuels pour le ftp';
INSERT INTO `utilisateurs` (`username`,`password`) VALUES ("user1", ENCRYPT("mdp_user1"));
INSERT INTO `utilisateurs` (`username`,`password`) VALUES ("user2", ENCRYPT("mdp_user2"));
QUIT;
J'ai bien modifié le fichier /etc/pam.d/vsftpd pour ajouter pam_mysql :
auth required pam_mysql.so user=vsftpd passwd=mot_de_passe_bdd_vsftpd host=127.0.0.1 db=vsftpd table=utilisateurs usercolumn=username passwdcolumn=password crypt=1
account required pam_mysql.so user=vsftpd passwd=mot_de_passe_bdd_vsftpd host=127.0.0.1 db=vsftpd table=utilisateurs usercolumn=username passwdcolumn=password crypt=1
Ma configuration de vsftpd.conf :
# ftp server
#####################
listen=YES
# port par défaut du FTP
listen_port=21
# nom du service d'authentification
pam_service_name=vsftpd
# pour le mode passif (firewall)
pasv_min_port=30000
pasv_max_port=30999
#
#
# anonymous user
#####################
anonymous_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
#
#
# general user
#####################
local_enable=YES
local_umask= 022
write_enable=YES
chroot_local_user=YES
# pour user admin (déconseillé)
# chroot_list_enable=YES
#
#
# virtual user
#####################
guest_enable=YES
guest_username=vsftpd
nopriv_user=vsftpd
virtual_use_local_privs=YES
user_sub_token=$USER
local_root=/srv/ftp/$USER/
hide_ids=YES
Malgré tout ça quand j'essaye de m'authentifier par exemple avec user1 et mdp_user1 je me retrouve rejeté :
Statut : Serveur non sécurisé, celui-ci ne supporte pas FTP sur TLS.
Commande : USER user1
Réponse : 331 Please specify the password.
Commande : PASS ************
Réponse : 530 Login incorrect.
Voici ce que me donne la commande systemctl status vsftpd :
Jun 16 16:14:51 raspberrypi vsftpd[17295]: pam_mysql - SELECT returned no result.
Jun 16 16:14:51 raspberrypi vsftpd[17295]: pam_mysql - SELECT returned no result.
Jun 16 16:14:51 raspberrypi vsftpd[17295]: pam_unix(vsftpd:auth): check pass; user unknown
Jun 16 16:14:51 raspberrypi vsftpd[17295]: pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp ruser=anonymous rhost=xx.xx.xx.xx
Jun 16 16:14:54 raspberrypi vsftpd[17299]: pam_mysql - SELECT returned no result.
Jun 16 16:14:54 raspberrypi vsftpd[17299]: pam_mysql - SELECT returned no result.
Jun 16 16:14:54 raspberrypi vsftpd[17299]: pam_unix(vsftpd:auth): check pass; user unknown
Jun 16 16:14:54 raspberrypi vsftpd[17299]: pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp ruser=anonymous rhost=xx.xx.xx.xx
Jun 16 16:15:33 raspberrypi vsftpd[17304]: pam_unix(vsftpd:auth): check pass; user unknown
Jun 16 16:15:33 raspberrypi vsftpd[17304]: pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp ruser=usertest rhost=xx.xx.xx.xx
Je remarque l'erreur "pam_mysql - SELECT returned no result." mais je ne vois pas pourquoi. Je galère depuis le début d'aprèm dessus, auriez-vous une idée ?
Dernière modification par Oggy (Le 16/06/2020, à 16:58)
Hors ligne