Iptables, qual é a diferença entre -m state e -m conntrack?

48

Qual é a diferença prática entre:

iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

e

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

Qual é o melhor para usar?

Obrigado.

Bourne
fonte
9
Observe que, para o Linux Kernel 3.7 e posterior, o estado foi removido. Somente o conntrack está disponível.
Sr. X
Estou executando o 3.10.0 e estado ainda é suportado ...
1
O estado foi descontinuado em favor do conntrack e pode ou não ser compilado dependendo de como o seu kernel foi construído.
Michael Hampton

Respostas:

26

Ambos usam os mesmos componentes internos do kernel abaixo (subsistema de rastreamento de conexão).

Cabeçalho do xt_conntrack.c:

xt_conntrack - Netfilter module to match connection tracking
information. (Superset of Rusty's minimalistic state match.)

Então, eu diria - o módulo state é mais simples (e talvez menos propenso a erros). Também é mais longo no kernel. O Conntrack do outro lado tem mais opções e recursos [1].

Minha chamada é usar o conntrack se você precisar de recursos, caso contrário, atenha-se ao módulo de estado.

Pergunta semelhante no maillist do netfilter.

[1] Bastante útil, como roteamento "-m conntrack --ctstate DNAT -j MASQUERADE" / correção de DNAT ;-)

Kupson
fonte
8

Não há diferença no resultado dessas duas regras. As duas extensões de correspondência usam os mesmos dados para corresponder ao estado de rastreamento de conexão. state é a extensão de correspondência "antiga" e o conntrack é mais recente e tem muito mais opções do que apenas corresponder ao estado de rastreamento de conexão.

lsmooth
fonte
1

Iptables Doc

Como a documentação diz:

A correspondência conntrack é uma versão estendida da correspondência de estado, que possibilita a correspondência de pacotes de uma maneira muito mais granular. Vamos examinar as informações diretamente disponíveis no sistema de rastreamento de conexões, sem nenhum sistema de "front-end", como na correspondência de estado. Para obter mais informações sobre o sistema de rastreamento de conexão, consulte o capítulo A máquina de estados.

ki0
fonte
referência não está a funcionar mais
Prosti