[Résolu] Problème avec pure-ftpd-mysql

Bonjour à tous.

J’ai actuellement un problème avec pure-ftpd-mysql que j’ai installé avec apt-get.

Lorsque je fais /etc/init.d/pure-ftpd-mysql stop il m’indique ça: [quote]Stopping ftp server: pure-ftpd.[/quote]
Cependant le port 21 reste toujours ouvert et je peux me connecter dessus avec un vrai user unix de la machine alors que je voudrais que ce soit uniquement des users qui sont inscrit dans une table de mysql.

Sinon lorsque je fais /etc/init.d/pure-ftpd-mysql restart ou /etc/init.d/pure-ftpd-mysql start il ne se passe absolument rien.

Je suis avec debian 4.0 actuellement.

j’ai du mal à saisir ce que tu veux dire …
Que le port 21 reste ouvert, c’est normal, c’est du ressort d’iptables.
Que tu puisses accèder par le port 21 à ta machine, ça l’est en revanche beaucoup moins, vu que plus aucun serveur n’écoute le port 21. …
Si ton utilisateur arrive à se connecter au système par un shell, c’est que c’est un utilisateur système disposant d’un shell, ce qui n’est pas bon du tout, dans ton cas…

alors ? ça laisse perplexe.

De toute façon, je vois pas pourquoi finalement on devrait déléguer la gestion des utilisateurs à mysql, alors que le noyau linux, les programmes integrés ou de bases ‘PAM, ACL, etc …’ le font de façon redoutable. (en plus des droits classiques, on peut se pencher sur les ACL, les quotas sur une partition, bref: tout un programme).
En fait, mon conseil, et comme le suggérait mattotop, penche toi plutôt sur sftp, si tu veux un serveur ftp sécurisé, quoi de mieux qu’un transfert crypté ssh avec authentification système des users connectés emprisonnés dans un chroot avec un shell rssh (restreint).
Voilà quelques mots clé qui devraient te mettre sur la voie si tu veut tenter l’expérience ftp sécurisé (d’ailleurs le ftp fait un peu déclassé par rapport au sftp: le client filezilla3 par exemple gère le sftp sous windaube comme sous linux [ pkg debian]: les transferts se font cryptés et par le port ssh, on s’embête plus avec l’actif/passif).

NB: tu auras un peu de difficulté à mettre en place cette solution sur un 64bits, mais c’est moins problèmatique qu’il n’y parait.

Je ne pense pas que tu ai saisi mon problème.

Tout d’abord si je souhaite utiliser pure-ftpd-mysql c’est que c’est facile à administrer sans forcément à devoir avoir un accès SSH pour ajouter, modifier, supprimer des utilisateurs.

Ma question était de loin de demander ce que je peux utiliser à la place d’un client FTP clasic.

Simplement lorsque je fais apt-get install pure-ftpd-mysql il me sera ensuite impossible d’éteindre le serveur FTP via /etc/init.d/pure-ftpd-mysql stop

Ma question est comment arranger ça ?

Je disais aussi que la chose étrange c’est que si en login je mettais un user qu’il y avait dans la table qui concerne pure-ftpd-mysql et le mot de passe qui va avec, il est impossible de se connecter.
Cependant si je rentre le login d’un vrai user unix avec son mot de passe j’arrivais à me connecter en FTP. Bizarre puisque j’ai installé pure-ftpd-mysql

J’ai réglé mon problème avec /etc/init.d/pure-ftpd-mysql start
C’était dans /etc/default/pure-ftpd-common, il fallait changer STANDALONE_OR_INETD=inetd par STANDALONE_OR_INETD=standalone

J’arrive donc à fermer et rallumer le serveur FTP.
Mais j’ai toujours mon problème d’identification d’user. J’arrive à me connecter via un user unix mais pas avec un user qui est inscrit dans une table de mysqld.
Je voudrais l’inverse :blush:

