Vsftpd, connexion impossible seulement avec ftp.exe

Bonjour,

J’ai un gros souci : j’ai installé mon serveur vsftpd sur une suse10.2, ip de la machine 10.0.0.2
Il tourne sur le port 21 forwardé par le routeur (accessble depuis le net via le port 2121*)
Son data port est le 2020 forwardé par le routeur (accessible depuis le net via le port 2020)

Bizarreries
La ou ca se corse : mon vsftp est bien accessible sur le reseau local
depuis 127.0.0.1 vers 127.0.0.1:21 OK
depuis 10.0.0.101 vers 10.0.0.2:21 OK
depuis 10.0.0.101 vers adresse ip publique OK
depuis internet vers ippublique avec ftp.exe sous windows Connexion OK, ls -> Illegal PORT command
depuis internet vers ip publique avec filezilla sous windows COnnexion OK, ls OK

Remarques
FilleZilla comme ftp.exe utilisent le mode passif mais seul fillezilla arrive à se connecter et demander la liste des fichiers
La connexion depuis internet se fait derriere un router qui n’est pas configuré dmz et qui ne possède pas de forward vers ma machine de test.

Ma question, s’il vous plait
Pourquoi ftp.exe (qui doit servir à un de mes client dans un batch) n’arrive pas à se connecter alors que fillezilla y arrive ?
Ca me laisse supposer que mon parametrage du serveur et du routeur de son reseau son bon non ?

Merci d’avance pour votre aide.

*: j’ai deux serveurs (un window$ et un suse) sur lequels tournent deux ftp (respectivement, iis:21:20 et vsftpd:21:2020)

Salut l’ami, j’avais exactement le même problème et j’ai la solution

Essaye de rajouter cette ligne dans ton fichier de conf

connect_from_port_20=YES

Voila tiens moi au courant si ça marche

Tout d’abord un rapide rappel sur le protocole FTP.
Les ports standard de FTP sont : 20 et 21 quelque soit le mode [actif|passif]
Le 21 est celui des commandes (ls, get, put etc)
le 20 est celui par lequel transite les données (retour du ls par exemple, ou bien le DL d’un fichier).

Imaginons le DL d’un fichier X…
Le mode actif, est le mode historique de FTP. Le client demande le fichier X et au passage le client envoi son IP et un port. Le serveur recoit l’ip et le port et essaye de se connecter dessus. Or lorsque le client est derrière un firewall qui ne fait pas de conntracking (suivi de connexion), cela pose probleme car le serveur veut envoyer l’info mais ce tape la tete contre le “mur de feu” (firewall).

Le mode passif a été inventé pour palier au problème de firewall. Cette fois le client demande le fichier X, le serveur lui dit OK en répondant, cette fois ci avec son IP et un port défini (ip et port du serveur donc). Le client recoit l’info et va se connecter, dehors, sur le fameux serveur FTP. De ce fait le firewall laisse passer la connexion car elle a été initié par le client (en interne) donc c’est une connexion de confiance… voila le résumé rapide.

Plus d’infos sur google.

Quant a ton problème et ta config (je ne connais pas vsftp)
listen_port=2121
pasv_max_port=64010
pasv_min_port=64000
connect_from_port_20=NO

Si tu utilises le port de commande 2121, il faut donc l’autoriser ds ta CBOX vers ton serveur naté en interne. Quant au port de données, le 20, je ne sais pas ce qu’il devient, es-ce le 2120 avec vsftp? Je ne pense pas, ca doit rester le 20. Vérifie avec un netstat -tap pour voir les ports ouvert sur ton serveur FTP.
Enfin tu as défini les ports passif que ton serveur va ouvrir pour que le client vienne se connecter chez toi sur ton serveur. Tu dois donc autoriser la plage 64000 a 64010.

enfin connect_from_port_20=NO , je ne comprend pas ce que cela signifie.
RTFM.

En somme, si tu as configurer correctement ton firewall pour le forward des port CMD(21 de base) & DATA (20 de base). Un client en mode ACTIF devrait pouvoir se connecter…

Voila voila, je me relis pas c’est trop long, j’espere que j’ai pas fait trop d’erreurs

surtout que ce n´est pas de moi car c´était trop long à taper.
forum.hardware.fr…