首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >让auditd记录原始用户

让auditd记录原始用户
EN

Server Fault用户
提问于 2013-01-29 19:15:29
回答 2查看 5.6K关注 0票数 5

这个问题与我之前的问题有关:记录由管理员在生产服务器上运行的所有命令。

管理员通过个人用户名登录到服务器,然后运行sudo -i成为根,这是公司的策略。在运行sudo -i时,sudo将创建一个名为SUDO_USER的环境变量,该变量包含原始用户的用户名。

是否可以让auditd在每个命令的日志中包含这个变量?或者类似的功能。

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

代码语言:javascript
复制
# 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
EN

回答 2

Server Fault用户

回答已采纳

发布于 2013-02-05 15:41:45

正如所述,这里

使用

session required pam_loginuid.so

在所有与登录相关的PAM配置文件(而不是su和sudo的配置文件)中,auditd将允许auid在字段中记录调用用户的uid。

您可以在auditd的S日志中搜索此id

ausearch -ua <uid>

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

票数 4
EN

Server Fault用户

发布于 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.

举个例子,下面是我使用以下方法生成的大量条目:

  1. 添加规则:-a always,exit -S sethostname -S setdomainname -k system-locale
  2. 使用我的用户帐户登录到系统,并通过发出su -启动根shell
  3. 执行命令:hostname audit-test.home.private

subj=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命令是用于针对这些相当彻底的日志搜索和运行报告的一组应用程序的一部分。

票数 4
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/473601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档