ggbce Posté(e) le 20 juin 2007 Partager Posté(e) le 20 juin 2007 Salut, Je veux installer PureFtpd sur ma nouvelle Debian Etch 4.0 en version MySQL pour gérer facilement des usagers virtuels depuis une interface web (je crois que c'est ce que tout le monde veux... sauf ceux qui passe par LDAP/AD). J'ai installé le serveur, j'ai lu pas ma toute la doc et le man disponible. J'ai remarqué que Pure-Ftpd pour Debian était différent du PureFtpd original pour éviter des fichiers de configurations différents, il utilise un wrapper. Déjà là ça devrait simplifier ma vie apt-get install pure-ftpd pure-ftpd-mysql ... déjà là il y a un problème !!!! APT refuse l'installation des 2 paquets simultanément. Il dit que c'est soit pure-ftpd ou soit pure-ftpd-mysql ??? Alors quoi faire lorsque quelqu'un veut avoir un serveur FTP utilisant les comptes Unix et MySQL ou encore même LDAP simultanément (car il y a un paquet pure-ftpd-ldap) ? Alors j'installe uniquement pure-ftpd-mysql Problème ! Le wrapper ne marche pas. lorsque je me connectes avec un client j'ai l'erreur: Can't exec "/usr/sbin/pure-ftpd": No such file or directory at /usr/sbin/pure-ft pd-wrapper line 174. /usr/sbin/pure-ftpd-wrapper: Cannot exec /usr/sbin/pure-ftpd: No such file or di rectory at /usr/sbin/pure-ftpd-wrapper line 174. Connexion fermée par l'hôte distant. Comme indiqué à la ligne 174 je retrouve une ligne de commande exécutant le programme /usr/sbin/pure-ftpd mais ce fichier n'existe pas ... J'essais donc d'installer le paquet pure-ftpd comme ceci: apt-get install pure-ftpd APT me dit qu'il va désinstaller le paquet pure-ftpd-mysql pour que pure-ftpd puisse s'installer J'ai pas le choix, je le fais ! Je retourne dans /etc/pure-ftpd, je remarque que tous les fichiers concernant MySQL sont toujours présent. Je me dis alors que ce qui concerne MySQL n'est pas effacé. Sauf le fichier qui sert au wrapper pour lancer l'exécution de PureFtpd. Par la suite, J'ai créé un compte Unix pour le virtuel: groupadd -g 1000 ftpd useradd -m -g 1000 -s /bin/nologin -u 1000 ftpd J'ai configuré le fichier /etc/pure-ftpd/db/mysql.conf: MYSQLSocket /var/run/mysqld/mysqld.sock MYSQLUser monuser MYSQLPassword monpasswd MYSQLDatabase pureftpd MYSQLCrypt cleartext MYSQLGetPW SELECT password FROM ftpd WHERE user="\L" MYSQLGetUID SELECT uid FROM ftpd WHERE user="\L" MYSQLGetGID SELECT gid FROM ftpd WHERE user="\L" MYSQLGetDir SELECT dir FROM ftpd WHERE user="\L" J'ai créé la base de données, table et champs nécessaires (et même plus). J'ai utilisé le mode cleartext pour le moment pour justement éviter une histoire de mot de passe crypté et que MySQL et/ou PureFtpd ne retourne par correctement: USE pureftpd; CREATE TABLE ftpd ( user varchar(16) NOT NULL default '', password varchar(64) NOT NULL default '', uid varchar(11) NOT NULL default '-1', gid varchar(11) NOT NULL default '-1', dir varchar(128) NOT NULL default '', PRIMARY KEY (user), UNIQUE KEY user (user) ) TYPE=MyISAM COMMENT='Pure-FTPD - Users list'; J'ai ajouté mon premier utilisateur de test (toto): INSERT INTO ftpd (user,password,dir, gid, uid) VALUES ('toto','monpasswd','/home/ftpd','1000','1000'); Et finalement je fais le grand test... mais ça ne marche pas. Le serveur semble bien "UP", il répond au client ! Je bloque au niveau de l'authentification. Logiquement mon utilisateur virtuel "toto" devrait se logguer en utilisant le compte UNIX 1000:1000 et se placer dans le répertoire /home/ftpd comme racine (qui est le dossier personnel également du compte UNIX). Voici ce que le client reçoit comme message lorsque je fais mon test: C:\Documents and Settings\glenn>ftp ftp.monserveur.com Connecté à ftp.monserveur.com. 220---------- Welcome to Pure-FTPd [privsep] [TLS] ---------- 220-You are user number 1 of 50 allowed. 220-Local time is now 07:40. Server port: 21. 220-This is a private system - No anonymous login 220-IPv6 connections are also welcome on this server. 220 You will be disconnected after 15 minutes of inactivity. Utilisateur (ftp.monserveur.com:(none)) : toto 331 User toto OK. Password required Mot de passe : [je tape mon mot de passe ici] 530 Login authentication failed Échec de l'identification. ftp> Et voici ce que j'ai dans le SYSLOG sur le serveur: Jun 20 06:38:18 tempo pure-ftpd-wrapper[14682]: connect from 192.168.0.2 (192.168.0.2) Jun 20 06:38:18 tempo pure-ftpd: (?@192.168.0.2) [INFO] New connection from 192.168.0.2 Jun 20 06:38:18 tempo pure-ftpd: (?@192.168.0.2) [INFO] PAM_RHOST enabled. Getting the peer address Jun 20 06:38:20 tempo pure-ftpd: (?@192.168.0.2) [WARNING] Authentication failed for user [toto] Jun 20 06:38:26 tempo pure-ftpd: (?@192.168.0.2) [INFO] Logout. Plutot étrange, le serveur semble pointer vers PAM au-lieu du connecteur SQL intégré... si je me fis à d'autres personnes ayant eux des dificultés avec PureFtpd et un serveur MySQL, c'était plutot des messages comme "The SQL server seems to be down". J'y repense, le dossier /etc/pure-ftpd/auth ne contient aucune ligne ne représente l'authentification MySQL : lrwxrwxrwx 1 root root 26 2007-05-30 12:03 65unix -> ../conf/UnixAuthentication lrwxrwxrwx 1 root root 25 2007-05-30 12:03 70pam -> ../conf/PAMAuthentication Je devrais également avoir: lrwxrwxrwx 1 root root 23 2007-06-20 09:20 30mysql -> ../conf/MySQLConfigFile Ensuite, Je décide de réinstaller le paquet pure-ftpd-mysql car le wrapper semble ne plus voir la config MySQL. Lorsque celui-ci est installé j'obtiens : Can't exec "/usr/sbin/pure-ftpd": No such file or directory at /usr/sbin/pure-ftpd-wrapper line 174. /usr/sbin/pure-ftpd-wrapper: Cannot exec /usr/sbin/pure-ftpd: No such file or directory at /usr/sbin/pure-ftpd-wrapper line 174. Connexion fermée par l'hôte distant. Alors en réinstallant le paquet pure-ftpd-mysql, APT a supprimé les fichiers de pure-ftpd encore... Je décide alors de prendre en note le fichier d'exécution pour l'authentification MySQL que le wrapper utilise: lrwxrwxrwx 1 root root 23 2007-06-20 09:20 30mysql -> ../conf/MySQLConfigFile Je réinstalla à nouveau pure-ftpd, puis j'ajoute manuellement le lien symbolique: ln -s ../conf/MySQLConfigFile 30mysql Je relance le démon PureFtpd avec: /etc/init.d/pure-ftpd restart Celui-ci me retourne exactement l'allure d'un serveur qui exécute ce que je veux pour la première fois: Restarting ftp server: Running: /usr/sbin/pure-ftpd -l mysql:/etc/pure-ftpd/db/mysql.conf -O clf:/var/log/pure-ftpd/transfer.log -u 1000 -E -B J'essais à nouveau de me connecter depuis un client: C:\Documents and Settings\glenn>ftp mail.cdebeauce.com Connecté à mail.cdebeauce.com. Connexion fermée par l'hôte distant. et le SYSLOG: Jun 20 09:39:52 tempo pure-ftpd-wrapper[15160]: connect from 192.168.0.2 (192.168.0.2) Jun 20 09:39:52 tempo pure-ftpd: (?@?) [ERROR] Unknown authentication method: mysql:/etc/pure-ftpd/db/mysql.conf Quoi faire pour faire fonctionner ce serveur FTP avec MySQL Lien vers le commentaire Partager sur d’autres sites More sharing options...
ggbce Posté(e) le 20 juin 2007 Auteur Partager Posté(e) le 20 juin 2007 Si quelqu'un a installé le paquet compilé pure-ftpd-mysql sur une Debian Etch Stable, et que ça fonctionne... j'aimerais bien être au courant. Au moins ça me confirmerait que c'est possible, sinon je vais transmettre aux dévellopeurs de Debian un rapport de bug pour ce paquet. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Amour Posté(e) le 20 juin 2007 Partager Posté(e) le 20 juin 2007 Installez pureftpd à la main (compilation) c'est pas bien méchant Lien vers le commentaire Partager sur d’autres sites More sharing options...
ggbce Posté(e) le 20 juin 2007 Auteur Partager Posté(e) le 20 juin 2007 Oui, j'y ai pensé... mais de laisser tomber de côté un paquet déjà compilé (qui devrait fonctionner) et d'un service de mise à jour des paquets avec APT c'est à considérer. Lien vers le commentaire Partager sur d’autres sites More sharing options...
ggbce Posté(e) le 20 juin 2007 Auteur Partager Posté(e) le 20 juin 2007 Ah Ah !!! J'ai trouvé le bobo. C'est vraiment le package de Debian qui fait erreur et c'est au niveau du fameux wrapper. En fouillant (après plus de 3 jours de tests j'en suis venu à bout) mais vous en faite pas j'ai déjà d'autres problèmes à vous soumettre Voici une petite explication du problème pour les prochains qui auront ce problème: Debian utilise 3 paquets différents pour PureFtpd, un pour la version PAM/UNIX, un pour la version MySQL et un autre pour la version LDAP. Vous ne pouvez installer qu'une seule version à la fois. Debian utilise également un wrapper personnel qui permet de "parser" les fichiers de configuration et lancer le démon avec ceux-ci (afin de réduire le nombre de fichiers de configuration et d'automatiser le lancement sans avoir besoin de taper les options en paramètres). Après plusieurs tentatives d'installation j'ai remarqué la différence: Les 3 versions n'utilisent pas le même nom pour le fichier exécutable: Version normal: /usr/sbin/pure-ftpd Version mysql: /usr/sbin/pure-ftpd-mysql Version ldap: /usr/sbin/pure-ftpd-ldap Et dans les 3 installations, le fichier script du wrapper /usr/sbin/pure-ftpd-wrapper contient en début: my $daemon = '/usr/sbin/pure-ftpd'; my @capabilities = @ARGV; if ($ARGV[0]) { $daemon = "$daemon-$ARGV[0]"; } Donc il y a une petite passe-passe qui va changer le nom de la variable $daemon... mais très étrangement celle-ci ne fonctionne pas à 100%, mais à 50%. Le wrapper doit détecter d'une certaine façon quel version de PureFtpd est installé (normal, mysql ou ldap). Pour ceci il vérifie le nom du fichier avec un parse Très très étrangement, lorsque l'on démarre le PC le démon FTP s'exécute correctement !!! Il va chercher /usr/sbin/pure-ftpd-mysql Mais lorsqu'une connexion client s'établie ça ne marche pas Il va chercher /usr/sbin/pure-ftpd tout simplement. ------------------------ 2 Solutions: Créer un lien symbolique: ln -s /usr/sbin/pure-ftpd-mysql /usr/sbin/pure-ftpd Ou simplement modifier les lignes suivantes dans le wrapper (pour la version MySQL): my $daemon = '/usr/sbin/pure-ftpd-mysql'; my @capabilities = @ARGV; #if ($ARGV[0]) { # $daemon = "$daemon-$ARGV[0]"; #} Si on ne place pas le IF en remarque ça fera en conséquence que le serveur FTP ne se démarra pas au lancement de l'ordinateur car il pointera vers /usr/sbin/pure-ftpd-mysql-mysql Lien vers le commentaire Partager sur d’autres sites More sharing options...
ggbce Posté(e) le 20 juin 2007 Auteur Partager Posté(e) le 20 juin 2007 Voici un autre problème étrange (je crois que c'est p-e une sécurité de PureFtpd, mais je ne sais pas comment faire). Quand je me connectes il se produit ceci: >ftp ftp.server.com Connecté à ftp.server.com. 220---------- Welcome to Pure-FTPd [privsep] [TLS] ---------- 220-You are user number 1 of 50 allowed. 220-Local time is now 12:09. Server port: 21. 220-This is a private system - No anonymous login 220-IPv6 connections are also welcome on this server. 220 You will be disconnected after 15 minutes of inactivity. Utilisateur (ftp.server.com:(none)) : toto 331 User toto OK. Password required Mot de passe : 230-User toto has group access to: ftpd 230 OK. Current directory is /home/ftpd ftp> dir 500 I won't open a connection to 192.168.1.2 (only to 16.36.86.52) 425 No data connection ftp> Mon serveur PureFtpd se trouve physiquement sur le Net avec une adresse IP valide Internet. Ma machine client se touve derrière une NAT Iptables. L'adresse IP 16.36.86.52 est l'adresse côté Internet de ma NAT et 192.168.1.2 est bien l'adresse de mon PC. Si j'essais depuis un autre PC avec une adresse IP directement sur Internet (pas de NAT), je suis également capable d'ouvrir une session, mais lorsque j'essais n'importe quel commande (get, dir, put, ...) j'obtiens: ftp: connect: Connection refused NOTE: J'essais toujours en mode PASV (Passive mode) qui est la norme aujourd'hui pour contrer les problèmes avec les firewall et PureFtpd supporte le PASV. Je trouve que ça fait beaucoup de problème en peu de temps avec ce logiciel... je me demande si ça vallait vraiment la peine de migrer vers celui-ci. Plusieurs personnes m'ont suggérées fréquemment d'utiliser PureFtpd (dont certains d'entre-vous) mais je commence à être sceptique à sa fiabilité. Cette fois-ci c'est de ma faute. Je n'avais pas ouvert les ports pour le PASV sur le serveur FTP. Ça fonctionne maintenant !!! Lien vers le commentaire Partager sur d’autres sites More sharing options...
hairtook Posté(e) le 27 juillet 2007 Partager Posté(e) le 27 juillet 2007 salut, je suis sous debian 4.0, j'ai donc installé pureftpd celon ce topic : http://www.generation-linux.net/article.php3?id_article=13 ensuite je me suis donc retrouvé avec le méme soucis que toi, que j'ai réparé sans trop de soucis : Can't exec "/usr/sbin/pure-ftpd": No such file or directory at /usr/sbin/pure-ft enfn je crois, car maintenant je n'ai plus de messages d'erreur dans ma fenétre filezilla mais j'ai donc : Réponse : 220---------- Welcome to Pure-FTPd [privsep] [TLS] ---------- Réponse : 220-You are user number 1 of 50 allowed. Réponse : 220-Local time is now 13:26. Server port: 21. Réponse : 220-This is a private system - No anonymous login Réponse : 220 You will be disconnected after 15 minutes of inactivity. Commande : USER toto Réponse : 331 User toto OK. Password required Commande : PASS **** Réponse : 530 Login authentication failed Erreur : Impossible de se connecter ! j'ai appliqué en premier lieu ta seconde solution, qui n'a rien donné, en second lieu la premiére du lien symbolique, mais qui n'a rien donné du tout. enfin j'ai fait les deux solutions en méme temps et bien entendu, toujours rien :( je tourne en rond comme pas permis, si quelqu'un pouvait m'éguiller ce serait sympa. mon niveau linux, il faut le dire est newbie, ça vient peut étre de là merci d'avance Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.