My IPTables rules are as follows:
# Generated by iptables-save v1.4.4 on Mon Aug 23 18:34:35 2010
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [9356:4246018]
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 6685 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8000 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8089 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 20 -j ACCEPT
-A INPUT -j DROP
COMMIT
This is blocking FTP which I'm not sure why. FTP is indeed on port 21 as it as not been changed. I'm using VSFTPD. When I clear all IPTables rules I am able to use FTP just fine.
-A INPUT -j DROP
should come before the ftp rules.