获得审计logging原始用户

这个问题与我以前的问题有关: 在生产服务器上loggingpipe理员运行的所有命令

pipe理员通过个人用户名login服务器是公司的政策,然后运行sudo -i成为root用户。 在运行sudo -i ,sudo将创build一个名为SUDO_USER的环境variables,其中包含原始用户的用户名。

是否有可能auditd包括这个variables在每个命令的日志? 或function等同。

这是为auditd设置的当前规则:

 # First rule - delete all -D # Increase the buffers to survive stress events. # Make this bigger for busy systems -b 320 # Log any command run on this system #-a exit,always -F arch=b64 -S execve -a exit,always -F arch=b32 -S execve 

如此处所述:

运用

session required pam_loginuid.so

在所有与login相关的PAMconfiguration文件(不是su和sudo的configuration文件)都会让auditd日志logging调用用户的uid字段。

你可以用auditd的日志查找这个id

ausearch -ua <uid>

产生用户发出的所有命令,即使在冒充另一个帐户时也是如此。

您请求的信息已经包含在日志中,非常愉快。 您要查找的特定字段是aud 。 从auditctl的手册页:

  auid The original ID the user logged in with. Its an abbreviation of audit uid. Sometimes its referred to as loginuid. Either the user account text or number may be used. 

作为一个例子,我使用以下方法生成了很多条目:

  1. 添加规则: -a always,exit -S sethostname -S setdomainname -k system-locale
  2. 用我的用户帐号login系统,通过发出su -
  3. 执行命令: hostname audit-test.home.private

type = SYSCALL msg = audit(1358306046.744:260):arch = c000003e syscall = 170 success = yes exit = 0 a0 = 2025010 a1 = 17 a2 = 7 a3 = 18 items = 0 ppid = 23922 pid = 26742 auid = 1000 uid = 0 gid = 0 euid = 0 suid = 0 fsuid = 0 egid = 0 sgid = 0 fsgid = 0 tty = pts4 ses = 16 comm =“hostname”exe =“/ usr / bin / hostname”subj = unconfined_u:unconfined_r:unconfined_t :s0-s0:c0.c1023 key =“system-locale”

所以,是的,日志信息是非常详细的,我们可以在日志消息中清楚地看到auid=1000 ,这对应于我的用户帐户的uid。

有关上述示例的更多详细信息以及对auditd的简要说明,请查看IT Security的博客文章,这是一个社区博客(我),其想象力的名称为“Audited简介” 。

fuero提到的ausearch命令是一套应用程序的一部分,用于search和运行针对这些相当全面的日志的报告。