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.
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.
Respostas:
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 ;-)
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.
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.