Você pode querer adicionar ip_nat_ftp
à sua lista, além de garantir que tudo está sendo carregado usando o comando lsmod
É um servidor doméstico, de algum provedor de internet? Se assim você pode estar tendo um problema comum, onde geralmente os provedores de internet bloqueiam as portas de 1 a 1024 de seus usuários residenciais para que eles não criem servidores domésticos (este approch é usado em vários países afaik).
Se esse não for o caso, verifique se você definiu ip_forward também.
sudo echo "1" > /proc/sys/net/ipv4/ip_foward
Firewall (iptables)
# Allow FTP connections @ port 21
iptables -A INPUT -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
# Allow Active FTP Connections
iptables -A INPUT -p tcp --sport 20 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp --dport 20 -m state --state ESTABLISHED -j ACCEPT
# Allow Passive FTP Connections
iptables -A INPUT -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 1024: --dport 1024: -m state --state ESTABLISHED -j ACCEPT
Você disse Somehow it is allowing me to access port 21 at the moment.
, pode fazer o download ou fazer o upload de alguma coisa? se assim for, então como deve ser visto abaixo:
FTP ativo
No modo ativo FTP, o cliente se conecta de uma porta aleatória não privilegiada (N > 1023) à porta de comando do servidor FTP, porta 21. Em seguida, o cliente começa a escutar a porta N + 1 e envia o comando FTP PORT N + 1 para o servidor FTP. O servidor então se conectará de volta à porta de dados especificada do cliente a partir de sua porta de dados local, que é a porta 20.
Do ponto de vista do firewall do lado do servidor, para suportar o modo FTP ativo, os seguintes canais de comunicação precisam ser abertos:
* FTP server's port 21 from anywhere (Client initiates connection)
* FTP server's port 21 to ports > 1023 (Server responds to client's control port)
* FTP server's port 20 to ports > 1023 (Server initiates data connection to client's data port)
* FTP server's port 20 from ports > 1023 (Client sends ACKs to server's data port)
FTP passivo
Para resolver o problema do servidor que iniciou a conexão com o cliente, um método diferente para conexões FTP foi desenvolvido. Isso era conhecido como modo passivo, ou PASV, após o comando usado pelo cliente para informar ao servidor que está no modo passivo.
No FTP de modo passivo, o cliente inicia ambas as conexões com o servidor, resolvendo o problema de firewalls que filtram a conexão da porta de dados de entrada para o cliente do servidor. Ao abrir uma conexão FTP, o cliente abre duas portas aleatórias não privilegiadas localmente (N > 1023 e N + 1). A primeira porta entra em contato com o servidor na porta 21, mas em vez de emitir um comando PORT e permitir que o servidor se conecte novamente à porta de dados, o cliente emitirá o comando PASV. O resultado disso é que o servidor abre uma porta aleatória sem privilégios (P > 1023) e envia o comando PORT P de volta ao cliente. O cliente então inicia a conexão da porta N + 1 para a porta P no servidor para transferir dados.
Do ponto de vista do firewall do lado do servidor, para suportar o FTP no modo passivo, os seguintes canais de comunicação precisam ser abertos:
* FTP server's port 21 from anywhere (Client initiates connection)
* FTP server's port 21 to ports > 1023 (Server responds to client's control port)
* FTP server's ports > 1023 from anywhere (Client initiates data connection to random port specified by server)
* FTP server's ports > 1023 to remote ports > 1023 (Server sends ACKs (and data) to client's data port)