[RESOLU!][LINUX] vsFTP commence a m'énerver

Bonjour tout le monde,

Je suis entrain de monter un server FTP sur un port autre que le 21 (sur un FedoraCore5 avec vsFTP) qui pointe vers le répertoire /var/www/html pour pouvoir accéder en FTP au site web.

Bon en local tout marche a merveille (youpi), mais quand c’est depuis l’extérieur (avec le nom de domaine et pas l’IP), la, :stuck_out_tongue: heuuu, y a comme un souci :D, je m’explique : impossible de lister le répertoire, par contre j’arrive par example, à créer des répertoires. J’ai donné a l’utilisateur (qui est enregistré dans les users de linux) le maximum de droits il est dans le groupe root.
Je précise la redirection de port marche vu que je peux me connecter.
Ha oui, j’allais oublier, il me met aussi l’arborecence du dossier dans la console du client FTP, il me dis : 257 « /var/www/html », et aussi l’adresse IP locale du server : 227 Entering Passive Mode (192,168,1,2,221,50)

Etat : Connexion à humhumhum.dnsalias.com:210 ... Etat : Connecté à humhumhum.dnsalias.com:210. Attente du message d'accueil... Réponse : 220 humhumhum vous souhaite la bienvenue Commande : USER humhumhum Réponse : 331 Please specify the password. Commande : PASS humhumhum Réponse : 230 Login successful. Commande : FEAT Réponse : 211-Features: Réponse : EPRT Réponse : EPSV Réponse : MDTM Réponse : PASV Réponse : REST STREAM Réponse : SIZE Réponse : TVFS Réponse : 211 End Commande : SYST Réponse : 215 UNIX Type: L8 Etat : Connecté Etat : Récupération de la liste de répertoires... Commande : PWD Réponse : 257 "/var/www/html" Commande : TYPE A Réponse : 200 Switching to ASCII mode. Commande : PASV Réponse : 227 Entering Passive Mode (192,168,1,2,221,50) Commande : LIST Erreur : Le canal de transfert n'a pas pu être ouvert. Raison : Une tentative de connexion a échoué car le parti connecté n'a pas répondu convenablement au-delà d'une certaine durée ou une connexion établie a échoué car l'hôte de connexion n'a pas répondu. Erreur : N'a pas pu récupérer la liste du répertoire

Bon désolé si je suis un peut flou, je suis pas (encore) très familier du pingu.
Si la situation vous parai surréaliste et que vous avez une meilleure solution que vsFTP pour mon server, je suis preneur.

Merci les amis B)

Peut etre un problème de mode actif/passif. J’avais lu un super post sur le mode actif et passif, c’était sur la zone même. :smiley:

laOuine.

EDIT: ça peut aider. B)

Le groupe root, c’est bien, mais c’est rare que /var/www/… appartienne à root que ce soit en utilisateur ou en groupe. C’est plutôt www-data ou des trucs de ce style.

[quote=« AristideRutilant, post:3, topic: 30492 »]Le groupe root, c’est bien, mais c’est rare que /var/www/… appartienne à root que ce soit en utilisateur ou en groupe. C’est plutôt www-data ou des trucs de ce style.[/quote]Oui oui, le dossier apartien bien a user : root et groupe : root. Pourquoi, c’est grave docteur?

[quote=« laOuine, post:2, topic: 30492 »]Peut etre un problème de mode actif/passif. J’avais lu un super post sur le mode actif et passif, c’était sur la zone même. :stuck_out_tongue:
laOuine.
EDIT: ça peut aider. B)[/quote]Merci j’ai trouvé le topic en question : c’est ici je pense, non? :smiley:

Et tan qu’on y est on continu dans les questions « bêtes » coment qu’on lui dis a vsFTP qui se mette en mode passif?

Je suppose qu’il y a un fichier de configuration quelque part dans /etc où l’on peut régler cela.

oui c’est /etc/vsftpd/vsftpd.conf
Mais le fichier est peu commenté, et moi peu experimenté donc c’est pas si facile…
Ca doit etre quelque chose dans le style passive_mode=YES je presume mais bon rien n’y fais…

[quote=“AcidBen, post:6, topic: 30492”]oui c’est /etc/vsftpd/vsftpd.conf
Mais le fichier est peu commenté, et moi peu experimenté donc c’est pas si facile…
Ca doit etre quelque chose dans le style passive_mode=YES je presume mais bon rien n’y fais…[/quote]

Si tu met passive_mode=YES il faut aussi que tu donne l’IP public de ton serveur, ainsi qu’une plage de port, dans la config de vsftpd, plage que tu devras ouvrir dans ton routeur/firewall. Voir ici aussi. B)

laOuine.

[quote=“laOuine, post:7, topic: 30492”]Si tu met passive_mode=YES il faut aussi que tu donne l’IP public de ton serveur, ainsi qu’une plage de port, dans la config de vsftpd, plage que tu devras ouvrir dans ton routeur/firewall. Voir ici[/quote]J’ai rajouté la plage de port mais comment declare t’on l’adresse publique??

Pour plus de precisions voici le vstpd.conf (ne me gifflez pas si ya des coucouilles dedans):

anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES pam_service_name=vsftpd userlist_enable=YES userlist_deny=NO listen=YES listen_port=210 tcp_wrappers=YES pasv_enable=YES pasv_min_port=11000 pasv_max_port=11010

As-tu redirigé la plage 11000 - 11010 dans ta freebox?

Là ou le server est, il y a une aliceBox ( B) ), mais oui les ports 11000 a 11010 ont été
redirigés vers le server.

Apparament pas besoin de déclarer l’ip, les 3 paramètres (pasv_*) suffisent.

