Pages : 1
#1 Le 26/01/2008, à 06:18
- jak0lantash
[RESOLU]VsFTPd, ProFTPd, Pure-FTPd et MD5 ???
Salut,
Je souhaiterai monter un serveur FTP en utilisant des utilisateurs virtuels stockés dans une BDD MySQL.
J'ai déjà essayé avec VsFTPd et cela m'est apparu impossible. En effet, je stocke les mots de passe en MD5, et VsFTPd via PAM ne reconnais pas ce cryptage.
J'ai systématiquement l'erreur :
non-crypt()ish MD5 hash is not supported in this build
Après maintes recherches et moult messages sur les forums, pas de résolution possible (si ce n'est recompilé une lib PAM en v0.7RC1 (ce qui m'est impossible sur une Dédibox, puisque je n'ai la main qu'en SSH à distance)
Du coup, j'ai abandonné VsFTPd, et suis passé à ProFTPd. Tout est installé, ça marche bien en password en clair. Mais là, la même surprise ! Impossible de gérer le MD5 des mots de passe !
On est apparement obligé de spécifier le code {md5} devant les mots de passe, En utlisant le mode OpenSSL... Ce qui ne me conviens pas lol ! En fait, j'utilise les mots de passe d'une architecture BDD (d'un site web). Encore une fois, ça semble mal parti.
Apparement, avec Pure-FTPd, cela est possible, en tout cas, a voir ce qu'ils disent là dessus...
Est ce que quelqu'un pourrait me confirmer que cela est bien possible et que Pure-FTPd vaut la peine d'être installé ?? Est-il au niveau des deux précédents ?
Merci d'avance pour vos réponses.
PS : Si quelqu'un a une combine pour gérer le MD5 avec VsFTPd ou ProFTPd, (même si ça metonnerai) merci de partager ! ;-)
Dernière modification par jak0lantash (Le 10/07/2008, à 00:35)
Hors ligne
#2 Le 26/01/2008, à 06:40
- jak0lantash
Re : [RESOLU]VsFTPd, ProFTPd, Pure-FTPd et MD5 ???
Serait-il éventuellement possible de modifier quelque chose dans ProFTPd pour surcharger la méthode d'authentification et spécifier une requete SQL spécifique, pour faire quelque chose du genre :
SELECT `Password`=MD5(passwordentry) FROM `Ftpuser`;
???
Che pas si vous aurez compris ce que je veux dire...
Hors ligne
#3 Le 26/01/2008, à 23:53
- jak0lantash
Re : [RESOLU]VsFTPd, ProFTPd, Pure-FTPd et MD5 ???
Personne ne sait quoi répondre ??
Hors ligne
#4 Le 09/03/2008, à 19:49
- MacLane45
Re : [RESOLU]VsFTPd, ProFTPd, Pure-FTPd et MD5 ???
Salut jak0lantash
Je suis confronté au même problème que toi; à savoir que mes utilisateurs peuvent se logger quand leur password est en clair dans la base MySQL avec le paramètre crypt=0 dans le fichier /etc/pam.d/vsftpd, et dès que je prends l'option crypt=3 (qui encrypte le mot de passe saisi en md5) impossible de se logger, on a droit a un joli "530 Login incorrect."
Je précise que mes mots de passes sont alors encryptés eux-aussi en MD5 par MYSQL via une requete :
INSERT INTO comptes_vsftpd (nom, mdp) VALUES('utilisateur1', MD5('motdepasse'));
Si tu as trouvé une solution je suis preneur en revanche je n'est essayé qu'avec VsftpD.
Dans la log /var/log/auth/.log je me retrouve avec :
pam_mysql - non-crypt()ish MD5 hash is not supported in this build.
Et a priori est ce que pourrait fonctionner avec la version 0.7RC1 ou pas ? Car j'ai essayé
de la compiler et je n'y arrive pas le ./configure ne trouve pas le répertoire MySQL headers ...
checking if /usr /usr/local /usr/mysql /opt/mysql is a mysql_config script... no
checking mysql_config availability in /usr/bin... no
checking mysqlclient availability in /usr/lib... no
checking mysqlclient availability in /usr/lib/mysql... no
checking mysql headers availability in /usr/include... no
checking mysql headers availability in /usr/include/mysql... no
checking mysql_config availability in /usr/local/bin... no
checking mysqlclient availability in /usr/local/lib... no
checking mysqlclient availability in /usr/local/lib/mysql... no
checking mysql headers availability in /usr/local/include... no
checking mysql headers availability in /usr/local/include/mysql... no
checking mysql_config availability in /usr/mysql/bin... no
checking mysqlclient availability in /usr/mysql/lib... no
checking mysqlclient availability in /usr/mysql/lib/mysql... no
checking mysql headers availability in /usr/mysql/include... no
checking mysql headers availability in /usr/mysql/include/mysql... no
checking mysql_config availability in /opt/mysql/bin... no
checking mysqlclient availability in /opt/mysql/lib... no
checking mysqlclient availability in /opt/mysql/lib/mysql... no
checking mysql headers availability in /opt/mysql/include... no
checking mysql headers availability in /opt/mysql/include/mysql... no
configure: error: Cannot locate mysql client library. Please check your mysql installation.
Si quelqu'un as une suggestion je suis preneur.
Dernière modification par MacLane45 (Le 09/03/2008, à 20:04)
if exist $probleme ;
then Googlise au moins une demie heure; plus une demie heure de doc Ubuntu;
else A lire absolument avant de poster !
fi
Hors ligne
#5 Le 10/03/2008, à 08:45
- jak0lantash
Re : [RESOLU]VsFTPd, ProFTPd, Pure-FTPd et MD5 ???
Salut, en fait, d'après ce que j'ai compris, le MD5 attendu par PAM n'est pas de la forme Hexadecimal mais base64_encoded.
http://forum.ubuntu-fr.org/viewtopic.php?id=190375
http://www.starbridge.org/support/viewtopic.php?f=2&t=223&start=0&st=0&sk=t&sd=a
Avec ça, je pense que tu devrais y arriver... ^^
Hors ligne
#6 Le 10/03/2008, à 13:09
- MacLane45
Re : [RESOLU]VsFTPd, ProFTPd, Pure-FTPd et MD5 ???
Je vais essayer ça dans l'après midi et je vous tiens au courant, en tout cas un grand merci à toi jak0lantash
Dernière modification par MacLane45 (Le 10/03/2008, à 13:09)
if exist $probleme ;
then Googlise au moins une demie heure; plus une demie heure de doc Ubuntu;
else A lire absolument avant de poster !
fi
Hors ligne
#7 Le 10/03/2008, à 15:08
- jak0lantash
Re : [RESOLU]VsFTPd, ProFTPd, Pure-FTPd et MD5 ???
Mais de rien ^^
Pour résumer, il faut bien distinguer :
- le MD5 Hexadecimal à 32 caractères (ex : ae2b1fca515949e5d54fb22b8ed95575)
- le MD5 base64_encoded (ex : risfylFZSeXVT7IrjtlVdQ==)
- le Salted MD5 (ex : $1$salt$ridN8if1KjTmnlrjgjmBf/)
Hors ligne
#8 Le 11/03/2008, à 14:42
- MacLane45
Re : [RESOLU]VsFTPd, ProFTPd, Pure-FTPd et MD5 ???
Salut jak0lantash
Je reviens vers toi pour que éclairer ma lanterne car depuis hier je galère un peu à vrai dire. J'ai bien lu les 2 pages que tu cites ci dessus (et même relu et rerelu pour être sûr de pas avoir loupé quelque chose) mais sans grand succès pour le moment.
J'ai compris que le cryptage utilisé par pam_mysql n'était pas tout à fait le même que celui utilisé par mySQL server, cependant je n'arrive pas à convertir mes mots de passe utilisateurs dans un format compréhensible par tout le monde.
J'ai testé ton code PHP qui me semble très bien, cependant quelque soit la valeur que j'utilise j'ai droit à un beau 530. Login Incorrect, pourtant je pensais que la valeur $base64_md5 de ton script serait celle dont j'avais besoin.
<?php
function hexToString($hex) {
$hex = str_replace(array("\n","\r"," "), "", $hex);
for ($ix=0; $ix < strlen($hex); $ix=$ix+2) {
$ord = hexdec(substr($hex, $ix, 2));
$string .= chr($ord);
}
return $string;
}
$string = "testing";
$hexa_md5 = md5($string);
$base64_md5 = base64_encode(hexToString(md5($string)));
echo "$string \n";
echo "$hexa_md5 \n";
echo "$base64_md5 \n";
?>
Dans le fichier /var/log/auth.log j'ai systématiquement une différence entre les valeurs pam_mysql_check_passwd() et pam_sm_authenticate()
connected: pam_mysql - SELECT pass FROM accounts WHERE username = 'test'
connected: pam_mysql - non-crypt()ish MD5 hash is not supported in this build.
connected: pam_mysql - pam_mysql_check_passwd() returning 7.
connected: pam_mysql - pam_sm_authenticate() returning 3.
connected: pam_mysql - pam_mysql_release_ctx() called.
connected: pam_mysql - pam_mysql_destroy_ctx() called.
connected: pam_mysql - pam_mysql_close_db() called.
Que faire que faire ? Merci en tout cas de m'aider !
if exist $probleme ;
then Googlise au moins une demie heure; plus une demie heure de doc Ubuntu;
else A lire absolument avant de poster !
fi
Hors ligne
#9 Le 11/03/2008, à 21:38
- jak0lantash
Re : [RESOLU]VsFTPd, ProFTPd, Pure-FTPd et MD5 ???
Je pense que le problème vient du fait que tu ne spécifie pas à PAM que c'est du MD5.
Pourrais-tu donner le /etc/pam.d/vsftpd stp
Et aussi me donner la valeur que tu as entré dans le champ pass de ta table accounts, ou en tout cas sa structure et le cryptage que tu utilise (donne moi par exemple le résultat pour la chaine "testing"...
Il me faut ces infos pour te répondre.
Hors ligne
#10 Le 12/03/2008, à 08:39
- MacLane45
Re : [RESOLU]VsFTPd, ProFTPd, Pure-FTPd et MD5 ???
Voici mon fichier /etc/pam.d/vsftpd
auth required pam_mysql.so user=vsftpd passwd=password host=localhost db=vsftpd table=user_accounts usercolumn=username passwdcolumn=pass verbose=1 crypt=3
account required pam_mysql.so user=vsftpd passwd=password host=localhost db=vsftpd table=user_accounts usercolumn=username passwdcolumn=pass verbose=1 crypt=3
Ce qui indique bien (je crois ... a force je suis plus sûr ) que c'est du MD5 dont il s'agit, ensuite dans ma table MySQL je crée 3 utilisateurs avec pour mot de passe les 3 valeurs retournées par ton script (ci dessus) et j'essai à ce moment la de me connecter au serveur VsftpD
user1 => testing
user2 => ae2b1fca515949e5d54fb22b8ed95575
user3 => risfylFZSeXVT7IrjtlVdQ
Je me vois donc l'accès refusé pour le user1 ce qui semble logique, mais ni le user2 ni le user3 n'y arrivent non plus.
Name: user1
234 Proceed with negotiation.
[SSL Cipher DES-CBC3-SHA]
331 Please specify the password.
Password:
530 Login incorrect.
Login failed.
Merci à toi jak0lantash de prendre le temps de m'aider c'est sympa et je suis tout à fait d'accord avec Fozzy
Fozzy
Re: [Courier][MySQL]Echec de connexion a imap
Jak0, tu resteras toujours un geek ,mais un geek competent !
Dernière modification par MacLane45 (Le 12/03/2008, à 08:40)
if exist $probleme ;
then Googlise au moins une demie heure; plus une demie heure de doc Ubuntu;
else A lire absolument avant de poster !
fi
Hors ligne
#11 Le 12/03/2008, à 10:02
- MacLane45
Re : [RESOLU]VsFTPd, ProFTPd, Pure-FTPd et MD5 ???
Ca y est j'ai enfin trouvé ma réponse ! Il faut mettre crypt=1 dans le fichier /etc/pam.d/vsftpd et encoder le mot de passe sous MySQL avec la fonction encrypt et PAS MD5 NI SHA et la ca fonctionne
ftp 192.168.x.x
Connected to 192.168.x.x
220 Bienvenue sur le serveur FTP
Name :
234 Proceed with negotiation.
[SSL Cipher DES-CBC3-SHA]
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
drwxr-xr-x 2 1002 65534 4096 Mar 08 18:22 test
226 Directory send OK.
ftp> quit
ssl_getc: SSL_read failed -1 = 32
Pour créer un mot de passe il passer les commandes suivantes :
sudo mysql -u root -p
Enter password:
mysql> use BASE_DE_DONNEES_VSFTPD;
Database changed
mysql> INSERT INTO user_accounts (username, pass) VALUES('USER1', encrypt('PASSWORD'));
Dernière modification par MacLane45 (Le 12/03/2008, à 10:09)
if exist $probleme ;
then Googlise au moins une demie heure; plus une demie heure de doc Ubuntu;
else A lire absolument avant de poster !
fi
Hors ligne
#12 Le 12/03/2008, à 12:25
- jak0lantash
Re : [RESOLU]VsFTPd, ProFTPd, Pure-FTPd et MD5 ???
Oui, c'est sûr que si tu utilises les fonction crypt, le problème est résolu. Toutefois, je pense que tu as fait une erreur de taille dans ton implémentation pour le MD5 !
En fait, il faut spécifier à PAM que c'est du MD5. Non seulement avec crypt=3 (ou crypt=1 md5=1), de mémoire. Mais aussi en stockant ton mot de passe dans ton champd BDD dans la forme '{MD5}risfylFZSeXVT7IrjtlVdQ' et non pas 'risfylFZSeXVT7IrjtlVdQ' tout court.
En fait, crypt=3 indique que c'est un "digest", et ensuite il faut spécifier la méthode de cryptage utilisée...
Essaye avec ça, et tu verra, ça devrait marcher...
Hors ligne
#13 Le 12/03/2008, à 16:05
- MacLane45
Re : [RESOLU]VsFTPd, ProFTPd, Pure-FTPd et MD5 ???
Je viens de retester et je suis à nouveau en '530 :Login incorrect', pourtant j'ai modifié le champ Mysql de 'risfylFZSeXVT7IrjtlVdQ' en '{MD5}risfylFZSeXVT7IrjtlVdQ' et retenter le login en mettant bien 'crypt=3' ou 'crypt=1 md5=1' dans /etc/pam.d/vsftpd, n'étant pas un fou de cryptographie je compte toujours sur tes lumières pour m'éclairer ^_^
/etc/pam.d/vsftpd
auth required pam_mysql.so user=vsftpd passwd=password host=localhost db=vsftpd table=user_accounts usercolumn=username passwdcolumn=pass verbose=1 crypt=3
account required pam_mysql.so user=vsftpd passwd=password host=localhost db=vsftpd table=user_accounts usercolumn=username passwdcolumn=pass verbose=1 crypt=3
Dans le fichier /var/log/auth.log
pam_mysql - SELECT pass FROM accounts WHERE username = 'user'
pam_mysql - non-crypt()ish MD5 hash is not supported in this build.
connected: pam_mysql - pam_mysql_check_passwd() returning 7.
connected: pam_mysql - pam_sm_authenticate() returning 3.
connected: pam_mysql - pam_mysql_release_ctx() called.
connected: pam_mysql - pam_mysql_destroy_ctx() called.
connected: pam_mysql - pam_mysql_close_db() called.
Merci encore
if exist $probleme ;
then Googlise au moins une demie heure; plus une demie heure de doc Ubuntu;
else A lire absolument avant de poster !
fi
Hors ligne
#14 Le 31/03/2008, à 05:35
- jak0lantash
Re : [RESOLU]VsFTPd, ProFTPd, Pure-FTPd et MD5 ???
Désolé chui un boulet, le MD5 base64_encoded est
risfylFZSeXVT7IrjtlVdQ==
(j'ai oublié les deux signes égal à la fin)
Hors ligne
Pages : 1