这个问题与我之前的问题有关:记录由管理员在生产服务器上运行的所有命令。
管理员通过个人用户名登录到服务器,然后运行sudo -i成为根,这是公司的策略。在运行sudo -i时,sudo将创建一个名为SUDO_USER的环境变量,该变量包含原始用户的用户名。
是否可以让auditd在每个命令的日志中包含这个变量?或者类似的功能。
这是当前为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发布于 2013-02-05 15:41:45
正如所述,这里:
使用
session required pam_loginuid.so
在所有与登录相关的PAM配置文件(而不是su和sudo的配置文件)中,auditd将允许auid在字段中记录调用用户的uid。
您可以在auditd的S日志中搜索此id
ausearch -ua <uid>
生成用户发出的所有命令,即使在模拟另一个帐户时也是如此。
发布于 2013-02-06 03:08:26
令人高兴的是,您请求的信息已经包含在日志中。您想要查找的特定字段是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.
举个例子,下面是我使用以下方法生成的大量条目:
-a always,exit -S sethostname -S setdomainname -k system-localesu -启动根shellhostname audit-test.home.privatesubj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 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 auid=1000 gid=0 gid=0 syscall=170 en21 en24“hostname”/usr/bin/hostname“en27#”system-locale
所以,虽然是的,但是日志消息非常冗长,我们可以在日志消息中清楚地看到auid=1000,它对应于我的用户帐户的uid。
有关上述示例的更多细节,以及对auditd的简要描述,请查看IT安全 (社区博客作者(me)的博客文章,名为审计简介%d )。
fuero提到的ausearch命令是用于针对这些相当彻底的日志搜索和运行报告的一组应用程序的一部分。
https://serverfault.com/questions/473601
复制相似问题