suricata 输出 - syslog 告警兼容性

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了suricata 输出 - syslog 告警兼容性相关的知识,希望对你有一定的参考价值。

参考技术A 1.syslog 警报兼容性

Suricata可以通过sylog发出警报,这是中央日志收集,合规性和向SIEM报告的一个非常方便的功能。有关设置的说明可以在.yaml文件中找到,您可以在其中配置您想要的警报(和其他)日志类型。

但是,有不同的syslog守护进程,并且可能存在SIEM期望的syslog格式以及Suricata发送的syslog格式的解析问题。Suricata的syslog格式依赖于Suricata传感器上运行的syslog守护程序,但它发送的格式通常不是SIEM期望的格式,也无法正确解析。

1.1 通用的syslog守护进程

syslogd  - 记录系统消息

syslog-ng  - 记录系统消息,但也支持TCP,TLS和其他增强的企业功能

rsyslogd  - 记录系统消息,但也支持TCP,TLS,多线程和其他增强功能

klogd  - 记录内核消息

sysklogd  - 基本上是一堆 syslogd和klogd

如果Suricata传感器发送的syslog格式与SIEM或syslog收集器所期望的格式不兼容,则需要解决此问题。您可以在SIEM上执行此操作如果它能够配置为解释消息,或者通过在Suricata传感器本身上配置syslog守护程序以SIEM可以解析的格式发送。后者可以通过将模板应用于syslog配置文件来完成。

1.2 找到你正在使用的syslog守护进程

有很多方法可以找出你正在使用的syslog守护进程,但这里有一种方法:

cd /etc/init.d

ls | grep syslog

您应该看到一个带有syslog字样的文件,例如“syslog”,“rsyslogd”等。显然,如果名称是“rsyslogd”,您可以相当自信地运行rsyslogd。如果不确定或文件名只是“syslog”,请查看该文件。例如,如果是“rsyslogd”,请运行:

less  rsyslogd

在顶部你应该看到一个看起来像这样的注释行:

# rsyslog Starts rsyslogd/rklogd.

找到这些文件并查看它们,以便为您提供有关正在运行的syslog守护程序的线索。另请查看您运行“less”的文件的 start() 部分,看看哪些二进制文件已启动,因为这也可以为您提供线索。

1.3 示例

下面是一个示例,其中Suricata传感器以rsyslogd格式发送系统日志消息,但SIEM期望并以sysklogd格式解析它们。在syslog配置文件中(通常在/ etc中使用rsyslog.conf或syslog.conf等文件名),首先添加模板:

$template sysklogd, "<%PRI%>%syslogtag:1:32%%msg:::sp-if-no-1st-sp%%msg%"

然后将其发送到syslog服务器并应用模板:

user.alert@10.8.75.24:514;sysklogd

当然这只是一个例子,它可能会在您的环境中有所不同,具体取决于您使用的syslog守护程序和SIEM,但希望这会指向正确的方向。

syslog的接收日志

参考技术A

当设备出现某些故障时,需要知道设备究竟发生了哪些事件,以便能够排错故障,这时,就需要设备有记录事件的功能。Logging功能能记录设备上发生的大大小小的事件。

设备上所发生的事件是有等级之分的,有时并不需要设备将任何事件都记录下来,可以设定哪种级别的事件是需要记录的,哪些是不需要记录的。

Cisco将设备上的事件级别分为0到7总共8个级别,0级代表最严重的事件,

0 (emergencies) 紧急

1(alerts) 警报

2(critical)危急

3(errors) 差错

4(warnings) 告警

5 (notifications) 通告

6(informational) 报告

7 (debugging) 调试

如果我们指定记录5级别的,那么0到5级别的会全部记录。

一、设备调试弹出日志

在登陆到设备上进行配置的时候,如果引起设备发生一些事件,希望能够给我们一些反馈信息,也就是能跳出一个提示信息。因为我们可以通过console登陆设备,也可以telnet登录,但设备默认是console登陆设备的是能够看见日志提示的,而telnet登录的`是无法看见的,如果要让telnet方式登陆也看见日志信息,则需要手工打开日志显示开关。

可以定义在console和VTY接口弹出日志级别

r1(config)#logging console 4console登录显示级别为4的日志,默认为7

r1(config)#logging monitor 4telnet登录显示级别为4的日志,默认为7 r1# terminal monitor 打开telnet弹出日志开关(默认关闭)

terminal no monitor关闭日志显示

二、日志记录到本地存储器

可将事件记录到设备本地存储器中,称为buffered,默认为4096 bytes,可以定义存储器的空间大小。如果存储器满了,那么最新的日志将替换最老的日志。

在设备记录事件时,可打上相应的时间戳。需要告诉设备将时间戳写成本机的时间。

定义将日志保存到本地缓存 (默认为7 debugging, 4096字节)

r1(config)#logging buffered 8192 warning 日志缓存大小8192字节,级别为 warnings,记

录0 - 4 级别的消息。

r1# sh logging查看日志

定义时间戳

r1(config)#service timestamps log datetime localtime msec show-timezone

r1(config)#service timestamps debug datetime localtime msec show-timezone

在记录时间戳时,显示时日期、时间,使用本地时间, 精确到毫秒级,附带时区信息。

三、日志记录到syslog服务器

可以将设备发生的事件记录到远程服务器上,以方便事后查看。

r1(config)#logging 192.168.1.60配置syslog服务器地址

r1(config)#logging facility local6定义远程存储类型为local6(默认为local7)

r1(config)#logging trap 4 定义发送到远程服务器事件等级为4(默认为6 informational)

以上是关于suricata 输出 - syslog 告警兼容性的主要内容,如果未能解决你的问题,请参考以下文章

网络安全系列-四十三:使用Suricata分析恶意流量pcap文件

zabbix整合ELK收集系统异常日志触发告警

linux怎么查看硬件告警

Suricata简介

Suricata详解

syslog格式说明