Show Table of Contents
5.6. 理解审核日志文件
默认情况下,在
/var/log/audit/audit.log 文件中的审核系统储存日志项;如果启用日志旋转,就可以旋转储存在同一目录中的 audit.log 文件。
以下的审核规则记录了每次读取或者修改
/etc/ssh/sshd_config 文件的尝试:
-w /etc/ssh/sshd_config -p warx -k sshd_config
如果
auditd 守护程序在运行,就需在审核日志文件中运行以下命令创造新事件:
~]# cat /etc/ssh/sshd_config
在
audit.log 文件中的事件如下所示:
type=SYSCALL msg=audit(1364481363.243:24287): arch=c000003e syscall=2 success=no exit=-13 a0=7fffd19c5592 a1=0 a2=7fffd19c4b50 a3=a items=1 ppid=2686 pid=3538 auid=500 uid=500 gid=500 euid=500 suid=500 fsuid=500 egid=500 sgid=500 fsgid=500 tty=pts0 ses=1 comm="cat" exe="/bin/cat" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key="sshd_config" type=CWD msg=audit(1364481363.243:24287): cwd="/home/shadowman" type=PATH msg=audit(1364481363.243:24287): item=0 name="/etc/ssh/sshd_config" inode=409248 dev=fd:00 mode=0100600 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:etc_t:s0
以上事件由三个记录组成(每个以
type= 密码作为开始),共享相同的时间戳和编号。每个记录包含好几对 name=value ,由空格或者逗号分开。以下是关于以上事件的详细分析:
第一个记录
type=SYSCALLtype输入栏包含这类记录。在这个例子中,SYSCALL数值详细说明连接到 Kernel 的系统调用触发了这个记录。为了列出所有可能的类型值和它们的解释,请参考〈第 B.2 节 “审核记录类型”〉。msg=audit(1364481363.243:24287):msg输入栏记录:audit(time_stamp:ID)表格中记录的时间戳和特殊 ID。如果多种记录生成为相同审核事件的一部分,那么它们可以共享相同的时间戳和 ID。- Kernel 或者用户空间应用提供不同的事件特定
name=value组。
arch=c000003earch输入栏包括关于系统CPU架构的信息。值c000003e是使用 16 进制表示法编码。当使用ausearch命令搜寻审核记录时, 使用-i或者--interpret选项自动转化为 16 进制值可供人读取的对等语。c000003e值被解释为x86_64。syscall=2syscall输入栏记录了传输给 Kernel 的输入栏类型。值2可以与在/usr/include/asm/unistd_64.h文件中可供人读取的对等语相匹配。 在这种情况下,2是open系统调用。 请注意 ausyscall 实用程序允许您把系统调用数字转换成可供人读取的对等语。 使用ausyscall --dump命令来展示所有的系统调用和它们的号码。如想要获取更多信息,请参考 ausyscall(8) 手册页。success=nosuccess输入栏记录了系统调用是否被成功地记录在特定事件中。在这种情况下,调用不会成功。exit=-13exit输入栏包含详细说明由系统调用所返回的退出代码的值。在不同的系统调用中,值各不相同。您可以用以下命令把值解释为可供人读取的对等语:ausearch --interpret --exit -13(假设您的审核日志中包含的事件没有退出代码-13)。a0=7fffd19c5592,a1=0,a2=7fffd19c5592,a3=aa0到a3输入栏记录了前四个参数,在这个事件中使用 16 进制编码系统调用。这些参数取决于使用的系统调用;它们可以通过 ausearch 实用程序来解释。items=1items输入栏包含事件中路径记录的数量。ppid=2686items输入栏记录了父进程 ID(PPID)。在这个情况下,2686是bash进程的 PPID。pid=3538pid输入栏记录了进程 ID(PID)。在这个情况下,3538是cat进程的 PID。auid=500auid输入栏记录了审核用户 ID,这个是 loginuid。这个ID是用户在登录时使用的并且即使当用户身份改变时,也可以通过每个进程获取该ID。(例如,通过切换用户账户,使用su - john命令)。uid=500uid输入栏记录了开始分析进程的用户 ID。使用以下指令:ausearch -i --uid UID,用户 ID 就可以被解释为用户名字。在这个情况下,500是shadowman的用户 ID。gid=500gid输入栏记录了开始分析进程用户的 ID组。euid=500euid输入栏记录了开始分析进程用户的有效用户 ID。suid=500suid输入栏记录了开始分析进程的用户的设置用户 ID。fsuid=500fsuid输入栏记录了开始分析进程用户的文件系统用户 ID。egid=500egid输入栏记录了开始分析进程用户的有效群组 ID。sgid=500sgid输入栏记录了开始分析进程用户的设置群组 ID。fsgid=500fsgid输入栏记录了开始分析进程的用户的文件系统群组 ID。tty=pts0tty输入栏记录了调用分析进程的终端。ses=1ses输入栏记录了调用分析进程会话的会话 ID。comm="cat"comm输入栏记录了命令行的名字,它被用于调用分析进程。在这种情况下cat命令被用来触发审核事件。exe="/bin/cat"exe输入栏记录了被用来调用分析进程的可执行的路径。subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023subj输入栏记录了 SELinux 语境,运用此语境可以在执行时间中标注分析进程。key="sshd_config"key输入栏记录了所有管理者定义的字符串,它与在审核日志中生成该事件的规则有关。
第二记录
type=CWD- 在第二记录中,
type输入栏数值是CWD— 当前工作目录。这种类型用于记录在被执行的第一记录中详细说明的触发系统调用的进程。这个记录的目的是为了记录当前进程的位置以防在相关的 PATH 记录中捕捉到相对路径。运用这个方法可以重塑绝对路径。 msg=audit(1364481363.243:24287)msg输入栏持有与第一记录中的数值相同的时间戳和 ID 值。cwd="/home/shadowman"cwd输入栏含有进入目录的路径,在目录中触发系统调用。
第三记录
type=PATH- 在第三记录中,
type输入栏值是PATH。每个审核事件包含一个PATH对于每条路径种类的记录作为一个参数,传输给系统调用。在审核事件中,只有一条路径(/etc/ssh/sshd_config)被用来作为参数。 msg=audit(1364481363.243:24287):msg输入栏持有与第一和第二记录中的值相同的时间戳和 ID 值。item=0item输入栏表明在所有项目中,哪个项目在SYSCALL类型记录中,参考了当前记录。这个是数字是以零为基准;值0意味着它是第一项。name="/etc/ssh/sshd_config"name输入栏记录了文件或者目录的所有路径,作为参数被传输给系统调用。在这种情况下,它是/etc/ssh/sshd_config文件。inode=409248inode输入栏包含索引结点数字,与记录在事件中的文件和目录有关。以下命令体现了与409248索引结点数字相关的文件和目录:~]#
find / -inum 409248 -print/etc/ssh/sshd_configdev=fd:00dev输入栏明确说明了设备的次要和主要 ID,它包含记录在事件中的文件和目录。在这种情况下,值代表/dev/fd/0设备。mode=0100600mode输入栏记录了文件和目录权限,用 16 进制表示法编码。在这种情况下,0100600可以被解释为-rw-------,意味着对于/etc/ssh/sshd_config文件,只有 root 用户拥有读取并且输入权限。ouid=0ouid输入栏记录了对象所有者的用户 ID。ogid=0ogid输入栏记录对象拥有者的群组 ID。rdev=00:00rdev输入栏包含记录的设备识别器只用于特殊文件。在这种情况下,正常文件是不用来作为记录文件的。obj=system_u:object_r:etc_t:s0obj输入栏记录了 SELinux 语境,运用此语境可以在执行时间中标注分析进程。
以上分析过的审核事件是事件所包含的所有可能位置栏的一小部分。为了列出所有事件的位置栏及解释,请参考〈第 B.1 节 “审核事件字段”〉。为了列出所有事件类型以及解释,请参考〈第 B.2 节 “审核记录类型”〉。
例 5.5. 其他的 audit.log 事件。
以下审核事件记录了成功启动的
auditd 守护程序。 ver 位置栏显示了已经开始的审核守护程序的版本。
type=DAEMON_START msg=audit(1363713609.192:5426): auditd start, ver=2.2 format=raw kernel=2.6.32-358.2.1.el6.x86_64 auid=500 pid=4979 subj=unconfined_u:system_r:auditd_t:s0 res=success
以下审核事件记录了作为 root 用户使用 UID 500 登录失败。
type=USER_AUTH msg=audit(1364475353.159:24270): user pid=3280 uid=500 auid=500 ses=1 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 msg='op=PAM:authentication acct="root" exe="/bin/su" hostname=? addr=? terminal=pts/0 res=failed'

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.