audit日志重复保存

一、当前环境

Kylin Linux Advanced Server
release V10 (SP1) /(Tercel)-aarch64-Build04/20200711
Kylin Linux Advanced Server
release V10 (SP1) /(Tercel)-aarch64-Build20/20210518

二、问题描述

Centos: audit 服务启动状态下,只会 /var/log/audit/audit.log 会记录 audit的信息
Kylinos: 在 audit 服务启动状态下,会同时向 /var/log/messages 和 /var/log/audit/audit.log 会记录 audit的信息
openeuler 也存在同样的问题

三、分析

1.经过分析,内核的audit使用netlink与用户空间进行通信。
如下图所示
在这里插入图片描述
2.下载systemd 243的源码,可见对内核的audit的netlink进行了连接
在这里插入图片描述

3.下载对应版本的audit服务的源码,也可见对内核的audit的netlink进行了连接。
在这里插入图片描述

4.如下图所示,左边为Kylin V10 SP1 20200711,左边CentOS8,Kylin-V10(SP1)多了一个systemd-journald-audit.socket。

在这里插入图片描述

5.当删除/usr/lib/systemd/system/systemd-journald-audit.socket文件时,/var/log/message日志中便不再保存audit日志了。

6.经过分析,该问题为systemd的问题,systemd-journald.service会记录audit的日志,开启auditd服务之后,又会去记录audit日志,导致audit日志记录了双份。

7.经资料查找,下面补丁,可以解决这个问题。

From 7a650ee8d3faf79fd5ef866b69741880a3a42b8d Mon Sep 17 00:00:00 2001
From: Jan Synacek <jsynacek@redhat.com>
Date: Thu, 2 May 2019 14:11:54 +0200
Subject: [PATCH] journal: don't enable systemd-journald-audit.socket
 by default

Resolves: #1699287

---
 units/meson.build                 | 3 +--
 units/systemd-journald.service.in | 2 +-
 2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/units/meson.build b/units/meson.build
index 4eb09a3..ccea8a6 100644
--- a/units/meson.build
+++ b/units/meson.build
@@ -110,8 +110,7 @@ units = [
          'sysinit.target.wants/'],
         ['systemd-journal-gatewayd.socket',     'ENABLE_REMOTE HAVE_MICROHTTPD'],
         ['systemd-journal-remote.socket',       'ENABLE_REMOTE HAVE_MICROHTTPD'],
-        ['systemd-journald-audit.socket',       '',
-         'sockets.target.wants/'],
+        ['systemd-journald-audit.socket',       ''],
         ['systemd-journald-dev-log.socket',     '',
          'sockets.target.wants/'],
         ['systemd-journald.socket',             '',
diff --git a/units/systemd-journald.service.in b/units/systemd-journald.service.in
index 0cb1bfa..fa7348a 100644
--- a/units/systemd-journald.service.in
+++ b/units/systemd-journald.service.in
@@ -34,7 +34,7 @@ RestrictRealtime=yes
 RestrictSUIDSGID=yes
 RuntimeDirectory=systemd/journal
 RuntimeDirectoryPreserve=yes
-Sockets=systemd-journald.socket systemd-journald-dev-log.socket systemd-journald-audit.socket
+Sockets=systemd-journald.socket systemd-journald-dev-log.socket
 StandardOutput=null
 SystemCallArchitectures=native
 SystemCallErrorNumber=EPERM
-- 
2.23.0
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值