4

我尝试将 snort 作为 IPS 运行。所以我通过 apt-get 在 ubuntu 服务器上安装 snort并将daq_type配置为afpacket并将daq_mode配置为inline。和2 个接口,如eth1:eth2 然后我编写一个测试规则

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

它可以工作,但是当我将其更改为

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

这没用。当我将动作更改为 sdrop 时,结果是相同的。我从源代码安装了 snort,但结果是一样的。你能帮忙写出真正的规则吗?

4

1 回答 1

11

Snort 可以在三种不同的模式下运行,即点击(被动)、内联和内联测试。如果您想使用丢弃规则来丢弃数据包,您需要确保您在内联模式下运行。从外观上看,您可能不在内联模式下。“拒绝”起作用的原因是因为它会为 TCP 发送一个重置,这将停止该流的其余部分,或者它会为 UDP 发送一个 ICMP 端口不可达消息。请参阅 snort 手册 ( http://manual.snort.org/node29.html ) 关于规则标题的以下解释:

drop - 阻止并记录数据包

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

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

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

三种模式见snort手册如下:http://manual.snort.org/node11.html#SECTION00295100000000000000 具体内联模式描述如下:

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

snort -Q
config policy_mode:inline

您需要确保“config policy_mode:inline”行是您的 snort.conf,并且当您运行 snort 时,您传递了“-Q”选项。如果这两个都没有完成,它不会下降。希望这可以帮助!

于 2014-03-19T02:39:12.353 回答