Corrigir o acesso ao FTP do PC cliente Linux com firewall ativado
Hoje, gostaria de compartilhar minha experiência pessoal com acesso FTP no Linux. Graças aos novos sistemas operacionais da Microsoft, que não acho adequados para o uso diário, mudei para o Linux há alguns anos. Estou executando um servidor FTP na minha rede doméstica e não consegui acessá-lo do meu PC cliente em execução Linux, que tem regras de firewall para bloquear conexões de entrada, ou seja, a política de INPUT é definida como REJEITAR em iptables. Aqui está como eu consertei o problema.
Estou assumindo que a política de SAÍDA é ACEITADA nas máquinas cliente e servidor.
Solução # 1. Use o módulo do kernel nf_conntrack_ftp
O módulo do kernel nf_conntrack_ftp permite que você desbloqueie o acesso à porta necessária para o servidor FTP automaticamente sempre que você fizer uma conexão. O único requisito para este módulo é a seguinte linha em suas regras de iptables (geralmente é /etc/iptables/iptables.rules) no PC cliente:
$ IPT -A ENTRADA -i eth0 -m estado --estado RELACIONADO, ESTABELECIDO -j ACEITAR
Há eth0 é o nome do seu dispositivo de rede.
Em seguida, você precisa carregar o nf_conntrack_ftp se ele não estiver carregado. Execute o seguinte comando como root no PC cliente
# modprobe nf_conntrack_ftp
Se o seu servidor estiver usando alguma porta não padrão (diferente da porta 21), use o seguinte comando:
# modprobe nf_conntrack_ftp ports = your_port
Isso fornecerá uma conexão automática com todas as portas necessárias entre o servidor FTP e o software cliente. Isso funciona até que você reinicie o PC.
Para tornar esta mudança permanente, você precisa criar um novo arquivo de texto, /etc/modules-load.d/conntrack_ftp.conf, e adicionar a seguinte linha a este arquivo:
nf_conntrack_ftp
No caso de uma porta de servidor não padrão, você precisa criar um arquivo adicional, /etc/modprobe.d/conntrack_ftp.conf com o seguinte conteúdo:
opções nf_conntrack_ftp ports =
Isso deve ser o suficiente.
Solução # 2. Use um intervalo de portas passivas fixas
Se você não puder usar o módulo nf_conntrack_ftp, poderá definir um intervalo de porta fixa para o software do servidor FTP e abri-lo no PC cliente. Por exemplo, aqui está como isso pode ser feito para o aplicativo vsftpd.
- No arquivo de configuração do vsftpd, que geralmente é /etc/vsftpd.conf, adicione as seguintes linhas:
pasv_min_port = 5500. pasv_max_port = 6500
Isso deve ser feito no lado do servidor. Depois disso, você deve reiniciar o vsftpd.
- Em suas regras de iptables (geralmente é /etc/iptables/iptables.rules) no PC cliente, adicione a seguinte regra:
$ IPT -A INPUT -p tcp -s
--dport 5500: 6500 -j ACEITAR - Aplique as regras de iptables da seguinte forma:
# iptables-restore
É isso.