Il problema è che FTP non usa solo la porta 21, perché usa due canali su due connessioni. Quale altra porta usa dipende se il server usa l'FTP attivo o passivo. Comunque usa solo TCP, chiudi pure l'UDP.
L'FTP attivo richiede che il client permetta al server di connettersi: il client fa una richiesta alla porta 21 del server (e indica su quale porta deve essere contattato), poi il server fa una connessione dalla sua porta 20 alla porta specificata dal client (di solito random e con numero alto), e questo richiede quindi regole su entrambe le macchine.
Con l'FTP passivo, il client fa una richiesta alla porta 21, il server risponde con una porta "effimera" random, di solito con un numero "alto", e il client si connette a quella porta. Entrambe le porte devono essere aperte. Alcuni server FTP permettono di specificare un range per le porte "effimere" (es: 5000-5100) cosicché sia necessario aprire solo quelle sul firewall (o router NAT) - ne vanno indicate e aperte un numero sufficiente per i client connessi.
Per questo motivo, e anche perché FTP trasmette tutto in chiaro (password comprese) se non si usano le versioni con SSL/TLS, spesso si preferiscono i protocolli SFTP o SCP dove sia possibile usare una connessione SSH, richiedendo la sola porta 22 aperta. Occhio però che SSH mette a disposizione una shell remota, se non è ben protetta possono essere guai.