首页 > 解决方案 > 如何从应用程序登录到 AUDITD?

问题描述

我们正在考虑从 rsyslog 转移到 auditd,但我还没有找到应用程序应该如何将日志消息输出到 auditd。(使用 rsyslog 有据可查)。

标签: linuxloggingsyslogrsyslog

解决方案


您将 auditd 理解为日志记录的替代品是不正确的。Auditd 不是 syslog/rsyslog 类型日志记录的直接替代品。相反,它根据对内核的系统调用生成日志。

然后手册页解释它:

auditd 是 Linux 审计系统的用户空间组件。它负责将审计记录写入磁盘。查看日志是使用ausearchaureport实用程序完成的。使用 auditctl 实用程序配置审计系统或加载规则。在启动过程中,规则/etc/audit/audit.rules会被内核读取 auditctl并加载到内核中。或者,还有一个 augenrules程序可以读取位于其中的规则/etc/audit/rules.d/ 并将它们编译成一个audit.rules文件。审计守护进程本身有一些管理员可能希望自定义的配置选项。它们可以在auditd.conf文件中找到。

还有一个很好的auditd概述,标题为:auditd简介

.... 由于它在内核级别运行,这给了我们一个挂钩到我们想要的任何系统操作。我们可以选择在发生特定系统调用时写入日志,无论是 unlink 还是 getpid。我们可以监控对任何文件、所有网络流量以及我们想要的任何东西的访问。细节水平非常惊人,而且由于它在如此低的水平上运行,信息的粒度非常有用。

我还将引导您阅读本教程,标题为:如何在 CentOS 7 上使用 Linux 审计系统。有一个您将从 auditd 获得的日志记录类型的示例。

type=SYSCALL msg=audit(1434371271.277:135496): arch=c000003e syscall=2 success=yes exit=3 a0=7fff0054e929 a1=0 a2=1fffffffffff0000 a3=7fff0054c390 items=1 ppid=6265 pid=6266 auid=1000 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=113 comm="cat" exe="/usr/bin/cat" key="sshconfigchange"

type=CWD msg=audit(1434371271.277:135496):  cwd="/home/sammy"

type=PATH msg=audit(1434371271.277:135496): item=0 name="/etc/ssh/sshd_config" inode=392210 dev=fd:01 mode=0100600 ouid=0 ogid=0 rdev=00:00 objtype=NORMAL

这全部来自一个事件,但通过 auditd 记录了 3 条消息。msg=audit(...)您可以通过字段判断哪些事件是关联的。

我向您展示这个示例,因为这种类型的日志记录是由内核驱动的,而不是应用程序本身。

注意: Auditd 的真正目的是生成与 Linux 内核交互的审计日志,而 syslog/rsyslog 真正用于来自应用程序本身的通用日志记录。


推荐阅读