因此,我阅读了许多与此相关的文章,并且比以前更加困惑。有各种工具的建议,包括ttyrec,snoopy,acct,rootsh,sudosh,ttyrpld,unix审计等等。
就我而言,我希望能够记录在系统上执行的所有命令(例如启用了时间戳的历史记录),但我也想知道谁做了什么?但是,我们所有人都通过ssh登录到相同的一小部分用户帐户(取决于我们正在执行的操作)。我如何获得命令日志,包括“谁”会给我的信息(关于连接),以便我可以将操作跟踪到特定的人,而这只是一般的“用户”?
因此,我阅读了许多与此相关的文章,并且比以前更加困惑。有各种工具的建议,包括ttyrec,snoopy,acct,rootsh,sudosh,ttyrpld,unix审计等等。
就我而言,我希望能够记录在系统上执行的所有命令(例如启用了时间戳的历史记录),但我也想知道谁做了什么?但是,我们所有人都通过ssh登录到相同的一小部分用户帐户(取决于我们正在执行的操作)。我如何获得命令日志,包括“谁”会给我的信息(关于连接),以便我可以将操作跟踪到特定的人,而这只是一般的“用户”?
Answers:
该auditd
软件包是为此目的而设计的,您可以使用PAM为每个登录名分配一个会话ID,以便可以将帐户的活动跟踪回到原始登录名(然后检查登录日志以确定该人从何处登录),并使用ausearch
查找感兴趣的事件的命令。尽管需要更改一些更详细的信息以匹配您的分发,但您可以在此处阅读相当全面的指南。Redhat 在这里有一个带有FAQ和其他一些文档的站点。
由于这不依赖于尝试记录键入到shell中的命令或记录用户的命令历史记录,因此应记录诸如打开vi(可以通过X或in来完成screen
),编写脚本(可能是一个字符使用vi的剪切/粘贴命令进行一些时间,:.!/usr/games/fortune
然后运行几次以获取一些您可能无法记录的源数据),然后运行该:%!/bin/bash
命令。
已经有各种各样的工具可供您使用,您的问题(以及这些答案)会提示诸如历史记录,史努比,已审计,sudo日志等...但是如果您有人们正在使用的“帐户子集”,服务器上没有办法告诉谁做了什么。可以明确告诉谁是用户的唯一方法是,如果用户拥有自己专门使用的计算机,并使用键盘记录程序来告诉他们在该键盘上实际键入的内容。
每当您共享帐户时,您都无法知道实际情况,因为您需要进一步的证据来证明谁在使用您的根帐户或bob帐户,或者您的员工正在做什么。如果您要调查特定事件中发生的情况,则可能需要查看访问策略和过程,恢复过程,并评估您的员工和/或在必要时进行再培训(或他们对敏感帐户的信任度),而不是直接专注于寻找做某事的人,因为这可能会浪费更多的资源来寻找做某事的人。
否则,您可能需要研究法医调查技术以跟踪发生的事件(驱动器映像,日志跟踪等)。如果您不调查事件,请考虑查看策略并进行更好的跟踪和帐户验证(只有您自己root,只有Bob会使用sudo使用他的帐户来获得更高的权限,安装和监视已审核的帐户等),并请注意不要让您信任的圈子像他们一样被持有显微镜,否则您可能会疏远尝试的人来完成他们的工作(或阻碍他们完成工作)。
经过Linux审核(http://people.redhat.com/sgrubb/audit/)将为您提供最大的力量来查看谁做了什么。您可以在DerfK的答案中找到更多有关它的信息。
但是,什么也不会告诉您,有n个人有权访问webadmin帐户,该用户是以webadmin身份登录的。我建议为每个用户使用命名帐户,然后使用su-或sudo从“功能”帐户运行命令。