1 votes

Pure-ftpd avec MySQL - Crypt() ne me connecte pas avec des mots de passe hachés

J'utilise pure-ftpd avec mysql pour authentifier les utilisateurs.

Voici mon mysql.conf

MYSQLServer     localhost
MYSQLPort       3306
MYSQLSocket     /var/run/mysqld/mysqld.sock
MYSQLUser       user
MYSQLPassword   pwd
MYSQLDatabase   my_db
MYSQLCrypt      crypt()
MYSQLGetPW      SELECT password FROM ftp_users WHERE login="\L"
MYSQLGetUID     SELECT u_id FROM ftp_users WHERE login="\L"
MYSQLGetGID     SELECT g_id FROM ftp_users WHERE login="\L"
MYSQLGetDir     SELECT dir FROM ftp_users WHERE login="\L"
MySQLGetQTAFS   SELECT quota_files FROM ftp_users WHERE login="\L"
MySQLGetQTASZ  SELECT quota_size FROM ftp_users WHERE login="\L"
MySQLGetRatioUL SELECT ul_ratio FROM ftp_users WHERE login="\L"
MySQLGetRatioDL SELECT dl_ratio FROM ftp_users WHERE login="\L"
MySQLGetBandwidthUL SELECT ul_bandwidth FROM ftp_users WHERE login="\L"
MySQLGetBandwidthDL SELECT dl_bandwidth FROM ftp_users WHERE login="\L"

J'ai ensuite essayé de redémarrer pure-ftpd-mysql et pure-ftpd

Ma table contient un champ avec le mot de passe (pwd) sous la forme suivante

password    varchar(255)

Lorsque j'insère un utilisateur avec un pwd en clair, je peux me connecter sans problème avec le login et le mot de passe. Lorsque j'insère un hash avec 'lol' tel que SHA512 ou un hash BCrypt, je ne peux pas me connecter avec le pwd 'lol'. Je ne peux pas me connecter avec le pwd 'lol'.

BCrypt $2a$06$JrvxpMAvi6MnRSIvZQMMxOffIDLtEP7lrKNe0k0CTsK51v4zujfpS
SHA512 3DD28C5A23F780659D83DD99981E2DCB82BD4C4BDC8D97A7DA50AE84C7A7229A6DC0AE8AE4748640A4CC07CCC2D55DBDC023A99B3EF72BC6CE49E30B84253DAE

Cependant, si je colle le hachage, il se connecte avec succès, car je suppose qu'il le prend comme une valeur en clair.

J'ai essayé de changer le fichier mysql.conf en

MYSQLCrypt      crypt

Mais ceci rompt complètement avec la réalité. Il y a beaucoup de sites qui disent d'utiliser crypt, mais les commentaires dans mon fichier de configuration listent crypt() comme l'une des options.

J'ai lu de nombreux messages et forums, mais la chose la plus proche que j'ai trouvée est celle-ci, qui ne fonctionne pas du tout.

https://serverfault.com/a/630806/302696

Voici ce que pure-ftpd commence par faire

Starting ftp server: Running: /usr/sbin/pure-ftpd-mysql -l mysql:/etc/pure-ftpd/db/mysql.conf -l puredb:/etc/pure-ftpd/pureftpd.pdb -l puredb:/etc/pure-ftpd/pureftpd.pdb -E -F /etc/pure-ftpd/fortunes.txt -j -H -J ALL:!aNULL:!SSLv3 -u 1000 -8 UTF-8 -A -O clf:/var/log/pure-ftpd/transfer.log -B

En gros, il n'utilise pas le cryptage ou je ne l'utilise pas correctement. Je pensais qu'il pouvait gérer SHA512 nativement avec mysql mais ce n'est pas le cas. Les autres choses auxquelles je pense sont que j'ai besoin de code avec la configuration mais je ne vois pas pourquoi cela nécessiterait quoi que ce soit.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X