我希望所有 auditd 日志都只放在它自己的日志文件中,并保持我的 journalctl 视图较少受到大多数时候由我自己的操作(单用户/个人计算机)生成的事件的污染。
我已经找到了如何完全禁用auditd或禁用审计事件的日志记录(?)拱门维基,然后我看了一下auditd.conf
实际上log_file
填写了一个选项,但它指向的文件不存在,所有内容都只是记录到日志中。
# /etc/audit/auditd.conf
local_events = yes
write_logs = yes
log_file = /var/log/audit/audit.log
log_group = root
log_format = RAW
flush = INCREMENTAL_ASYNC
freq = 50
max_log_file = 8
num_logs = 5
priority_boost = 4
disp_qos = lossy
dispatcher = /usr/bin/audispd
name_format = NONE
##name = mydomain
max_log_file_action = ROTATE
space_left = 75
space_left_action = SYSLOG
verify_email = yes
action_mail_acct = root
# ...
似乎 systemd-journald-audit 比审计事件具有优先级,我的第一个想法是使用 rsyslog 规则,但似乎 Manjaro 上没有使用 rsyslog。
那么,我怎样才能停止在 journal[ctl] 中查看审计事件并让它们仅记录到特定文件中?
答案1
我做了功课,把所有东西都记录到文件中,而不是 syslog/journal 中。从表面上看,默认情况下,systemd 会为内核的审计事件设置自己的监听器,并将它们记录到 syslog/journal 中。另一种方法是使用auditd
读取这些事件并将其记录到可配置的日志文件中。
禁用 systemd 的审计事件日志记录:
systemctl stop systemd-journald-audit.socket
systemctl disable systemd-journald-audit.socket
# masking will prevent starting by other services
# 'systemctl unmask' to reverse
systemctl mask systemd-journald-audit.socket
审计事件可能仍会记录到日志中,直到您重新启动。
设置auditd
安装或确保auditd
包已安装,根据发行版的不同可能会有不同的名称,在撰写本文时,它audit
适用于基于 Arch 的 Manjaro。
配置文件
的位置auditd.conf
似乎不同(在线手册页有不同的位置),请参阅您的man auditd.conf
。
下面的配置应该可以解决问题,确保/var/log/audit/
存在。
# /etc/audit/auditd.conf
local_events = yes
write_logs = yes
log_file = /var/log/audit/audit.log
log_group = root
log_format = RAW
flush = INCREMENTAL_ASYNC
freq = 5 # after how many messages to explicitly flush
max_log_file = 8 # size in MB per one log file
num_logs = 5 # keep n amount of rotated logs
# ... truncated
此文件已存在于我的系统中,并具有一些合理的默认值,但这些似乎是日志记录最重要的选项。如果不存在,您应该查阅手册页,另一个可能重要的选项是dispatcher=
,如果您正在使用审计规则(audispd
,/etc/audit/rules.d/
)。
Systemd 单元auditd
auditd 软件包附带有自己的 systemd 单元文件,位于
/usr/lib/systemd/system/auditd.service
。服务文件中有一些注释,请务必阅读以检查这些注释是否适用。
将该文件复制到/etc/systemd/system/auditd.service
,然后发出
systemctl daemon-reload
systemctl start auditd.service
systemctl enable auditd.service # will be auto started with system
这一切都适用于我的系统,即5.9.10-1 kernel
带有systemd 246
和 的Manjaro audit version 2.8.5
。用于将审计事件记录到 syslog/journal 的 systemd 单元可能名称不同,并且 auditd 的 systemd 单元的存在及其配置路径在其他发行版中可能不同。