O rastreamento de conexão FTP do iptables não funciona

O rastreamento de conexão FTP do iptables não funciona

Espero que alguém possa me indicar a direção certa aqui, por favor.

Executando proftpd (com suporte tls) em um IP público.

O cliente FTP se conecta, mas não consegue fazer uma listagem de diretórios. Quando altero a política "INPUT" no iptables para ACCEPT, ela funciona.

A seguir estão minhas regras relevantes do iptables:

$IPTABLES -A INPUT -i eno1 -s 0/0 -d x.x.x.x -p tcp --sport 1024:65535 -m multiport --dports 20,21,989,990 -m state --state NEW,ESTABLISHED -j ACCEPT
$IPTABLES -A INPUT -p tcp -s 0/0 --sport 1024:65535 -d x.x.x.x --dport 1024:65535 -m state --state ESTABLISHED,RELATED -j ACCEPT

Eu tenho os módulos connection_tracking habilitados.

server ~ # lsmod | grep nf_conntra
nf_conntrack_ftp       24576  3
nf_conntrack          176128  8 xt_conntrack,nf_nat,xt_state,xt_nat,xt_helper,nf_conntrack_ftp,xt_CT,xt_MASQUERADE
nf_defrag_ipv6         24576  1 nf_conntrack
nf_defrag_ipv4         16384  1 nf_conntrack
libcrc32c              16384  2 nf_conntrack,nf_nat

Eu também tenho nf_conntrack_helper habilitado em/proc

server ~ # cat /proc/sys/net/netfilter/nf_conntrack_helper
1

Responder1

proftpd (com suporte tls)

Esse suporte TLS é provavelmente o culpado.

Normalmente em um firewall inteligente quando você permite o FTP você precisa abrir a porta para a conexão de controle, TCP 21 e então, no protocolo FTP de texto não criptografado, os módulos conntrack podem procurar e detectar a PORTresposta. Um módulo auxiliar FTP conntrack abrirá automaticamente o número da porta que é atribuído pelo servidor FTP a esse cliente específico, conforme relacionado, permitindo sair do controle de acesso granular.

Quando a conexão é criptografada com TLS, o firewall não consegue mais detectar a resposta PORT e, portanto, não abre automaticamente a porta atribuída. A solução para isso é:

  • corrigir o intervalo de portas que o servidor FTP usará para conexões passivas em um pequeno intervalo
    PassivePorts min-pasv-port max-pasv-port

  • no seu firewall abra a porta 21 e aquele intervalo fixo de portas para conexões de dados

informação relacionada