Suricata 检测日志中的时间戳不正确

参考连接

Incorrect Timestamp in Suricata Detection Logs - Help - Suricata

问题现象:

使用 Suricata 时遇到一个问题,即检测日志 (eve.json) 中的 and 字段间歇性地显示 2106 年。这似乎偶尔发生,并影响其中一个或两个字段。timestamp start

问题原因

使用 af-packet 时,时间戳来自 af-packet,默认情况下,我们设置这意味着我们将使用 NIC/驱动程序提供的硬件时间戳。不幸的是,除了注释掉一些代码并重新编译之外,没有其他方法可以禁用它。SOF_TIMESTAMPING_RAW_HARDWARE

有些网卡硬件就是有问题,解决办法

1、ptp时间同步

2、改源码

3、换网卡硬件

这里采用改源码的方式

改动如下:

source-af-packet.c文件 找到这几行,直接注释掉,就可以了

#ifdef HAVE_HW_TIMESTAMPING
    int req = SOF_TIMESTAMPING_RAW_HARDWARE;
    if (setsockopt(ptv->socket, SOL_PACKET, PACKET_TIMESTAMP, (void *) &req,
                sizeof(req)) < 0) {
        SCLogWarning("%s: failed to activate hardware timestamping on packet socket: %s", devname,
                strerror(errno));
    }
#endif

排除问题经过:

tcpdump -i lan4 -j adapter_unsynced -tt -vv -c 5
在这里插入图片描述

先用tcpdump 看一下硬件时间戳是否正常,大部分设备都没有问题,个别系统有问题

linux网卡时间戳同步

sudo apt install linuxptp
# 前台运行(-m 显示日志,-i 指定网卡)
sudo ptp4l -i eth0 -m -2

sudo systemctl daemon-reload
sudo systemctl enable ptp4l
sudo systemctl start ptp4l

suricata编译

tar xzvf suricata-7.0.0.tar.gz
cd suricata-7.0.0
./configure
make
make install

你可能感兴趣的:(IDS)