iptables corresponderá ao seguinte pacote de requisição ICMP como ESTABLISHED depois que o primeiro pacote de resposta for enviado

7

Ambiente de teste: CentOS 6.3 - kernel 2.6.32-279.el6.i686, iptables v1.4.7 Win7 < --- > CentOS O Windows está constantemente repetindo a solicitação de eco ICMP na taxa de 10pkt / s para o CentOS.

No iptables, eu adicionei as regras como abaixo para limitar a taxa do pacote de requisição icmp. Mas não funcionou. Porque depois que a primeira requisição ICMP recebida foi aceita pela primeira regra e meu host respondeu, toda a seguinte solicitação icmp será aceita pela segunda regra, que aceitará a requisição icmp recebida como pacote de estado ESTABLISHED. Eu acho que isso não faz sentido.

Euverifiqueio"Iptables Tutorial 1.2.2" e encontrei a declaração como abaixo. link

The reply packet is considered as being ESTABLISHED, as we have already explained. However, we can know for sure that after the ICMP reply, there will be absolutely no more legal traffic in the same connection. For this reason, the connection tracking entry is destroyed once the reply has traveled all the way through the Netfilter structure. In each of the above cases, the request is considered as NEW, while the reply is considered as ESTABLISHED.

No entanto, descobri que a entrada conntrack estava sempre em /proc/net/nf_conntrack após o envio da primeira resposta.

ipv4     2 icmp     1 24 src=192.168.56.1 dst=192.168.56.101 type=8 code=0 id=1 src=192.168.56.101 dst=192.168.56.1 type=0 code=0 id=1 mark=0 secmark=0 use=2

Acho que cada solicitação ICMP de entrada deve ser tratada como um estado NOVO NÃO ESTABELECIDO, até mesmo uma conexão icmp foi estabelecida.

Corrija-me se não entender a correspondência de estado de forma adequada.

    
por deepsky 22.12.2012 / 05:02

1 resposta

2

Como você sugere, o rastreamento de conexão obviamente registra sua "sessão" de ICMP e, portanto, considera que os pacotes estão no estado ESTABLISHED depois que uma viagem de ida e volta de pingue-pongue foi executada.

Para atingir seu objetivo de limitar as solicitações ICMP, mova a regra "descartar todos os outros ICMP" (terceira regra na captura de tela) logo abaixo da regra que aceita solicitações de eco com limitação de taxa. Desta forma, a regra ESTABLISHED não será considerada para pacotes ICMP.

No entanto, como os pacotes ICMP também são usados para comunicar vários problemas, recomendo que você adicione uma regra aceitando todos os pacotes icmp com um tipo outro que "echo-request" para ter certeza de que não obter problemas, por exemplo, com conexões TCP (como exemplo, "Conexão recusada" é comunicada usando ICMP). A regra que eu sugiro é:

iptables -A INPUT -p icmp ! --icmp-type echo-request -j ACCEPT

e coloque-o logo abaixo da regra de limitação de taxa que aceita solicitações de ECHO e logo acima da regra "descartar todos os outros ICMP".

    
por 21.02.2013 / 08:18