Si tu utilise Filezilla comme client FTP, essaies le mode passif dans les options:
Edition>Paramètres>Connexion>Paramètres Pare-feu, coche Mode passif.

laOuine.

[quote=“laOuine, post:11, topic: 30492”]Apparament pas besoin de déclarer l’ip, les 3 paramètres (pasv_*) suffisent.[/quote]oui j’ai vu ca

[quote=“laOuine, post:11, topic: 30492”]Si tu utilise Filezilla comme client FTP, essaies le mode passif dans les options:
Edition>Paramètres>Connexion>Paramètres Pare-feu, coche Mode passif.[/quote]c’etais déja coché dans FileZilla, puis bon j’essayé avec pleins de clients B)

Tu dis avoir redirigé les ports sur ton serveur, mais est-ce que c’est ouvert sur la machine elle-même ?

j’ai, pour tester, viré le firewall de linux, bon je l’ai fais avec l’interface graphique de KDE, parceque moi, les iptables, ca me pique le nez… B)

Mais bon « a priori » le firewall est desactivé sur mon linux (est-ce bien grave deriere un routeur?)

Le problème est très simple. Quand tu passes en mode passif, vsftp fournit l’adresse privé de ta machine :

Ton client va donc essayer de se connecter à cette adresse, ce qui ne marchera pas s’il n’est pas en local. Rajoute donc la ligne suivante et tout le roulera si la conf de ta box est OK.

pasv_address=<adresse_publique>

PS : Quand tu as des problème de ce type, je te conseille de monitorer les trames réseau sur le client et le serveur, avec Ethereal par exemple. Très souvent, une analyse rapide de ces trames t’indique le problème.

[quote=“universal_tonton, post:15, topic: 30492”]Rajoute donc la ligne suivante et tout le roulera si la conf de ta box est OK.


Ca marche, et bien en plus.
T’sait quoi toi ? Je te dois un verre le jour ou tu passe dans le coin, et je suis sérieu …

MERCI !!! B)

Je viens de voir que, quand tu fais un PWD, le serveur affiche /var/www/html, ce qui est TRES mal. Je te conseille, pour des raisons de sécu, de “chrooter” les utilisateurs, ce qui a 2 avantages :

  1. quand ils feront un PWD, ils verront / et non plus /var/www/html
  2. il leur sera impossible de se déplacer dans un répertoire supérieur à /var/www/html, cad, au pire, jusqu’à /, et avoir accès à d’autres fichiers par la suite.

Je connais plus les commandes exactes pour ça, mais je sais que c’est possible avec vsftp

Edit : Ben tiens, ça sert Google ! Le 1er lien B)

passwd_chroot_enable=YESc’est ca ?

edit1 :
oui c’est ca, mais il faut changer dans /etc/passwd une ligne, moi j’ai : lambda:x:501:502:lambda:/var/www/html:/bin/bashet je vien de lire un truc ou on me dis de faire ca :lambnda:x:501:502:lambda:/var/www/./html:/bin/bashMais bon ca limite pas je met peut etre le pont au mauvais endroit, non?

edit2 :

oui ca parle bien du /./ j’essaye plusieurs choses dans mon /etc/passwd

[quote=“AcidBen, post:18, topic: 30492”]passwd_chroot_enable=YESc’est ca ?

edit1 :
oui c’est ca, mais il faut changer dans /etc/passwd une ligne, moi j’ai : lambda:x:501:502:lambda:/var/www/html:/bin/bashet je vien de lire un truc ou on me dis de faire ca :lambnda:x:501:502:lambda:/var/www/./html:/bin/bashMais bon ca limite pas je met peut etre le pont au mauvais endroit, non?
edit2 :

oui ca parle bien du /./ j’essaye plusieurs choses dans mon /etc/passwd[/quote]

J’ai regardé rapidement le man, mais je ne te conseille pas de faire comme ça (au passage, le chemin correct doit être /var/www/html/./). Le mieux est de définir explicitement quels utilisateurs ont, d’une part, le droit de se connecter et, d’autre part, ceux qui doivent être chrootés.

A priori, ça donnerait ça dans ton fichier de conf :

chroot_list_enable=YES chroot_list_file=/chemin/vers/liste_users

Tu dois bien sûr remplir le fichier liste_users avec les users qui doivent être chrootés. A noter que la 2ème ligne n’est pas nécessaire si tu utilises le fichier par défaut, qui semble être /etc/vsftpd.chroot_list

[quote=« universal_tonton, post:19, topic: 30492 »]A priori, ça donnerait ça dans ton fichier de conf :chroot_list_enable=YES chroot_list_file=/chemin/vers/liste_users

Tu dois bien sûr remplir le fichier liste_users avec les users qui doivent être chrootés. A noter que la 2ème ligne n’est pas nécessaire si tu utilises le fichier par défaut, qui semble être /etc/vsftpd.chroot_list[/quote]

Bon Merci sérieux tu m’as été d’une grande utilité, comme tout ceux qui on collaboré a ce thread d’ailleurs.

Tout marche impec mais il y a un hic (quoi? encore un?.. et oui …) voire carrément un gag : c’est que ici ils on une IP dynamique (ha, c’étais donc pour ca le dnsalias). :smiley:

Donc vu que vsFTPd ne reconnais que les adresses IP pour la ligne : pasv_address=patatipatata et pas les noms de domaines, je suis bon pour me retaper un nslookup et une édition de vsftpd.conf tout les matins :stuck_out_tongue: ? Ou il existe une solution.
Sérieusement je n’y crois pas pour ca, mais bon, comme on dit : tout est possible sur la Cafzone … B)