snort ips规则-拒绝工作,但drop和sdrop不起作用



我尝试将snort作为IPS运行。因此,我通过apt-get在ubuntu服务器上安装了snort,并将daq_type配置为afpacket,将daqmode设置为inline。和2接口类似eth1:eth2,然后我编写了一个测试的规则

reject tcp any any -> any any (sid: 1000005;)

它工作,但当我把它改为时

drop tcp any any -> any any (sid: 1000005;)

它不起作用。当我把action改为sdrop时,结果是一样的。我从源代码安装了snort,但结果是一样的。你能帮我写出真正的规则吗?

Snort可以在三种不同的模式下运行,即tap(被动)、inline和inline测试。如果你想使用丢弃规则来丢弃数据包,你需要确保你在内联模式下运行。从外观上看,您可能没有处于联机模式。"拒绝"之所以有效,是因为它将为TCP发送重置,这将停止该流的其余部分,或者它将为UDP发送ICMP端口无法访问的消息。请参阅snort手册中的以下说明(http://manual.snort.org/node29.html)关于规则头:

丢弃并记录数据包

reject-阻止数据包,记录它,然后如果协议是TCP则发送TCP重置消息,如果协议是UDP则发送ICMP端口不可达消息。

sdrop-阻止数据包,但不记录。

如果snort没有以内联模式运行,它实际上不会丢弃数据包,它只会生成一个警报(用于丢弃)并传递数据包。

请参阅snort手册中关于三种模式的以下内容:http://manual.snort.org/node11.html#SECTION00295100000000000000具体来说,内联模式描述如下:

当Snort处于内联模式时,它充当IPS,允许触发丢弃规则。可以使用命令行参数-Q和Snort-config选项policy_mode将Snort配置为在内联模式下运行,如下所示:

snort -Q
config policy_mode:inline

您需要确保中的"configpolicy_mode:inline"行是snort.conf,并且在运行snort时传递"-Q"选项。如果这两个都不做,它就不会下降。希望这能有所帮助!

最新更新