参考连接
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_TIMESTAMPINGint 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 -2sudo 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