From aeb4ca8cf65ee8f22cf7635fea2c501c015fc906 Mon Sep 17 00:00:00 2001 From: Franck Bui Date: Wed, 29 Jun 2016 17:55:35 +0200 Subject: [PATCH 10/12] journald: disable audit support completely from the journal This patch not only prevents journald to enable audit system unconditionally very early at boot but also prevents it to receive audit messages for the audit netlink and to push them into the journal. The first reason is that when journald enables kernel audit, it does not disable syscall audit (it doesn't load the audit rules), which introduced a global performance hit. This can be minimized if audit service is started but that's not the case for all systems. The second reason is that for systems where audit was disabled by default they will suddenly have audit enabled (unless audit=0 was already passed to the kernel command line). This means tons of audit messages will be sent to dmesg, syslog, journal files, etc... Note also that audit messages are duplicated in the journal since they are received both from kmsg and from the audit netlink. A related bug report can be found here: https://bugzilla.redhat.com/show_bug.cgi?id=1160046. This basically reverts the following upstream commits: - 875c2e220e2611165e09051c4747971811f1de58 - 4d9ced9956755901238fede6fc5a3d7e4e816aa6 Upstream issue: https://github.com/systemd/systemd/issues/959 So disable all of this for now until a better option is found or someone comes up with a real use case. Also drop systemd-journald-audit.socket, indeed audit-logs-in-journal 'feature' has been removed but the socket was still shipped and was statically enabled. Therefore if auditd service was enabled, incoming messages could be queued up to 128M and were never read (hence freed) by journald. [fbui: fixes bsc#984034] [fbui: fixes bsc#1109252] --- src/journal/journald-server.c | 4 ++-- units/meson.build | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/journal/journald-server.c b/src/journal/journald-server.c index 5865bf9809..14934080cd 100644 --- a/src/journal/journald-server.c +++ b/src/journal/journald-server.c @@ -2384,8 +2384,8 @@ int server_init(Server *s, const char *namespace) { if (r < 0) return r; - /* Unless we got *some* sockets and not audit, open audit socket */ - if (s->audit_fd >= 0 || no_sockets) { + /* Suse: disable audit messages in journal entirely. */ + if (false && no_sockets) { r = server_open_audit(s); if (r < 0) return r; diff --git a/units/meson.build b/units/meson.build index dadc9432ef..a31acd3b05 100644 --- a/units/meson.build +++ b/units/meson.build @@ -110,8 +110,6 @@ 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-dev-log.socket', '', 'sockets.target.wants/'], ['systemd-journald.socket', '', -- 2.26.2