TL; TR: FTP é um protocolo quebrado e FTPS mais. Devido a uma combinação de design de protocolo e criptografia, ele é muito ruim junto aos firewalls. Tente usar o SFTP (ou seja, transferência de arquivos pelo protocolo SSH).
O FTP consiste em uma conexão de controle (geralmente a porta 21) e as conexões de dados. Quais portas são usadas pelas conexões de dados são trocadas dinamicamente dentro da conexão de controle. No modo ativo, os clientes ouvem o IP / porta fornecido dentro do comando PORT ou EPRT e o servidor se conecta ao cliente. No modo passivo, o servidor escuta em IP / port dada em resposta ao comando PASV ou EPSV e o cliente se conecta ao servidor.
Uma maneira de lidar com esse tipo de porta dinâmica em uma configuração de firewall é manter uma ampla variedade de portas abertas. Isso obviamente contradiz a idéia de usar um firewall para restringir a superfície de ataque o máximo possível. Assim, a maioria dos firewalls oferece alguns "ajudantes" que inspecionam a conexão de controle e descobrem quais portas são usadas para as conexões dinâmicas, para que possam criar regras de filtro de pacote correspondentes sob demanda. Com o iptables isso é feito dentro de ip_conntrack_ftp. Isso é o que você está tentando agora.
Infelizmente, o uso de tais ajudantes significa que o firewall deve ser capaz de ler o tráfego dentro da conexão de controle. Se você não usar FTP simples não criptografado, isso é possível. Mas com FTP + TLS, a conexão de controle é criptografada e, portanto, o auxiliar não consegue extrair as informações necessárias para abrir as portas sob demanda. Em teoria, há uma maneira de lidar com isso usando o TLS somente para transferir a parte de autorização, mas depois desativar a criptografia novamente (comando FTPS CCC), mas isso precisaria ser suportado e usado pelo cliente.
Assim, se possível, evite FTP e FTPS e use SFTP. Esta é a transferência de arquivos através do protocolo SSH e usa apenas uma única porta, o que facilita a configuração restritiva do firewall.