在Linux中记录“人员”活动


11

因此,我阅读了许多与此相关的文章,并且比以前更加困惑。有各种工具的建议,包括ttyrec,snoopy,acct,rootsh,sudosh,ttyrpld,unix审计等等。

就我而言,我希望能够记录在系统上执行的所有命令(例如启用了时间戳的历史记录),但我也想知道谁做了什么?但是,我们所有人都通过ssh登录到相同的一小部分用户帐户(取决于我们正在执行的操作)。我如何获得命令日志,包括“谁”会给我的信息(关于连接),以便我可以将操作跟踪到特定的人,而这只是一般的“用户”?


史努比应该能够做到这一点,也许还有许多其他选择。
2011年

2
系统调用,sudo,shell历史记录,文件系统更改?并非所有用户进程都必须从登录Shell启动。

Answers:


9

auditd软件包是为此目的而设计的,您可以使用PAM为每个登录名分配一个会话ID,以便可以将帐户的活动跟踪回到原始登录名(然后检查登录日志以确定该人从何处登录),并使用ausearch查找感兴趣的事件的命令。尽管需要更改一些更详细的信息以匹配您的分发,但您可以在此处阅读相当全面的指南。Redhat 在这里有一个带有FAQ和其他一些文档的站点。

由于这不依赖于尝试记录键入到shell中的命令或记录用户的命令历史记录,因此应记录诸如打开vi(可以通过X或in来完成screen),编写脚本(可能是一个字符使用vi的剪切/粘贴命令进行一些时间,:.!/usr/games/fortune然后运行几次以获取一些您可能无法记录的源数据),然后运行该:%!/bin/bash命令。


这看起来是最有前途的答案... 审核允许您使用登录时创建的审核ID传递给用户的任何子进程,无论从该登录到注销,始终跟踪该用户的行为,无论该用户可能采用哪种身份。原始登录过程。 现在,我需要再阅读一些内容,以了解如何实际实施它。感谢您缩小选择范围!
Ashimema

抱歉,花了这么长时间将这个答案标记为已接受。。我正在尝试!梦想成真..干杯们!
Ashimema 2011年

4

已经有各种各样的工具可供您使用,您的问题(以及这些答案)会提示诸如历史记录,史努比,已审计,sudo日志等...但是如果您有人们正在使用的“帐户子集”,服务器上没有办法告诉谁做了什么。可以明确告诉谁是用户的唯一方法是,如果用户拥有自己专门使用的计算机,并使用键盘记录程序来告诉他们在该键盘上实际键入的内容。

每当您共享帐户时,您都无法知道实际情况,因为您需要进一步的证据来证明谁在使用您的根帐户或bob帐户,或者您的员工正在做什么。如果您要调查特定事件中发生的情况,则可能需要查看访问策略和过程,恢复过程,并评估您的员工和/或在必要时进行再培训(或他们对敏感帐户的信任度),而不是直接专注于寻找做某事的人,因为这可能会浪费更多的资源来寻找做某事的人。

否则,您可能需要研究法医调查技术以跟踪发生的事件(驱动器映像,日志跟踪等)。如果您不调查事件,请考虑查看策略并进行更好的跟踪和帐户验证(只有您自己root,只有Bob会使用sudo使用他的帐户来获得更高的权限,安装和监视已审核的帐户等),并请注意不要让您信任的圈子像他们一样被持有显微镜,否则您可能会疏远尝试的人来完成他们的工作(或阻碍他们完成工作)。


2

经过Linux审核(http://people.redhat.com/sgrubb/audit/)将为您提供最大的力量来查看谁做了什么。您可以在DerfK的答案中找到更多有关它的信息。

但是,什么也不会告诉您,有n个人有权访问webadmin帐户,该用户是以webadmin身份登录的。我建议为每个用户使用命名帐户,然后使用su-或sudo从“功能”帐户运行命令。

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.