Para configurar o modo passivo para o vsftpd, você precisa definir alguns parâmetros no vsftpd.conf.
pasv_enable=Yes
pasv_max_port=10100
pasv_min_port=10090
Isso ativa o modo passivo e restringe o uso das onze portas para conexões de dados. Isso é útil, pois você precisa abrir essas portas no seu firewall.
iptables -I INPUT -p tcp --destination-port 10090:10100 -j ACCEPT
Se depois de testar isso tudo funcionar, salve o estado do seu firewall com
service iptables save
que atualizará o /etc/sysconfig/iptables
arquivo.
Para fazer isso no CentOS 7, você precisa usar o novo firewalld, não o iptables:
Encontre sua zona:
# firewall-cmd --get-active-zones
public
interfaces: eth0
Minha zona é 'pública', então eu defino minha zona como pública, adiciono o intervalo de portas e depois recarregamos:
# firewall-cmd --permanent --zone=public --add-port=10090-10100/tcp
# firewall-cmd --reload
O que acontece quando você faz uma conexão
Seu cliente faz uma conexão com o servidor vsftpd na porta 21.
O servidor responde ao cliente informando a qual porta se conectar a partir do intervalo especificado acima.
O cliente faz uma conexão de dados na porta especificada e a sessão continua.
Há uma ótima explicação dos diferentes modos de FTP aqui.
max
porta após omin
... mas mais importante, se você abrir as portas 10090 a 10100, isso significa 11 portas e não 10 como você diz.