Como o Netfilter entende que o pacote está RELACIONADO?

2

conntrack módulo de correspondência --ctstate argumento suporta RELATED estado do pacote. Como o Netfilter sabe que, por exemplo, no caso de FTP ativo, uma conexão da porta de dados do servidor FTP (porta TCP 20) para a porta de dados não privilegiada especificada anteriormente pelo cliente é uma RELATED connection? O Netfilter tem alguns módulos onde cada protocolo, que é suportado por RELATED , é descrito? Por último, mas não menos importante, existe uma lista de protocolos que são suportados por este estado RELATED ?

    
por Martin 05.05.2016 / 01:15

1 resposta

2

Vários pacotes ICMP (Internet Control Message Protocol) podem estar "relacionados" com a conexão de alguns protocolos (ou uma tentativa de fazer isso), mas esses pacotes ICMP são diferentes do protocolo que os causou, daí a noção "relacionada". Isso pode acontecer quando um host ou firewall rejeita uma tentativa de conexão TCP ou UDP com um pacote ICMP de destino inacessível; permitindo que RELATED permita que o pacote ICMP relacionado seja usado. (O TCP tem um RST, portanto pode ou não emitir uma resposta ICMP relacionada e os administradores do firewall podem ou não permitir respostas do ICMP ...)

Os protocolos de nível de aplicação (como o FTP) precisarão de um módulo personalizado, já que o código personalizado é necessário para entrar nos pacotes e descobrir se e como se relaciona com qualquer outra coisa que o netfilter conheça. Esses módulos podem ser escritos por qualquer pessoa para qualquer aplicativo, embora inspecionar quais arquivos nf_conntrack_* estejam disponíveis pode ser um bom ponto de partida para uma lista:

% print -l /lib/modules/3.10.0-327.13.1.el7.x86_64/kernel/net/netfilter/nf_conntrack_*(:t)
nf_conntrack_amanda.ko
nf_conntrack_broadcast.ko
nf_conntrack_ftp.ko
...
    
por 05.05.2016 / 02:42

Tags