Commande FTP ls très lente/impossible de DL des données

Bonjour,

Sur ma Debian, j’ai un problème assez fâcheux : je peux me connecter à un serveur FTP, par exemple :

root@serveur-maison:~# ftp ftp.fr.debian.org Connected to debian.proxad.net. 220 Welcome to french Debian FTP server Name (ftp.fr.debian.org:guillaume21): anonymous 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp>

Mais après, je ne peux pas faire grand chose… En effet, la commande ls est “interminable” :
[ul][li]J’entre ls[/li]
[li]200 PORT command successful. Consider using PASV. arrive directement, sans problème[/li]
[li]Après 20/30 secondes, 150 Here comes the directory listing. s’affiche et plus rien ne se passe (je n’obtiens pas la liste)[/li][/ul]

Je suis obligé de faire un Ctrl + C :

[code]^Cftp: accept: Interrupted system call

receive aborted
waiting for remote to finish abort
426 Failure writing network stream.
225 No transfer to ABOR.
ftp>[/code]

Alors que sous Windows, tout fonctionne très bien (malgré une légère attente de 3/4 secondes) :

C:\Users\Guillaume21>ftp ftp.fr.debian.org Connecté à debian.proxad.net. 220 Welcome to french Debian FTP server Utilisateur (debian.proxad.net:(none)) : anonymous 331 Please specify the password. Mot de passe : 230 Login successful. ftp> ls 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. debian debian-amd64 debian-backports debian-non-US debian-security debian-volatile tmp 226 Directory send OK. ftp : 94 octets reçus en 0,00 secondes à 94000,00 Ko/s. ftp>

En plus, j’ai les ports TCP 20 et 21 ouverts sur la Debian (et pas sur Windows).
La configuration du firewall :

[code]root@serveur-maison:~# iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT all – anywhere anywhere state RELATED,ESTABLISHED
ACCEPT all – anywhere anywhere
ACCEPT icmp – anywhere anywhere
ACCEPT tcp – anywhere anywhere tcp dpt:ssh
ACCEPT tcp – anywhere anywhere tcp dpt:domain
ACCEPT udp – anywhere anywhere udp dpt:domain
ACCEPT tcp – anywhere anywhere tcp dpt:www
ACCEPT tcp – anywhere anywhere tcp dpts:ftp-data:ftp
ACCEPT tcp – anywhere anywhere tcp dpt:smtp
ACCEPT tcp – anywhere anywhere tcp dpt:pop3
ACCEPT tcp – anywhere anywhere tcp dpt:imap2

Chain FORWARD (policy DROP)
target prot opt source destination

Chain OUTPUT (policy DROP)
target prot opt source destination
ACCEPT all – anywhere anywhere state RELATED,ESTABLISHED
ACCEPT all – anywhere anywhere
ACCEPT icmp – anywhere anywhere
ACCEPT tcp – anywhere anywhere tcp dpt:ssh
ACCEPT tcp – anywhere anywhere tcp dpt:domain
ACCEPT udp – anywhere anywhere udp dpt:domain
ACCEPT tcp – anywhere anywhere tcp dpt:www
ACCEPT tcp – anywhere anywhere tcp dpts:ftp-data:ftp
ACCEPT tcp – anywhere anywhere tcp dpt:smtp
ACCEPT tcp – anywhere anywhere tcp dpt:pop3
ACCEPT tcp – anywhere anywhere tcp dpt:imap2
ACCEPT udp – anywhere anywhere udp dpt:ntp
root@serveur-maison:~#[/code]

Je viens de tester sur ftp.free.fr, sous Windows ça fonctionne encore une fois très bien mais sous Debian j’ai une erreur :

root@serveur-maison:~# ftp ftp.free.fr Connected to ftp.proxad.net. 220 Welcome to ProXad FTP server Name (ftp.free.fr:guillaume21): anonymous 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> ls 200 PORT command successful. Consider using PASV. 425 Failed to establish connection. ftp>

Pour finir, j’ai essayé avec le client FileZilla sous Debian, et encore une fois, ça bloque au moment de lister les fichiers/dossiers (et encore une fois, ça fonctionne sous Windows) :

Statut : Résolution de l'adresse de ftp.fr.debian.org Statut : Connexion à 212.27.32.66:21... Statut : Connexion établie, attente du message d'accueil... Réponse : 220 Welcome to french Debian FTP server Commande : USER anonymous Réponse : 331 Please specify the password. Commande : PASS ************** Réponse : 230 Login successful. Commande : SYST Réponse : 215 UNIX Type: L8 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 Statut : Connecté Statut : Récupération du contenu du dossier... Commande : PWD Réponse : 257 "/" Commande : TYPE I Réponse : 200 Switching to Binary mode. Commande : PASV Réponse : 227 Entering Passive Mode (212,27,32,66,204,25) Commande : LIST Erreur : Délai d'attente expiré Erreur : Échec lors de la récupération du contenu du dossier

Ça vient du pare-feu à mon avis mais comme je suis un petit nouveau je ne vois pas très bien ce qu’il y aurait à corriger :neutral_face:

Aussi, mon serveur FTP sous ProFTPD bloque sur les commandes LIST et MLSD (quand je veux me connecter à mon serveur avec FileZilla sous Windows j’ai la même erreur). Il semble que ma Debian fasse une fixette sur cette fonction pour lister les fichiers :confused:

Quelqu’un pourrait m’aider ?

Merci !

[color=#00BF00][b]EDIT : j’ai trouvé sur cette page qu’il fallait activer le module ip_conntrack_ftp dans le kernel. J’ai donc bêtement recopié la commande :

modprobe ip_conntrack_ftpet… ça fonctionne :smiley: !
Par contre il faut le réactiver à chaque démarrage (mais bon, on s’en fiche, il faut juste rajouter une ligne dans votre fichier de config iptables, si vous en avez un bien sûr, sinon… créez-en un :stuck_out_tongue: )[/b].[/color]

Pour info, les modules du noyau à charger au démarrage peuvent être ajoutés dans le fichier /etc/modules.