我似乎找不到这个问题的答案。存在很多类似错误的主题,但它们都是基于 Linux 的。
我遇到的问题是,当尝试运行 Snort (snort.exe -v -I) 时,它不会捕获任何内容,但我认为这是因为我没有设置接口。运行 snort.exe -W 后,我找到了要使用的接口并在命令行中指定了它,但我收到以下错误 - ERROR: Can't set DAQ BPF filter to '2'.
我暂时跳过了这个错误,尝试使用 -T 和 -c 测试 Snort 以指定配置文件,但它给出了以下错误 - 缺少/不正确的动态引擎库说明符。我在配置文件中找到这一行并将其从 /usr/local/snort_dynamicengine/libsf_engine.so 更改为 c:\Snort\lib\snort_dynamicengine\sf_engine.dll(正确的路径和文件名)但是错误仍然存在。
我记得几个月前在 Windows Server 2012 部署上安装 Snort,完全没有问题。
知道是什么导致了这个错误吗?
注意:我还更正了其他路径,即规则。
我刚刚也有这个问题,解决它删除一个 /
ERROR:: c:\snort\etc\snort.conf (246) Missing/incorrect dynamic engine lib specifie.
所以我编辑:
dynamicpreprocessor directory c:\snort\lib\snort_dynamicpreprocessor\ <---*
这个“\”错了
我知道答案晚了,但我还是遇到了这个问题,我认为应该提供一个有效的答案。无论如何,问题是基于路径的,所有 snort.conf 文件都是相对于 linux 特定位置的路径。所以这是第一个问题,第二个问题是 snort 解析你在 -c 选项中给它的任何路径并将它添加到所有规则路径(我知道,很奇怪)如果你(和大多数 Windows 用户)使用,这不应该发生绝对路径。所以我想到的解决方案是:
请注意,每一个路径都是错误的,下面的代码片段只帮助您前进一步,在此之后,您需要更正所有文件路径。
在你的 snort.conf 文件中(通常是 c:\snort tc\snort.conf)
###################################################
# Step #4: Configure dynamic loaded libraries.
# For more information, see Snort Manual, Configuring Snort - Dynamic Modules
###################################################
# path to dynamic preprocessor libraries
dynamicpreprocessor directory C:\Snort\lib\snort_dynamicpreprocessor
# path to base preprocessor engine
dynamicengine C:\Snort\lib\snort_dynamicengine\sf_engine.dll
# path to dynamic rules libraries
# dynamicdetection directory /usr/local/lib/snort_dynamicrules
记住规则
始终使用适当的文本编辑器来编辑配置文件,例如this,因为有时当您在记事本中复制和粘贴代码并进行编辑时,会在文本中添加一些额外的空格,这会导致字节数增加或更改代码语句。 好消息是一些编辑器提供了正确的行号,因此您可以在命令提示符下轻松导航到 snort 显示的错误。
解决方案
在我的场景中
因为这个
这是因为后面加了一些空格
将不正确的代码语句留在下一行并且 这将在执行 snort 期间被读取,因为这不再是注释,因为 > 你从标记为 #(每行)的注释部分中取出它,这是由于你在一些代码中复制和粘贴代码时添加的空格可怜的编辑。
去除空格后
最后动态引擎线应该看起来像这样让它工作
请检查任何 Microsoft Windows 7+ 操作系统的第 4 步的正确内容应如下所示(如有必要,调整绝对路径):
###################################################
# Step #4: Configure dynamic loaded libraries.
# For more information, see Snort Manual, Configuring Snort - Dynamic Modules
###################################################
# path to dynamic preprocessor libraries
# dynamicpreprocessor directory /usr/local/lib/snort_dynamicpreprocessor/
dynamicpreprocessor directory C:\snort\lib\snort_dynamicpreprocessor
# path to base preprocessor engine
# dynamicengine /usr/local/lib/snort_dynamicengine/libsf_engine.so
dynamicengine C:\snort\lib\snort_dynamicengine\sf_engine.dll
# path to dynamic rules libraries
# dynamicdetection directory /usr/local/lib/snort_dynamicrules
# dynamicdetection directory C:\snort\lib\snort_dynamicrules (# under Microsoft Windows)
还要注意以下各项的正确值:
ipvar HOME_NET 192.168.1.1/24
或 ipvar HOME_NET 192.168.0.0/16
或者,基本上,ipvar HOME_NET any
)ipvar EXTERNAL_NET !$HOST_NET
对我不起作用,所以我把它留在了 ipvar EXTERNAL_NET any
)另外,必须定义白名单和黑名单目录:
# If you are using reputation preprocessor set these
# Currently there is a bug with relative paths, they are relative to where snort is
# not relative to snort.conf like the above variables
# This is completely inconsistent with how other vars work, BUG 89986
# Set the absolute path appropriately
# var WHITE_LIST_PATH ../rules
var WHITE_LIST_PATH C:\snort\whitelist_rules
# var BLACK_LIST_PATH ../rules
var BLACK_LIST_PATH C:\snort\blacklist_rules
请注意,您必须自己
mkdir
这些目录。
此外,您需要在这些目录中定义(甚至是空的)文件:
touch C:\snort\whitelist_rules\white_list.rules
touch C:\snort\blacklist_rules\black_list.rules
尽管您似乎可以命名任意目录名称,但文件名必须对应于提到的
white_list.rules
和black_list.rules
(注意下划线)。
就我个人而言,对我来说最好和最鼓舞人心的“HOWTO”是这篇文章:
我的 snort 调用字符串(来自批处理文件)如下所示:
snort.exe -A console -i 15 -c C:\snort\etc\snort.conf -l C:\snort\log -K pcap
。 -K pcap
确定可以由 Wireshark 导入并进一步分析的输出格式。 -i 15
特定于我的设置(15 = Wi-Fi)- 在 Microsoft Windows 下使用 snort.exe -W
和在 Linux 下使用 snort -w
检查。
你们中的很多人不会喜欢我的建议但是请不要尝试在Windows中打鼾因为它会让我陷入错误的困境。在 Windows 中,这些家伙(snort 公司)没有正确使用斜杠路径,我不得不注释掉许多其他的东西,很多文件和目录也丢失了