auditd – 在linux中进行审计

我正在尝试在我的centos 6.x盒子上设置一个强大的审核机制.我尝试并测试了各种审计工具

>审计
>助手
> psacct

但没有一个完全符合我的要求.我的要求非常简单,我知道一个审计系统不会全部服务,我可能必须一起使用不同的审计系统.我想要

>监控用户运行的所有命令

psacct完美地做到了这一点,但它只告诉用户运行的命令,而不是传递给命令的参数.即
如果用户运行vim / erc / passwd,则lastcomm< username>只会告诉vim命令已运行但不告诉实际编辑了哪个文件.

审计人员说,例如运行了vim命令并编辑了一个特定文件,但没有告诉谁编辑了该文件.

假设我以sudo用户身份运行命令,那么如果有10个sudo用户作为gid并且uid将在命令输出中为超级用户,那么它不会告诉我哪个用户编辑了特定文件:

time->Sat Jun 20 15:52:45 2015
type=PATH msg=audit(1434795765.057:54685): item=4 name="/etc/passwd" inode=152790 dev=fd:00 mode=0100644 ouid=0 ogid=0 rdev=00:00 nametype=CREATE
type=PATH msg=audit(1434795765.057:54685): item=3 name="/etc/passwd" inode=152786 dev=fd:00 mode=0100644 ouid=0 ogid=0 rdev=00:00 nametype=DELETE
type=PATH msg=audit(1434795765.057:54685): item=2 name="/etc/passwd+" inode=152790 dev=fd:00 mode=0100644 ouid=0 ogid=0 rdev=00:00 nametype=DELETE
type=PATH msg=audit(1434795765.057:54685): item=1 name="/etc/" inode=130562 dev=fd:00 mode=040755 ouid=0 ogid=0 rdev=00:00 nametype=PARENT
type=PATH msg=audit(1434795765.057:54685): item=0 name="/etc/" inode=130562 dev=fd:00 mode=040755 ouid=0 ogid=0 rdev=00:00 nametype=PARENT
type=CWD msg=audit(1434795765.057:54685):  cwd="/etc"
type=SYSCALL msg=audit(1434795765.057:54685): arch=c000003e syscall=82 success=yes exit=0 a0=7fffba897300 a1=7fd7cc94ece0 a2=7fffba8971c0 a3=0 items=5 ppid=14041 pid=14043 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts1 ses=8494 comm="useradd" exe="/usr/sbin/useradd" key=(null)

>想跟踪对文件所做的实际更改

辅助工具告诉文件已被修改,但是如何获取实际修改的内容的细节以及哪些用户进行了修改?

最佳答案
您可以使用auditd和pam模块实现此目的.您需要在会话下加载pam模块pam_tty_audit

session required pam_tty_audit.so disable=testuser1 enable=testuser,root

在/etc/pam.d/password-auth和/etc/pam.d/system-auth文件中.

然后启用用户的按键将记录到审核日志中.

生成审计报告时,请使用-i选项和aureport来准确获取用户名.

例如:aureport –tty -i -ts今天

此方法的一个缺点是将记录所有击键,包括在终端中输入的密码.

对于跟踪文件,可以使用更改的助手.这使用校验和验证方法.但是文件中更改的确切行不可跟踪.

转载注明原文:auditd – 在linux中进行审计 - 代码日志