Como contar pacotes vindos de fora usando iptables? [duplicado]

2

Se você não der ao iptables um alvo, ele simplesmente conta quantos bytes e pacotes correspondem à regra. Gostaria de contar todos os pacotes que vêm de fora, ou seja, não correspondem a 10.0.0.0/8 e não correspondem a 192.168.0.0/16.

Minha primeira intuição é:

iptables -A INPUT ! -s 10.0.0.0/8,192.168.0.0/16

No entanto, isso adiciona duas regras, das quais cada conta separadamente, e nenhuma contagem de pacotes externos é perceptível. Então, como eu conto fora dos pacotes?

    
por Shelvacu 27.05.2015 / 22:53

1 resposta

3

Eu ficaria tentado a fazer algo assim criando uma cadeia. Em seguida, adicione regras à cadeia para retornar as coisas que você não quer. As coisas que duram até a regra final da cadeia serão as coisas que você quer.

# untested
# create a new input counter chain
/sbin/iptables -t filter -N inputcounter
# redirect all traffic to chain
/sbin/iptables -t filter -A INPUT -j inputcounter
# return stuff we don't want to count
/sbin/iptables -t filter -A inputcounter -s 10.0.0.0/8 -j RETURN
/sbin/iptables -t filter -A inputcounter -s 192.168.0.0/16 -j RETURN
# Final rule will return everything else.  This should be a count of 
# everything that wasn't not previously excluded
/sbin/iptables -t filter -A inputcounter -j RETURN
    
por 27.05.2015 / 23:10

Tags