0x9*_*x90 2 linux audit auditd coreos journald
从 CoreOs 766 开始,审计子系统部分集成:
内核中已启用审计子系统,并将 auditctl 添加到映像中。大多数审计事件默认被忽略。审计规则可以在/etc/audit/rules.d 中修改。请注意,auditd 不包括在内,而 journald 负责记录事件,尽管它是一种尽力而为的机制。与基于auditd 的系统不同,如果journald 由于某种原因未能记录事件,内核不会恐慌。
为了审计 899 和 alpha 1000 CoreOs 版本上的系统调用,我尝试了以下方法。
# starting a new periodic process:
$ while true; do echo "coreos ..." > /tmp/a.txt && sleep 5s; done &
[1] 4509
# get its pid and add a new audit rule:
$ sudo auditctl -a always,exit -F arch=b64 -S read,write,close,dup2,wait4 -F pid=4509
# wait 5 minutes and check if any audit related event was logged into by the journald:
$ journalctl | grep audit | wc
0 0 0
Run Code Online (Sandbox Code Playgroud)
为什么我看不到日志记录的任何事件?
在cn.ko被正确加载,并根据该auditctl -l规则设置成功输出。虽然它看起来journald没有从 netlink 接口接收消息。
我按照以下步骤启用调试,但它也没有给出任何提示:
mkdir -p /etc/systemd/system/systemd-journald.service.d/
Run Code Online (Sandbox Code Playgroud)
vim /etc/systemd/system/systemd-journald.service.d/10-debug.conf 并用以下内容填充它:
[Service]
Environment=SYSTEMD_LOG_LEVEL=debug
Run Code Online (Sandbox Code Playgroud)
并重启 systemd-journald 服务:
systemctl daemon-reload
systemctl restart systemd-journald
dmesg | grep systemd-journald
Run Code Online (Sandbox Code Playgroud)
小智 5
CoreOS 附带一组默认规则,旨在通过/etc/audit/rules.d/. 当您尝试以交互方式使用它时,您想要做的是首先清除审核规则,因为有一条规则/etc/audit/rules.d/99-default.rules可以使所有剩余规则静音。
只需运行audit -D以清除规则,然后您交互式添加的规则就会开始工作。
FWIW,99-default.rules导致麻烦的规则是-a exclude,always -F msgtype>0。
| 归档时间: |
|
| 查看次数: |
1491 次 |
| 最近记录: |