snort: a regra drop icmp na verdade não elimina pacotes

2

Instalei o snort-2.9.7 a partir de fontes e iniciei como IDS:

% snort -devQ -A console -c /etc/snort/snort.conf -i eth0:eth1
Enabling inline operation
Running in IDS mode
...

O arquivo de configuração é muito trivial:

#
var RULE_PATH rules
# Set up the external network addresses. Leave as "any" in most situations
ipvar EXTERNAL_NET any
# Setup the network addresses you are protecting
ipvar HOME_NET [10.10.10.0/24]
config daq: afpacket
config daq_mode: inline
config policy_mode:inline
include $RULE_PATH/icmp.rules

A regra em icmp.rules também é simples para fins de teste:

block icmp 10.10.10.2 any <> 10.10.10.1 any (msg:"Blocking ICMP Packet from 10.10.10.2"; sid:1000001; rev:1;)

No host onde o Snort está rodando, a interface eth0 tem o endereço 10.10.10.1, no entanto, quando eu mando o ping 10.10.10.1 de outro host, os pacotes icmp não são descartados pelo Snort e as respostas icmp geram:

WARNING: No preprocessors configured for policy 0.
02/27-15:04:40.623763  [Drop] [**] [1:1000001:1] Blocking ICMP Packet from 10.10.10.2 [**] [Priority: 0] {ICMP} 10.10.10.2 -> 10.10.10.1

O que significa aviso? Estou fazendo algo errado?

    
por Mark 27.02.2015 / 04:27

1 resposta

1

Substitua sua regra icmp pelo seguinte:

reject icmp 10.10.10.2 any <> 10.10.10.1 any (msg:"Blocking ICMP Packet from 10.10.10.2"; sid:1000001; rev:1;)

Observe que não há uma ação de regra de snort chamada block . Use reject ou drop . Para mais informações, consulte esta página de manual .

ATUALIZAÇÃO:

Não sei se você pode colocar mais de uma interface no comando snort . Tente executar duas instâncias de snort , uma para cada interface de rede, ou use a outra abordagem explicada aqui .

    
por 27.02.2015 / 21:31