Compreendendo o rastreamento de conexões no iptables

4

Depois de algum esclarecimento sobre o estado / acompanhamento de conexão no iptables.

  • Qual é a diferença entre essas duas regras?

    iptables -A FORWARD -m state - state ESTABELECIDO, RELACIONADO -j ACCEPT

    iptables -A FORWARD -m conntrack --ctstate ESTABELECIDO, RELACIONADO -j ACEITAR

    Ambos parecem carregar o módulo nf_conntrack quando um estado -m ou -m conntrack é especificado. Ambas as opções ativam o rastreamento de estado ou conexão.

Nota: Eu não estou perguntando o que conntrack faz, estou perguntando se eles são equivalentes. Eu já sei que o módulo conntrack tem mais recursos.

  • Se o acima for equivalente, você precisa usar a versão conntrack ao usar conntrackd?

  • O rastreamento de conexão é ativado quando um pacote é correspondido pela primeira vez, contendo -m state - state BLA, ou o rastreamento de conexão está sempre ativo para todos os fluxos de tráfego?

    por exemplo. No FreeBSD PF você especifica keepstate em uma regra para rastrear o estado. O mesmo não acontece com o netfilter? isto é, está ligado para todos os fluxos assim que o módulo é carregado?

  • O rastreamento de conexão de Can / Should pode ser usado para correspondência rápida, como abaixo? Se não for usado como abaixo, isso não significaria que o firewall percorreria o conjunto de regras novamente procurando uma correspondência para o pacote em vez de apenas atingir a primeira regra ESTABLISHED? [muitos exemplos não parecem fazer uso disso se verdadeiro]

por exemplo. suponha que isso seja algum tipo de roteador / firewall (no nat).

# Default DROP policy
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

# Drop invalid
iptables -A FORWARD -m state --state INVALID -j DROP

# Accept established,related connections
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# Allow ssh through, track connection 
iptables -A FORWARD -p tcp --syn --dport 22 -m state --state NEW -j ACCEPT
  • Quando a tabela conntrack for preenchida, seu firewall começará a negar o tráfego ou as regras que não tiverem estado sobre elas ainda funcionarão. Nesse caso, eu não deveria DROP os pacotes com o estado INVALID, correto?

Veja aqui: Atire você mesmo no pé com o iptables e o auto-carregamento do kmod

    
por Matt 26.11.2012 / 23:59

1 resposta

1

A primeira pergunta é o que é conntrack . Este é o site para ferramentas conntrack . Com isso em mente, o que o estado faz?

The State Match

The most useful match criterion is supplied by the state' extension, which interprets the connection-tracking analysis of the ip_conntrack' module. This is highly recommended.

Specifying -m state' allows an additional--state' option, which is a comma-separated list of states to match (the '!' flag indicates not to match those states). These states are:

NEW A packet which creates a new connection.

ESTABLISHED A packet which belongs to an existing connection (i.e., a reply packet, or outgoing packet on a connection which has seen replies).

RELATED A packet which is related to, but not part of, an existing connection, such as an ICMP error, or (with the FTP module inserted), a packet establishing an ftp data connection.

INVALID A packet which could not be identified for some reason: this includes running out of memory and ICMP errors which don't correspond to any known connection. Generally these packets should be dropped.

An example of this powerful match extension would be:

# iptables -A FORWARD -i ppp0 -m state ! --state NEW -j DROP

Perguntas de firewall sobre estado e política?

Portanto, para responder à pergunta, conntrack é para uso com o kit de ferramentas conntrack e substitui o estado a esse respeito. É melhor do que estado se você estiver planejando usar o kit de ferramentas conntrack.

O rastreamento de conexão está ativado para fluxos de tráfego. Ele tenta constantemente corresponder fluxos a regras.

A resposta que se segue para a pergunta 2 é, sim, use conntrack

Para responder à pergunta 3, qual caso? A resposta para o estado está na definição acima.

A resposta é 4, conntrack é para uso com o kit de ferramentas conntrack e estado, para não usar o kit de ferramentas. Sim, você pode usar o conntrack sem penalidade sobre o uso do estado com o seu exemplo.

    
por 27.11.2012 / 05:27