Si ton serveur FTP n'est pas connecté derrière un routeur, c'est a dire qu'il est directement sur internet, c'est a dire avec une adresse IP publique, je suppose que tu as activé le firewall. Sous linux il n'y en a qu un seul et il s'appelle netfilter.
Tu le configure via la commande iptables !
Les modules sont des "partie" du noyau que l'on "charge" pour ajouter des fonctionnalité.
Pour le ftp tu as plusieurs mode, actif/passif.
Les commandes FTP passe par une session TCP sur le port 21, les données autrement. LISTING génère des données donc n'utilise pas le 21 pour rapatrier les données.
Ce que je te dis, c'est d'ouvrir le port 21, et de charger les modules liés a netfilter pour le suivit de connection.
ces modules sont
ip_conntrack et ip_conntrack_ftp
tu rajoutes ensuite des regles avec iptables pour autoriser le trafic "NEW" "RELATED" "ESTABLISHED" en sortie et seulement NEW pour le port 21 en entrée et RELATED/ESTABLISHED pour le reste en entrée
Il existe beaucoup de doc pour cela sur le net.