suricata配置文件内容架构详解
step1:告知suricata关于你网络的信息
1.vars(变量表)
越具体,警报准确性和性能越好
step2:选择要启用的输出
1.default-log-dir(默认日志的目录)
2.Global stats configuration(全球数据的配置)
-
stats(统计数据) interval(日志打印间隔时间) decoder-events(添加事件流作为统计) decoder-events-prefix(在统计中解码器事件前缀) stream-events(添加事件流作为统计) plugins(为每个插件共i相对想指定文件名) outputs (配置警报和其他日志的记录类型) -fast(基于行的警报日志) -eve-log(可扩展事件格式,json格式的事件日志) -http-log(基于行的http请求日志http.log) -tls-log -tls-store -pcap-log(生成pcap日志:数据包日志) 使用 pcap-log 选项,您可以将 Suricata 注册的所有数据包保存在名为 log.pcap 的日志文件中。这样,您可以随时查看所有数据包。在正常模式下,会在 default-log-dir 中创建一个 pcap 文件。如果在 yaml 文件中设置了绝对路径,也可以在其他地方创建它。 -alert-debug(详细警报日志) 这是一种日志类型,提供有关警报的补充信息。对于调查误报和写签名的人来说特别方便。但是,由于必须存储的信息量很大,它会降低性能。 stats(设置stats.log的选项,启用 stats.log 时,您可以设置希望将输出数据写入日志文件的时间(以秒为单位)。) -syslog(使用此选项,可以将所有警报和事件输出发送到 syslog。) -file-store(这个输出允许将提取的文件取出到磁盘,并配置储存文件的位置) -tcp-data(记录流正常后的tcp数据) -http-body-data -lua logging(日志记录配置。这不是关于记录IDS警报/事件,而是输出Suricata正在执行的操作,如启动消息、错误等)
step3.流量的抓取
1.af-packet(Linux高速捕获支持)
2.dpdk(数据层开发套件)
-
eal-params: proc-type: primary(指定一个dpdk程序是否为主进程) interfaces:(接口) -interface:(配置网卡)
3.ips(Surigata的IPS模式可在3种模式下工作-无、点击、IPS)
ips:与tap模式相同,但它也会丢弃规则标记要丢弃的数据包
4.prep(跨平台libpcap捕获支持)
step4.应用协议层配置
1.app-layer(配置应用层解析器。用哪个开启那个就可以)
2.守护线程
3.max-pending-packets(最大待处理数据包)
4.runmode: workers(引擎应该使用的运行模式。) 命令行选项--list-runmodes显示所有可用的运行模式。所有运行模式都有一个名称: 不同的运行模式 :single、workers、autofp。 #workers:通常,workers运行模式执行得最好。在这种模式下,NIC/驱动程序确保数据包在 Suricata 的处理线程上得到适当的平衡。然后每个数据包处理线程都包含完整的数据包管道。
#autofp:用于处理 PCAP 文件,或在某些 IPS 设置(如 NFQ)的情况下 autofp使用。这里有一个或多个捕获线程,捕获数据包并进行数据包解码,然后将其传递给线程。flow worker
#single: 运行模式single与模式相同workers,但只有一个数据包处理线程。这在开发过程中非常有用。
..
5.host-os-policy:(主机操作系统策略)
6.flow(流量和流处理)
7.flow-timeouts:(流量超时)
..
8.threading:(线程配置)
#指定特定的cpu。
-
cpu-affinity:(cpu相关) management-cpu-set(management-cpu-set用于流超时处理,计数器) receive-cpu-set:( receive-cpu-set用于捕获线程) worker-cpu-set:(worker-cpu-set用于工作线程) 。。
9.profiling(规则和数据包分析设置)
-
rules:(规则配置)
10.netmap:(捕获流程)
11.pfring:(数据捕获)
12.napatech:(数据捕获)
13.default-rule-path: (配置Suricata以加载Suricata- update托管规则。)