|
|
|
|
公众号矩阵

Q036-Q042

作者:李晨光来源:人民邮电出版社|2019-08-26 10:20

  Q036 如何将Suricata的报警信息输出到Syslog文件中?

/etc/suricata/suricata.yaml文件中的第233行改为enabled:yes,同时将第812行改为enabled:yes即可实现。

811    - syslog:

812            enabled:yes

813            facility: local5

814            format: "[%i] <%d> --"

 

 Q037 数据包在Suricata检测引擎中是如何匹配的?

Suricata在检测流量之前需要将所有的规则签名加载到内存中,而数据包在匹配规则时并不需要匹配所有的规则。事实上大量的规则都没必要匹配,比如当前数据包是基于UDP的(例如DNSNetFlow),那么TCP的所有规则没有必要匹配。因此需要根据一定的依据对所有规则进行分组,这样数据包只需要与分组内符合条件的所有规则进行匹配即可。

 Q038 Suricata检测引擎的配置属性分为几种?

Suricata中的Profile选项分为HighLowMedium3种,它用来定义Suricata检测引擎的配置属性。

m     选项High表示分组较多,会占用较大内存,性能也更好。使用参数HighOSSIMSuricata的默认配置。

m     选项LowHigh相反,占用内存最少,性能较差。

m     选项Medium是性能和内存使用的折中选择。

 Q039 在多核心OSSIM服务器上如何改善Suricata处理性能?

Suricata是多线程程序,当它在多核CPU的计算机上运行时可产生多线程,能同时处理多个网络流量。如果有一台6核的OSSIM服务器,那么可以修改Suricata里的一个配置以提高处理数据包的性能。打开文件/etc/suricata/suricata.yaml,将第452行的set-cpu-affinity改成yes,然后重启Suricata即可。

 Q040 在高速复杂的网络环境中,如何提高Suricata规则检测时的数据分片传输效率?

Suricata中的defragment-engine模块能对分片的IP数据包进行监视,在对分片重组后传给后续的处理模块,其中max-frags指出最大的分片数量,prealloc表明是否在程序启动时预分配部分空间,timeout则表示超时的时间。因为在数据包监测及重组的过程中,未处理的数据包都会在内存中,所以如果数量太大或是长时间未进行处理,性能就会降低,看一下图1-29所示的配置。

1-29  Suricata配置

这是OSSIM中的默认值。在高速复杂的网络环境中,可以将memcap参数调整为最大跟踪流量所使用的内存,若系统内存在32GB以上,则建议调整该值为1 024MBtimeout调整为20。如果已经把memcap的值从默认的512调整为1 024,那么必须将第629行中的memcap值调整为2GB。同时将第1 055行的global-memcap调整为2GB。这样才能提高Suricata在复杂网络环境中的检测性能。

在图1-30中,每个字段都拥有cpumodeprio3个选项,含义如下。

m     cpu是选择线程执行的CPU核心编号,数字为03或是all[0,1]表示core 0core 1[1-3]表示core 1core 2core 33个核。

m     mode一般为balanced

m     prio表示线程在核中的权限高低,有lowmediumhigh以及default4种。

1-30  查看Suricata配置

除此之外,在detect-cpu-set中还有threads字段,它可以直接指定检测线程的数量,而不是根据CPU核数来计算。上面提到的检测线程的数量可以直接指定,也可以根据CPU核数来计算。而计算系数由参数detect-thread-ratio指定,默认系数为1.5,例如用户的CPU数量为4,那只会有6个检测线程:

detect-thread-ratio: 1.5

 

注意,Suricata最多支持6核。若服务器的CPU核数量超过6,也不会进一步提升Suricata的检测性能。

 Q041 在Suricatastream引擎中对数据包重组需要占用CPU资源,为了避免无限制地重组数据包,应该修改什么参数对其进行限制?

Stream引擎的作用是重组数据包,因为数据包重组的代价比较大,所以需要的资源较多。为了避免无限制地重组超大数据包,使用depth对其进行了限制,默认为1 514,最大可调节至2 048toserver-chunk-sizetoclient-chunk-size只有超过设置的原始数据包才会调用重组。实例如下:

738  stream:

739     memcap:6gb

740     checksum-validation:no

741     prealloc-sessions:50000

742     inline:auto

743     reassembly:

744     memcap:8gb

745     depth:2mb

746     toserver-chunk-size:2560

747     toclient-chunk-size:2560

748     randomize-chunk-size:yes

 

 Q042 Suricata的日志文件suricata.log保存在什么路径中?该路径由什么配置文件定义?

Suricata的日志文件suricata.log保存在/var/log/suricata/suricata.log文件中,其路径由配置文件/etc/suricata/suricata.yaml定义。

【责任编辑:renliping TEL:(010)68476606】

回书目      
点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

这就是5G

这就是5G

5G那些事儿
共15章 | armmay

111人订阅学习

16招轻松掌握PPT技巧

16招轻松掌握PPT技巧

GET职场加薪技能
共16章 | 晒书包

369人订阅学习

20个局域网建设改造案例

20个局域网建设改造案例

网络搭建技巧
共20章 | 捷哥CCIE

753人订阅学习

读 书 +更多

'ASP.NET'程序设计教程

《ASP.NET程序设计教程》是在总结多年ASP.NET教学和应用项目开发经验基础上编写完成的,编写过程中充分吸取了其他畅销实用教程的成功经验。...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO官微