9.3. 调整注意事项

用于检查最佳性能的设置。

9.3.1. 最大挂起数据包数:<number>

此设置控制引擎可以处理的同时数据包数。将此值设置得更高通常会使线程更忙,但将其设置得太高会导致性能下降。

建议设置:10000或更高。最大值约为65000。此设置为每个线程。内存在启动时设置,用法如下:

number_of.threads X max-pending-packets X (default-packet-size + ~750 bytes)

9.3.2. MPM算法:<AC |hs| AC BS AC KS>

Controls the pattern matcher algorithm. AC (Aho–Corasick) is the default. On supported platforms, 超扫描 is the best option. On commodity hardware if Hyperscan is not available the suggested setting is mpm-algo: ac-ks (Aho–Corasick Ken Steele variant) as it performs better than mpm-algo: ac

9.3.3. 检测配置文件:<低 |medium| 高自定义>

检测引擎尝试将单独的签名拆分成组,以便只根据实际匹配的签名检查包。在大型规则集中,这将导致太多的组和内存使用相似的组合并在一起。配置文件设置控制合并的积极程度。的默认设置 high 通常已经足够好了。

“自定义”设置允许修改组大小:

custom-values:
  toclient-groups: 100
  toserver-groups: 100

一般来说,增加将提高性能。这将导致内存使用的最小增长。的默认值 toclient-groupstoserver-groups 具有 detect.profile: high 是75。

9.3.4. detect.sgh-mpm-context:<auto |single| 满>

多模式匹配器可以为每个签名组(完整)或全局(单个)提供上下文。自动选择基于 mpm-algo 挑选出来的。ac、ac bs、ac ks、hs默认为“单个”。将此设置为“满” mpm-algo: acmpm-algo: ac-ks 提供更好的性能。将此设置为“满” mpm-algo: hs 不建议使用,因为这会导致启动时间更长。而不是超扫描 detect.profile: high 或者可以使用更大的自定义组大小设置(如上所述),它提供比 acac-ks 即使 detect.sgh-mpm-context: full .

9.3.5. af包

如果使用 af-packet (Linux上的默认设置)建议将af packet v3用于IDS/NSM部署。对于IP,建议使用af包v2。为了确保使用af包v3,可以在 af-packet 的配置部分苏瑞塔亚姆是这样的:

af-packet:
 - interface: eth0
   ....
   ....
   ....
   use-mmap: yes
   tpacket-v3: yes

9.3.6. 戒指尺寸

戒指尺寸是另一个 af-packet 可考虑用于优化和性能优势的变量。它基本上是指每个线程的数据包的缓冲区大小。所以如果设置是 ring-size: 100000 如下所示:

af-packet:
 - interface: eth0
   threads: 5
   ring-size: 100000

这意味着在5个线程的每个缓冲区中允许有100000个数据包。如果任何一个缓冲区被填满(例如,数据包处理跟不上),就会产生数据包 drop 统计日志中的计数器增加。

用于这些存储器的内存在启动时设置并专用,计算如下:

::

空军-包.线程X自动对焦-分组环-大小X(默认数据包大小+~750字节)

在哪里? af-packet.threadsaf-packet.ring-sizedefault-packet-size 是否设置了值苏瑞塔亚姆. 例如,af packet的配置值可以通过在命令行上快速显示 suricata --dump-config |grep af-packet .

9.3.7. stream.bypass

另一个可以用来提高性能的选项是 stream.bypass . 在下面的示例中:

stream:
 memcap: 64mb
 checksum-validation: yes      # reject wrong csums
 inline: auto                  # auto will use inline mode in IPS mode, yes or no set it statically
 bypass: yes
 reassembly:
   memcap: 256mb
   depth: 1mb                  # reassemble 1mb into a stream
   toserver-chunk-size: 2560
   toclient-chunk-size: 2560
   randomize-chunk-size: yes

stream.reassembly.depth 对于特定流,达到1mb。