snort:drop icmp规则并不实际丢弃数据包

我从源代码安装了snort-2.9.7,并以IDS身份启动:

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

configuration文件是非常微不足道的:

 # 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 

icmp.rules中的规则也很简单,用于testing目的:

 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;) 

在运行Snort的主机上,eth0接口的地址为10.10.10.1,但是当我从另一台主机发送ping 10.10.10.1时,icmp数据包不会被Snort丢弃,icmp会生成:

 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 

警告是什么意思? 难道我做错了什么?

用下面的代替你的icmp规则:

 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;) 

请注意,没有snort规则操作称为 。 使用拒绝放弃 。 有关更多信息,请参阅此手册页 。

更新:

我不确定你可以在你的snort命令中join多个接口。 尝试运行两个snort实例,一个用于每个networking接口,或者使用在此解释的其他方法。