[IPTABLES][FTP] impoosible de faire marcher le serveur en mode passif

Bon, mon objectif est simple : j’ai un serveur FTP (pure-ftpd) sur la machine A (linux) : celle-ci est en réseau local via l’interface eth0 (adresse 192.168.1.254) avec une autre machine B (windows), adresse 192.168.1.128 . Pas de NAT ou autre complication. je veux faire marcher le tout en passif

J’ai un script iptables sur A, que j’ai simplifié au maximum pour mon problème : on ouvre tout en sortie, on ferme tout en entrée sauf sur le port ftp, et la série de ports consacrés au ftp passif avec un suivi de connection (conntrack):

[code]#!/bin/bash

on vide tout :

iptables -F
iptables -X

on ne laisse rien rentrer…

iptables -P INPUT DROP

mais tout sortir …

iptables -P OUTPUT ACCEPT

et rien passer !

iptables -P FORWARD DROP

on ouvre en local …

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

… le port FTP …

iptables -A INPUT -i eth0 -p tcp --dport 21 -j ACCEPT

et les ports passifs, en supposant que le conntrack fonctionne

iptables -A INPUT -i eth0 -p tcp --dport 6500:6900 -m state --state RELATED -j ACCEPT[/code]

par ailleurs, les modules ip_conntrack et ip_conntrack_ftp sont bien chargés.

le pc B sous windows avec filezilla se connecte au serveur, se logge et bloque au listage : le port passif (entre 6500 et 6900) est bien ouvert sur le serveur, mais le conntrack n’autorise pas le client à se connecter.

Devinez, si j’ouvre les ports 6500:6900 sans restrictions, ca marche nickel. Si je rajoute ESTABLISHED, ca ne marche pas non plus (de toute façon, le conntrack agit normalement sur RELATED).

Ma question est donc : y’a une commande magique pour faire marcher le suivi de connection ? ou une règle iptables que je n’ai pas vu pendant mes recherches googlesques ? Parce que là je bloque. Et bien.