如何记录用户执行的每个命令?


32

我想监视服务器中所有用户的活动。

即使用户从诸如vim之类的编辑器执行shell命令,我也希望在日志文件中看到它们。

我已经检查了工具acct,但未列出完整的命令。(如果我已经错过了一些选择,请纠正我)。

我应该使用哪种Linux工具来解决此问题?


1
。man脚本(1)
适配器


Answers:


32

将此行添加到负责登录的pam配置(基于redhat的发行版上的system-auth)

session    required     pam_tty_audit.so enable=*

要找出已完成的操作,可以使用。

ausearch -ts <some_timestamp> -m tty -i

这将产生如下输出:

 type=TTY msg=audit(11/30/2011 15:38:39.178:12763684) : tty pid=32377 uid=root
 auid=matthew major=136 minor=2 comm=bash data=<up>,<ret>

唯一的缺点是可能有点难以阅读,但它比大多数提出的解决方案要好得多,因为从理论上讲,它可以用来记录整个会话,这不尽人意。

编辑:哦,您可以使用aureport生成可以更有用的列表。

# aureport --tty
...
12. 11/30/2011 15:50:54 12764042 501 ? 4294967295 bash "d",<^D>
13. 11/30/2011 15:52:30 12764112 501 ? 4294967295 bash "aureport --ty",<ret>
14. 11/30/2011 15:52:31 12764114 501 ? 4294967295 bash <up>,<left>,<left>,"t",<ret>

感谢您的详细信息。我正在使用Ubuntu 10.04 LTS,当我检查文件夹/ lib / security /时,该模块不存在,但是该模块存在一个手册页。我想我已经打了这个bug bugs.launchpad.net/ubuntu/+source/pam/+bug/588547还有其他安装方式吗?
Supratik

错误报告表明已分发修复程序和更新。
马修·伊夫

@Mlfe我编译了PAM源代码,并将.so文件复制到/ lib / security /中,并且可以正常工作。再次感谢。
Supratik

1
@CameronKerr:密码问题已修复:redhat.com/archives/linux-audit/2013-May/msg00007.html
Yohann

3
注意,值得一提的是,要使以上功能正常运行auditd,必须首先启用守护程序(默认情况下,在我的CentOS 6.7安装中未启用该守护程序)。要启动守护程序,请使用:service auditd start,并使更改永久生效(在重新引导后),请使用chkconfig auditd on Source:access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/…access.redhat.com/documentation/en-US/ Red_Hat_Enterprise_Linux / ...
强尼


2

您可以使用snoopy

它是一个简单的命令日志记录库,而不是适当的审核解决方案(容易规避)。披露:我目前是史努比的维护者。


2

一个鲜为人知的技巧,但很容易做到的最棒的就是使用的内置审计功能sudo。Sudo附带了sudoreplay使重播会话变得容易的命令。它甚至可以中继vim会话(如您所建议)。

以下是几个简单步骤的使用方法:

  1. sudosh在您的系统上安装;这是一个围绕sudo命令的外壳程序包装程序,该命令程序使用户sudo自己(不是root)成为用户,并且可以用作系统登录外壳程序
  2. 启用sudo日志记录。编辑/etc/sudoers.d/sudosh Defaults log_output Defaults!/usr/bin/sudoreplay !log_output Defaults!/sbin/reboot !log_output

  3. 添加此命令以/etc/shells允许使用它登录: /usr/bin/sudosh

    提示:为防止用户使用其他Shell登录,请从中删除这些其他Shell /etc/shells

  4. 更新用户foobar以使用sudosh外壳程序。 chsh -s /usr/bin/sudosh foobar

有关更多详细信息,请参见:https : //github.com/cloudposse/sudosh/


1

这是一个神奇的解决方案:http : //www.cyberciti.biz/tips/howto-log-user-activity-using-process-accounting.html

  • 百胜安装psacct(redhat)
  • sudo apt-get install acct

您可以显示有关用户命令/连接等的统计信息。

列出给定用户调用的所有命令...

通过命令名称搜索记帐日志:$ lastcomm rm $ lastcomm passwd

等等,有关更多信息,请访问上面的链接..


3
在问题中有人说:“ acct它没有列出完整的命令”。
Putnik
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.