Ecco il documento a cui rimando le persone in modo che possano seguire il protocollo FTP:http://slacksite.com/other/ftp.html
- Per eseguire l'FTP in modalità attiva, devi consentire le connessioni in entrata alla porta TCP 21 e le connessioni in uscita dalla porta 20.
- Per eseguire l'FTP in modalità passiva, è necessario consentire le connessioni in entrata alla porta TCP 21 e le connessioni in entrata a una porta generata casualmente sul computer server (è necessario utilizzare un modulo conntrack in netfilter)
Non hai nulla riguardo:la tua catena OUTPUT nel tuo post, quindi includerò anche quella qui. Se la tua catena OUTPUT è default-drop, questo è importante.
Aggiungi queste regole alla configurazione di iptables:
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 20 -j ACCEPT
Per supportare l'FTP in modalità passiva, quindi, è necessario caricare il modulo ip_conntrack_ftp all'avvio. Rimuovere il commento e modificare la riga IPTABLES_MODULES nel file /etc/sysconfig/iptables-config in modo che legga:
IPTABLES_MODULES="ip_conntrack_ftp"
Salva la configurazione di iptables e riavvia iptables.
service iptables save
service iptables restart
Per escludere completamente VSFTPD come un problema, arresta VSFTPD, verifica che non sia in ascolto sulla porta 21 con un "netstat -a" e quindi esegui un :
nc -l 21
Questo avvierà netcat in ascolto sulla porta 21 e farà eco all'input nella tua shell. Da un altro host, TELNET alla porta 21 del tuo server e verifica di ottenere una connessione TCP e di vedere l'output nella shell quando digiti la connessione TELNET.
Infine, ripristina VSFTPD, verifica che sia in ascolto sulla porta 21 e riprova a connetterti. Se la connessione a netcat ha funzionato, le regole di iptables vanno bene. Se la connessione a VSFTPD non funziona dopo che netcat funziona, allora c'è qualcosa che non va nella tua configurazione VSFTPD.