我使用的是 CentOS 5.5,默认情况下我的/var/log/audit/audit.log
外观如下:
type=USER_AUTH msg=audit(1331897657.359:8435): user pid=15610 uid=0 auid=4294967295 subj=system_u:system_r:unconfined_t:s0-s0:c0.c1023 msg='PAM: authentication acct="?" : exe="/usr/sbin/sshd" (hostname=c165-130.i02-2.onvol.net, addr=213.165.165.130, terminal=ssh res=failed)'
type=USER_LOGIN msg=audit(1331897657.360:8436): user pid=15610 uid=0 auid=4294967295 subj=system_u:system_r:unconfined_t:s0-s0:c0.c1023 msg='acct="oracle": exe="/usr/sbin/sshd" (hostname=?, addr=213.165.165.130, terminal=sshd res=failed)'
确切地说,日志条目是在没有时间戳的情况下写入的,这使得故障排除变得更加困难。有一个可用的手册页
man auditd.conf
但在这个主题中它只说了:
log_format
The log format describes how the information should be stored on
disk. There are 2 options: raw and nolog. If set to RAW, the
audit records will be stored in a format exactly as the kernel
sends it. If this option is set to NOLOG then all audit informa-
tion is discarded instead of writing to disk. This mode does not
affect data sent to the audit event dispatcher.
如何将其配置为在每个条目的开头打印日期/时间?
答案1
虽然没有任何选项可以设置来使auditd日志具有人类可解析的日期格式,但如果您使用“ausearch”命令来搜索审计日志,则有一个-i
选项可以生成人类可读的(嗯,也许稍微更具人类可读性)输出。
例如,如果我ausearch -ts today
在新启动的系统上运行,我会看到:
# ausearch -ts today
----
time->Mon Mar 19 23:07:00 2012
type=DAEMON_START msg=audit(1332212820.421:3834): auditd start, ver=2.1.3 format=raw kernel=3.2.10-3.fc16.x86_64 auid=4294967295 pid=6438 subj=system_u:system_r:auditd_t:s0 res=success
但如果我运行ausearch -ts today -i
,我会看到:
# ausearch -ts today -i
----
type=DAEMON_START msg=audit(03/19/2012 23:07:00.421:3834) : auditd start, ver=2.1.3 format=raw kernel=3.2.10-3.fc16.x86_64 auid=unset pid=6438 subj=system_u:system_r:auditd_t:s0 res=success
那对你有用吗? ausearch
无论如何,您可能会用它来查看审计记录。 -i
还可以执行 uid->用户名查找和其他解析等操作。
编辑:从上面可以看出我运行的是Fedora 16,但同样ausearch -i
适用于RHEL5。
答案2
开头的长数字是时间戳:自纪元以来的秒数。几分钟前,我得到:
[0 1128 18:09:57] ~ % date +%s; date
1331917801
Fri Mar 16 18:10:01 CET 2012
要将数字转换为更具可读性的内容,请尝试
[0 1133 18:12:41] ~ % date -d @1331897657
Fri Mar 16 12:34:17 CET 2012
(所以显然,你需要“常用sed
技巧”来剪掉亚秒部分。)
我手边没有启用 SE 的机器,但也许sealert -a
也可以将时间戳解析为人类可读的内容?
答案3
ausearch -i
来自帮助:
-i,--interpret Interpret results to be human readable
这不是正确的答案杰斯比林斯写道。
无需运行 tail -f !
PS 该死的堆栈点!这就是为什么我无法发表评论或投票的原因。
答案4
tail -f /var/log/audit/audit.log | ausearch -i