在 Linux 中记录“人员”活动

在 Linux 中记录“人员”活动

所以我读了很多与此相关的帖子,但比以前更加困惑了。有各种工具的推荐,包括 ttyrec、sno​​opy、acct、rootsh、sudosh、ttyrpld、unix 审计等等。

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

答案1

auditd软件包就是为此而设计的,您可以使用 PAM 为每个登录分配一个会话 ID,这样您就可以跟踪帐户上的活动,直到原始登录(然后检查登录日志以确定该人从哪里登录),并使用命令ausearch来定位您感兴趣的事件。您可以阅读一个非常全面的指南这里不过,有些细节需要更改才能与您的发行版匹配。Redhat 有一个网站,其中包含常见问题解答和一些其他文档这里

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

答案2

你已经可以使用各种工具,你的问题(和这些答案)暗示了这些工具,比如历史记录、snoopy、auditd、sudo 日志等……但是如果你有一个人们正在使用的“帐户子集”,那么在服务器上就无法知道谁做了什么。唯一能具体知道谁做的方法是,如果用户有他们自己专门使用的计算机,并使用键盘记录器来记录他们在键盘上实际输入的内容。

每当您共享帐户时,您都无法知道到底发生了什么,因为您需要进一步的证据来证明谁在使用您的 root 帐户或 bob 帐户或您的人员正在做什么。如果您试图调查特定事件中发生的事情,您可能需要审查您的访问政策和程序、恢复程序,并评估您的员工和/或在必要时进行再培训(或评估他们在敏感帐户方面的可信度),而不是直接专注于追查谁做了某事,因为这可能会耗费比您在找到做这件事的人时所获得的资源更多的资源。

否则,您可能需要研究法医调查技术来追踪发生的事情(驱动器映像、日志跟踪等)。如果您没有调查事件,请检查您的政策并制定更好的跟踪和帐户验证(只有您拥有root权限,只有Bob使用他的帐户使用sudo来访问更高的权限,安装和监控auditd等),并注意不要让您信任的圈子感觉他们被放在显微镜下,否则您可能会疏远那些试图完成工作的人(或阻碍他们完成工作)。

答案3

Linux 审计 (http://people.redhat.com/sgrubb/audit/) 将赋予您最大的权力来观察谁做了什么。您可以在 DerfK 的回答中找到更多信息。

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

相关内容