Pourtant quand je lance pure-ftpd-mysql ça donne ça:

[quote]mais-oui:~# /etc/init.d/pure-ftpd-mysql start
Starting ftp server: Running: /usr/sbin/pure-ftpd-mysql -l mysql:/etc/pure-ftpd/db/mysql.conf -l pam -j -E -A -O clf:/var/log/pure-ftpd/transfer.log -u 1000 -B[/quote]

je sais excuse moi. j’ai connu ce problème; à l’époque, je ne l’avais pas résolu. je peux pas t’en dire plus du coup.

à mon avis le problème d’indentification user viendrait d’un problème avec le mode de cryptage dans la base de donnée.
Tu as une fonction dans (mysql) phpmyadmin pour crypter le pdw.
mais il faut aussi que tu fournisse le pdw encrypter à la base de donnée, pour qu’elle le compare … un truc comme ça à mon avis.
Puisque tu parles d’encryptage, je te dirais de regarder un peu du côté de makepasswd et pwgen pour générer des password, mais c’est à titre indicatif, et sans réel rapport avec ton soucis.

Ce qui est “marrant” c’est que lorsque dans le fichier de conf mysql.conf de pure-ftpd-mysql, je met un idenfiant mysql ou le nom d’une mauvaise base de données, j’ai une réponse immédiate comme quoi le login ou le mot de passe n’est pas correct.

Mais lorsque je remet le bon identifiant ainsi que le bon nom de la base de données alors la réponse du fait que le login et/ou le mot de passe est/sont incorrecte alors elle vient au bout de 3 secondes.

oui mais non, le login pour accéder à la DB, le mot de pass pour accèder à la Db,et le nom de la DB, ça c’est un peu comme un tout.
Rien à voir avec le mot de passe et le login que tu transmets via cette connetection … à la DB.
Le premier est statique hein, ça bouge jamais, tu n’y touches pas.
Ce qui se passe, à mon avis, en temps normal, c’est que tu envoies un mot de passe crypté déjà, à l’origine, à ta DB, via une fonction dans le code (ici en l’occurence le code de pure-ftpd; vois le fichier de conf, ya une variable pour ça je crois), ou alors c’est l’inverse, tu envoies un mot de passe en clair à la DB, et c’est la fonction mysql qui encrypte puis compare les deux pwd codés. Doit l’un soit l’autre.

Je sais par exemple qu’en php, c’est pas comme ça: tu envoie le mot de passe crypté qui est en suite comparé à celui de la DB.
Oui c’est comme ça: en fait, la fonction de cryptage mysql, que tu choisisses password() ou md5(), crypte le pwd pour qu’il ne soit pas en clair dans la DB (qui entre nous soit dit est un fichier comme un autre). Mais si tu envoies le pwd en clair, il ne sera jamais égale à celui stocké dans la DB, comprendo ?

J’ai résolu mon problème en trifouillant des fichiers à droite et à gauche et au final je ne sais même pas ce qui a fait qu’il fonctionne.

Il me reste tout de même un petit point à règler et après c’est tout bon.
Je souhaiterais voir les commançants par un point tel que .htaccess par exemple.
Mon client FTP est configuré afin de voir les fichiers caché mais ils ne s’affichent pas.
Pourtant avec sur d’autre serveur FTP j’arrive à voir ces fichiers qui commencent par un point.

Connaissez-vous l’option pour que pure-ftpd les affiches ?

Bon en réfléchissant je sais comment j’ai résolu mon problème de connexion de mon user ftp mysql.
En fait dans la base de données il avait un uid de 500 alors que j’autorisais seulement au minimum un uid de 1000.

Sinon j’ai trouvé comment afficher les fichiers commençant par un point.
Il suffit de créer un fichier /etc/pure-ftpd/conf/DisplayDotFiles et d’y inscrire dedans ceci: yes

Ensuite on restart le pure-ftpd et dans le lancement du serveur FTP, il devrait rajouter l’option -D