gorgonite Posté(e) le 7 décembre 2005 Partager Posté(e) le 7 décembre 2005 Je pense qu'une personne connaissant suffisamment bien les etapes de la connexion ftp, arrivera à deceler le truc qui me manque. le serveur ftp utilise est vsftpd. Si j'ai bien compris, pour le moment tous les utilisateurs arrivent a s'identifier depuis un ldap situe sur une autre machine sur laquelle je n'ai aucun droit (puisque que le login est ok avec leur mot de passe), mais seuls les utilisateurs locaux parviennent a veritablement ouvrir une session cas d'un utilisateur local, mais s'identifiant avec son mot de passe ldap (qui est different bien sur, sinon je ne le preciserais pas) gandalf:/etc# ftp localhost Connected to localhost.localdomain. 220 Bienvenue sur le ftp du Club Informatique de l'ENSTA Name (localhost:clubinfo): 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> put vsftpd.conf local: vsftpd.conf remote: vsftpd.conf 200 PORT command successful. Consider using PASV. 150 Ok to send data. 226 File receive OK. 4462 bytes sent in 0.00 secs (140562.0 kB/s) ftp> dir 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. -r--rw--w- 1 1000 1000 4462 Dec 04 17:02 vsftpd.conf 226 Directory send OK. ftp> del vsftpd.conf 250 Delete operation successful. ftp> dir 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. 226 Directory send OK. ftp> bye 221 Goodbye. gandalf:/etc# cas d'un utilisateur non local gandalf:/etc# ftp localhost Connected to localhost.localdomain. 220 Bienvenue sur le ftp du Club Informatique de l'ENSTA Name (localhost:clubinfo): nvallee 331 Please specify the password. Password: 500 OOPS: cannot locate user entry:nvallee Login failed. 421 Service not available, remote server has closed connection ftp> bye gandalf:/etc# enfin, voilà pourquoi je pense que les utilisateurs non locaux s'identifient correctement... gandalf:/etc# tail /var/log/vsftpd.log Sun Dec 4 18:02:14 2005 [pid 2194] CONNECT: Client "127.0.0.1" Sun Dec 4 18:02:18 2005 [pid 2193] [clubinfo] OK LOGIN: Client "127.0.0.1" Sun Dec 4 18:02:28 2005 [pid 2195] [clubinfo] OK UPLOAD: Client "127.0.0.1", "/data/ftp/en_cours/vsftpd.conf", 4462 bytes, 261.63Kbyte/sec Sun Dec 4 18:02:38 2005 [pid 2195] [clubinfo] OK DELETE: Client "127.0.0.1", "/data/ftp/en_cours/vsftpd.conf" Sun Dec 4 18:04:13 2005 [pid 2201] CONNECT: Client "127.0.0.1" Sun Dec 4 18:04:23 2005 [pid 2200] [nvallee] OK LOGIN: Client "127.0.0.1" gandalf:/etc# Ça fait maintenant 15 jours que je bidouille, mais ça n'avance plus... Merci par avance. nb: meme des petites indications ou de la bonne documentation m'interessent... ;-) Lien vers le commentaire Partager sur d’autres sites More sharing options...
ggbce Posté(e) le 7 décembre 2005 Partager Posté(e) le 7 décembre 2005 Va donc faire un tour sur ce sujet que j'ai fait: http://www.pcinpact.com/forum/index.php?showtopic=69552 VSFTPD + LDAP nécessite de passer via PAM. Dans mon cas j'ai fait VSFTPD + MySQL qui passe également par PAM. La partie la plus problématique est de bien configurer PAM afin qu'il fasse correspondre les champs user er password correctement vs. la BD à récuprérer les infos. En première étape tu pourrais simplement configurer ton VSFTP avec DB3 (toujours via PAM) (la méthode la plus facile et rapide, les infos sont sur le site de VSFTPD) afin de t'assurer que la config de ton serveur FTP est top poil ! Ensuite tu fais simplement une modification de ton fichier /etc/pam.d/vsftpd pour que PAM pointe vers LDAP. C'est là que tu trouveras les bobos ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
gorgonite Posté(e) le 7 décembre 2005 Auteur Partager Posté(e) le 7 décembre 2005 Merci pour ta reponse... mais je ne comprends pas en quoi elle repond a mon probleme ou alors je n'y ai rien compris (fort possible je ne fais que bidouiller, et en plus plutot mal) J'ai deja modifie ma configuration pour qu'il aille lire sur le ldap en question, ce qui, me semble-t-il, fonctionne. clubinfo@gandalf:~$ cat /etc/vsftpd.conf listen=YES connect_from_port_20=YES max_per_ip=2 force_dot_files=YES ftpd_banner=Bienvenue sur le ftp du Club Informatique de l'ENSTA anonymous_enable=YES no_anon_password=YES anon_root=/data/ftp/ftpdocs #anon_upload_enable=NO #anon_mkdir_write_enable=NO #anon_other_write_enable=NO local_enable=YES write_enable=YES local_umask=0204 chmod_enable=NO local_root=/data/ftp/en_cours download_enable=YES dirmessage_enable=YES xferlog_enable=YES secure_chroot_dir=/var/run/vsftpd pam_service_name=vsftpd rsa_cert_file=/etc/ssl/certs/vsftpd.pem clubinfo@gandalf:~$ cat /etc/pam_ldap.conf host xxxxxxxx.ensta.fr # dans le vrai fichier il y a le bon nom base ou=eleves, ou=People, dc=ensta, dc=fr ldap_version 2 pam_crypt local clubinfo@gandalf:~$ cat /etc/pam.d/vsftpd # Standard behaviour for ftpd(8). #auth required pam_listfile.so item=user sense=deny file=/etc/ftpusersonerr=succeed # Standard blurb. #@include common-account #@include common-session #@include common-auth #auth required pam_shells.so auth required pam_ldap.so account required pam_ldap.so password required pam_ldap.so # il me semble que c'est ce bout la que je dois personnaliser #session required pam_ldap.so avec cela, les utilisateurs locaux, avec leur mot de passe du ldap, n'ont aucun soucis... en revanche, les utilisateurs qui n'ont pas de compte sur le serveur ftp semblent se connecter Sun Dec 4 18:04:23 2005 [pid 2200] [nvallee] OK LOGIN: Client "127.0.0.1" mais ensuite la "session" se referme toute seule... gandalf:/etc# ftp localhostConnected to localhost.localdomain. 220 Bienvenue sur le ftp du Club Informatique de l'ENSTA Name (localhost:clubinfo): nvallee 331 Please specify the password. Password: 500 OOPS: cannot locate user entry:nvallee Login failed. 421 Service not available, remote server has closed connection par ailleurs, il ne me semble pas que je doive utiliser les utilisateurs virtuels car, si j'ai bien compris, cela necessite la creation d'un repertoire par utilisateur virtuel. Lien vers le commentaire Partager sur d’autres sites More sharing options...
ggbce Posté(e) le 7 décembre 2005 Partager Posté(e) le 7 décembre 2005 Effectivement dans ton cas VSFTPD utilise déjà PAM pour se connecter à LDAP. La première partie des explications n'est peut être pas utile pour toi. Mais de reprendre à zéro avec une autre méthode d'auth tel que DB3 via PAM (ce qui se fait en quelques minutes) te permettrait de savoir facilement si le problème provient de vsftpd.conf ou ailleurs. Si ton auth. fonctionne bien avec PAM/DB3, alors tu es certain que le problème se situe au niveau de PAM/LDAP ou LDAP directement. Dans ton fichier /etc/pam.d/vsftpd qu'est-ce que tu retrouves actuellement ? Est-ce que ce setup permet la connexion à ton LDAP distant ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
gorgonite Posté(e) le 7 décembre 2005 Auteur Partager Posté(e) le 7 décembre 2005 Mais de reprendre à zéro avec une autre méthode d'auth tel que DB3 via PAM (ce qui se fait en quelques minutes) te permettrait de savoir facilement si le problème provient de vsftpd.conf ou ailleurs. Je vais essayer de suite Si ton auth. fonctionne bien avec PAM/DB3, alors tu es certain que le problème se situe au niveau de PAM/LDAP ou LDAP directement. Dans ton fichier /etc/pam.d/vsftpd qu'est-ce que tu retrouves actuellement ? Est-ce que ce setup permet la connexion à ton LDAP distant ? Euh... pas compris j'ai afficher le contenu de /etc/pam.d/vsftpd dans le message précédent normalement il n'y a que les liens vers pam_ldap.so, (ce qui était là à l'origine est commenté) donc toutes les identifications devraient se faire à l'aide du ldap, non ? en plus, - quand la connexion complète fonctionne, elle le fait avec le mot de passe présent sur le ldap. - lorsque je lance ldapsearch -x -h localhost ... ça me renvoie ce qu'il faut alors que je n'ai pas sldapd sur ma machine... donc le lien vers le ldap a l'air de marcher correctement. Lien vers le commentaire Partager sur d’autres sites More sharing options...
ggbce Posté(e) le 7 décembre 2005 Partager Posté(e) le 7 décembre 2005 auth required pam_ldap.so account required pam_ldap.so password required pam_ldap.so Si ce sont les seules lignes activées dans ton fichier /etc/pam.d/vsftpd normallement toutes les requêtes d'authentification seront redirigé à ton LDAP local. Pour spécifier l'utilisation d'un LDAP local ou distant je ne sais pas si tu peux le faire directement avec le module pam_ldap ou bien ton LDAP local peut rediriger la requête vers ton serveur LDAP distant. Tu devrais surement trouver la solution pour les possibilités de pam_ldap sur le site de Sourceforge (ou bien Google) ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
gorgonite Posté(e) le 7 décembre 2005 Auteur Partager Posté(e) le 7 décembre 2005 Si ce sont les seules lignes activées dans ton fichier /etc/pam.d/vsftpd normallement toutes les requêtes d'authentification seront redirigé à ton LDAP local. Pour spécifier l'utilisation d'un LDAP local ou distant je ne sais pas si tu peux le faire directement avec le module pam_ldap ou bien ton LDAP local peut rediriger la requête vers ton serveur LDAP distant. Tu devrais surement trouver la solution pour les possibilités de pam_ldap sur le site de Sourceforge (ou bien Google) ! C'est déjà fait dans le fichier /etc/pam_ldap.conf (décrit plus haut) j'ai installé ce qu'il faut pour tester ta solution pam_mysql, mais je ne trouve pas la structure des tables que je dois y mettre... il y a plein d'exemples, mais ils servent surtout pour les serveurs de mail postfix ça veut dire que c'est à nous de personnaliser la base suivant nos besoins ??? ou alors, il existe des exemples de base "test" Lien vers le commentaire Partager sur d’autres sites More sharing options...
ggbce Posté(e) le 7 décembre 2005 Partager Posté(e) le 7 décembre 2005 Pour pam_mysql, exactement ! Tu spécifies quel BD, quel table et quel champs correspond à username et password, c'est tout. Ça ressemble à ça: auth required pam_mysql.so host=localhost user=usager passwd=mot_de_passe db=mabdd table=matable usercolumn=user_name passwdcolumn=user_passwd crypt=0 account required pam_mysql.so host=localhost user=usager passwd=mot_de_passe db=mabdd table=matable usercolumn=user_name passwdcolumn=user_passwd crypt=0 C'est déjà fait dans le fichier /etc/pam_ldap.conf (décrit plus haut) Est-ce que tu as d'autres applications qui fonctionnent avec ton LDAP distant via le module pam_ldap ? Si oui, est-ce qu'ils fonctionnent ? Ton problème semble vraiment venir de la configuration de pam_ldap.conf, car PAM n'a que pour fonctionner de rediriger les requêtes vers les BD pour récupérer les user et password de ceux-ci via le module spécifier. Si le module est mal configuré, rien ne passe ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
gorgonite Posté(e) le 7 décembre 2005 Auteur Partager Posté(e) le 7 décembre 2005 Voilà la base de données CREATE TABLE users ( id BINGINT UNSIGNED AUTO_INCREMENT NOT NULL, name VARCHAR(255), passwd CHAR(12), PRIMARY KEY (id) ); Ensuite l'utilisateur "test" INSERT INTO users (name,passwd) VALUES ('test','coucou'); Je modifie /etc/pam.d/vsftpd ### Configuration 2 ### auth required pam_mysql.so \ user=vsftpd passwd=****** host=localhost db=pam_vsftpd \ table=users usercolumn=name passwdcolumn=passwd crypt=0 account required pam_mysql.so \ user=vsftpd passwd=******* host=localhost db=pam_vsftpd \ table=users usercolumn=name passwdcolumn=passwd crypt=0 Je tente la connexion gandalf:~# ftp localhost Connected to localhost.localdomain. 220 Bienvenue sur le ftp du Club Informatique de l'ENSTA Name (localhost:clubinfo): test 331 Please specify the password. Password: 500 OOPS: cannot locate user entry:test Login failed. ftp> bye 421 Service not available, remote server has closed connection Je vais voir les log /etc/log/vsftpd.log gandalf:~# tail /var/log/vsftpd.log Wed Dec 7 19:16:37 2005 [pid 5827] CONNECT: Client "127.0.0.1" Wed Dec 7 19:16:41 2005 [pid 5826] [test] OK LOGIN: Client "127.0.0.1" Donc ça me fait la même erreur qu'avec ma première configuration... Lien vers le commentaire Partager sur d’autres sites More sharing options...
ggbce Posté(e) le 7 décembre 2005 Partager Posté(e) le 7 décembre 2005 Est-ce que tu as essayé de te connecter à ton serveur FTP depuis une station distante (non local)... j'ai jamais remarqué, mais peut être que VSFTPD refuse les connexions provenant de 127.0.0.1 ? En tout cas, tu es certain que ton problème ne provient pas de LDAP ! Si c'est la même chose avec MySQL. C'était la raison de faire le test avec DB3 qui revenait à la même chose, à savoir si le problème provient de VSFTPD ou de la méthode d'auth. Maintenant tu sais que c'est probablement dans vsftpd le problème. Lien vers le commentaire Partager sur d’autres sites More sharing options...
gorgonite Posté(e) le 7 décembre 2005 Auteur Partager Posté(e) le 7 décembre 2005 Est-ce que tu as essayé de te connecter à ton serveur FTP depuis une station distante (non local)... j'ai jamais remarqué, mais peut être que VSFTPD refuse les connexions provenant de 127.0.0.1 ? Je réussis la connexion depuis localhost pour des utilisateurs déclarés dans le ldap ou la bdd, mais seulement dans le cas où un utilisateur local ayant le même login existe... donc a priori vsftpd marche depuis localhost je viens de faire le test depuis une autre machine... et ça donne le même résultat. en revanche, j'ai des trucs en plus, avant de me loguer : 530 Please login with USER and PASS. 530 Please login with USER and PASS. KERBEROS_V4 rejected as an authentication type Lien vers le commentaire Partager sur d’autres sites More sharing options...
ggbce Posté(e) le 8 décembre 2005 Partager Posté(e) le 8 décembre 2005 Si tu n'as pas repassé en revue le fichier VSFTPD.CONF que tu nous as envoyé, c'est sur que ça ne fonctionnera pas ! Tu as activé les usagers locaux (local_enable=YES), donc pour ce qui est du fait que quand tu essais avec un compte local... il ne passe pas par PAM, mais directement par le fichier /etc/passwd local. Tu as conservé la connexion anonymous activé (anonymous_enable=YES), mais tu n'as jamais activé les comptes invîté qui est nécessaire pour la connexion via PAM. Tous les options possibles du vsftpd.conf sont ici: http://vsftpd.beasts.org/vsftpd_conf.html et les exemples d'utilisations: ftp://vsftpd.beasts.org/users/cevans/unta...-2.0.3/EXAMPLE/ Ajoute l'accès invîté et tout fonctionnera bien ! (NOTE: Un usager invîté est "considéré" comme anonymous au niveau sécurité, mais le paramètre local_enable=YES doit être à YES pour que les invîtés fonctionnent ! Lorsque invîté est activé, les comptes réel local ne sont plus accesible.) Lien vers le commentaire Partager sur d’autres sites More sharing options...
gorgonite Posté(e) le 8 décembre 2005 Auteur Partager Posté(e) le 8 décembre 2005 Tu as activé les usagers locaux (local_enable=YES), donc pour ce qui est du fait que quand tu essais avec un compte local... il ne passe pas par PAM, mais directement par le fichier /etc/passwd local. Ben pourquoi les utilisateurs locaux ont besoin de leur mot de passe définis sur le ldap et non de leur mot de passe local... Ajoute l'accès invîté et tout fonctionnera bien ! (NOTE: Un usager invîté est "considéré" comme anonymous au niveau sécurité, mais le paramètre local_enable=YES doit être à YES pour que les invîtés fonctionnent ! Lorsque invîté est activé, les comptes réel local ne sont plus accesible.) Je viens de le faire, et en effet les login se déroulent bien... en revanche, si j'ai bien compris, je ne peux pas uploader sans laisser l'autorisation à anonymous d'écrire... hors à côté de ces uploaders "traçables", je veux pouvoir laisser un accès anonyme en download sur un autre répertoire où les données auront été validées. Y aurait-il un autre moyen que je n'ai pas compris... ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
ggbce Posté(e) le 9 décembre 2005 Partager Posté(e) le 9 décembre 2005 Si effectivement ! Dans ton fichier vsftpd.conf, tu mets les droits à anonymous les plus restrictifs possibles. Ensuite il y a un super option intéressant à ajouter: user_config_dir=/etc/vsftpd/user_conf Dans le dossier /etc/vsftpd/user_conf tu peux ensuite créer un fichier de config de type vsftpd.conf pour chaque usager. Donc chacun peut avoir des permissions différentes, un dossier racine différent, .... exemple: tu as un usager nommé toto1 Alors avec VI tu créé un fichier /etc/vsftpd/user_conf/toto1 et tu ajoutes les lignes désirées ! (NOTE: uniquement des lignes se relatant au droits des fichiers et aux accès fonctionneront... tu ne peux pas mettre du genre "pasv_address ") Et comme je disais un usager invîté est considéré comme anonyme, donc ce seront les paramètres anonymes qui fonctionneront. Lien vers le commentaire Partager sur d’autres sites More sharing options...
gorgonite Posté(e) le 10 décembre 2005 Auteur Partager Posté(e) le 10 décembre 2005 C'est bon Tout marche comme je le souhaitais. Merci beaucoup de ton aide Lien vers le commentaire Partager sur d’autres sites More sharing options...
ggbce Posté(e) le 12 décembre 2005 Partager Posté(e) le 12 décembre 2005 SVP, ajouter [RESOLU] dant le titre de ton sujet si c'est réglé. Comme ça les autres savent que ce sujet et clos et qu'ils pourront trouver une réponse à ce problème ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
gorgonite Posté(e) le 12 décembre 2005 Auteur Partager Posté(e) le 12 décembre 2005 C'est fait 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.