我在afpacket类型的内联模式下安装和配置snort。我没有规则测试它,并且只用一个规则和更多规则测试。但结果是一样的。我的snort性能太低了。
当我使用通过(brctl)创建的系统桥时,我可以使用完整的网络绑定宽度和我的CPU使用率大约为零。
虽然我在系统网桥后面的被动模式(IDS)中使用snort,但我的cpu使用率约为60-70%,而我的网络绑定宽度很好(约占完整的80%)
虽然我在内联模式(IPS)中使用snort,虽然cpu usege接近于零但我的网络绑定宽度非常低且低于1 MB。 我通过(ab)像
测试它ab -c 10 -n 10000 http://server/50kfile
我的配置如下:http://www.pastebin.ca/2688413(我使用(grep -v ^#| grep -v ^ $)删除评论)完整的配置文件是:http://www.pastebin.ca/2688414
我在运行snort时添加了-Q 我使用的是ubuntu 12.04
感谢任何帮助
答案 0 :(得分:1)
您的预处理器中可能需要调整的一些内容:
你应该减少http_inspect decompress_depth和compress_depth。我建议将其从65535减少到20000:
decompress_depth 20000 compress_depth 20000
你应该将http_inspect_server:post_depth从65495减少到4000左右:
http_inspect_server:post_depth 4000
规范化预处理器很昂贵。您可能不需要像现在这样规范化(除非您正在寻找这些类型的特定漏洞)。我建议删除以下内容:
预处理器normalize_ip4 预处理器normalize_icmp4 预处理器normalize_ip6 预处理器normalize_icmp6
normalize_tcp可能是您需要规范化的所有内容,但这又取决于您是否正在寻找需要对此流量进行规范化的任何特定漏洞。
除非您特别需要查找数据泄漏,否则我不建议使用敏感数据预处理器,如果您是,则应定义特定主机。此预处理器的性能可能大约为20%,特别是在未定义特定主机的情况下。
您还可以启用和使用性能预处理器。如果使用正确的选项启用此选项,snort将在退出时打印出统计信息。这可以提供有用的信息,例如哪些预处理器/规则最昂贵。
请参阅此here的文档 我会使用类似下面的内容来启用1秒的性能监控,并启用规则和预处理器分析:
预处理器perfmonitor:时间1 pktcnt 1000 config profile_rules:print all,sort total_ticks config profile_preprocs:print 100,sort total_ticks
听起来预处理器可能会导致性能问题。启用性能监控将告诉您哪些预处理器最昂贵,您可以调整这些预处理器,直到它适用于您的环境。