FTP sur UDP, peu probable !! Ca vient d'ailleurs !
Le port 20 ne devrait jamais être naté en entrée,c'est qu'on ne connait pas le fonctionnement du protocol !
-> En entrée on NAT et autorise port 21 et range ports passifs
-> En sortie on autorise le serveur à sortir avec en port source le 20 et en destination 1024-65535.
Pour rappel, en FTP, le client se connecte au serveur sur le port 21, c'est le canal de commandes, puis il y a deux modes possibles pour la transmission de données:
actif : c'est le serveur qui établi le canal de données en direction du client, avec une connexion TCP émise de son port 20 (si respect RFC) en direction du client sur un port > 1024
passif : c'est le client qui établi le canal de données en direction du serveur, avec une connexion TCP émise d'un port > 1024 en direction d'un port du serveur > 1024 ( dans la fameuse range passive)
Attention en mode passif, le serveur indique au client l'IP et le Port sur lequel il doit se connecter avec la commande PORT, si le serveur est en IP privée derrière un NAT, il faut lui renseigner un parametre pour qu'il connaisse l'IP publique sur laquelle il est publié, avec d'utiliser celle-ci dans les commandes PORT et non son IP privée….
FTP c'est archaïque mais bon, toujours utilisé...
Un serveur devrait savoir travailler dans les deux modes pour être sûr de servir n'importe quel client.
Maintenant sur Internet, à cause du NAT (eh oui peu de clients sont en IP publique directe avec ports ouverts), la plupart des clients passent en passifs.
Dans le cas d'une connexion active, il faut que le modem/routeur/firewall du client possède un ftp helper pour recevoir et accepter la demande de connexion de données en provenance du serveur (port 20 en source !)