Support du FTP passif sur un serveur protégé par iptables/netfilter

septembre 04, 2009  |   Blog   |     |   Commentaires fermés sur Support du FTP passif sur un serveur protégé par iptables/netfilter

Dans le mode « actif » (ou plus rigoureusement « non-passif »), c’est le client qui fournit les ports TCP (via la commande PORT) sur lesquels doit se connecter le serveur pour transférer les données ou les listings (on parle de connexions DATA, par opposition à la connexion sur le port 21 qui est dite COMMAND).

En mode passif, c’est le serveur qui propose ces ports TCP au client (qui a activé le mode passif via la commande PASV) : le client se connecte sur des ports TCP dynamiques.

Dans les 2 cas, les firewalls vont bloquer les connexions sur ces ports dynamiques, à moins qu’ils ne soient équipés d’un module qui inspecte le contenu de ces fameuses commandes FTP PORT pour en déduire les ports TCP utilisés par les connexions DATA.

La différence -a priori – c’est qu’en mode passif si le firewall du client laisse passer les connexions sortantes sans filtrer, les connexions DATA fonctionneront.
En mode actif, c’est au client d’accepter des connexions dynamiques de la part de l’extérieur, ce que son firewall (ou sa configuraiton de NAT/PAT) refusera généralement : on peut bien se connecter mais les transferts DATA seront toujours en échec…

Sur un serveur Linux équipé d’iptables/netfilter, il suffit d’activer le module ip_conntrack_ftp ainsi :
# /sbin/modprobe ip_conntrack_ftp

Les commentaires sont fermés.