需要注意的几点:
1) 此规则缺少秒值。你需要指定一个超时值,你目前有“秒;” 你需要像“seconds 5;”这样的东西。由于这是无效的,我不确定 snort 何时真正会生成警报,这意味着它可能只是丢弃所有 icmp 数据包,但不会生成任何警报。
2) 此规则将丢弃 itype 8 的每个 icmp 数据包。阈值仅指定何时发出警报,而不是何时丢弃。因此,这将丢弃所有匹配的数据包,然后每丢弃 20 个数据包生成 1 个警报。请参阅此处的规则阈值手册。
3) 如果您没有在 inline 模式下配置 snort,您将无法实际阻止任何数据包。在此处查看有关三种不同模式的更多信息。
如果您只想检测和丢弃 ping 洪水,您可能应该将其更改为使用detection_filter选项,而不是阈值。如果您想允许合法 ping 并丢弃 ping 泛洪,您不想使用阈值,因为您编写此规则的方式将阻止所有 icmp itype 8 数据包。如果您使用 detection_filter,您可以编写一个规则,如果 snort 在 5 秒内看到来自同一源主机的 20 次 ping,则丢弃。以下是您的规则可能如下所示的示例:
drop icmp any any -> any any (itype:8; detection_filter:track by_src, count 20, seconds 5; sid:100121)
如果 snort 在 5 秒内看到来自同一源主机的 20 次 ping,那么它将丢弃并生成警报。在此处查看检测过滤器的 snort 手册。
使用此配置,您可以允许网络上的合法 ping 并阻止来自同一源主机的 ping 泛洪。