监视 Unix 系统上用户的 shell 活动?

监视 Unix 系统上用户的 shell 活动?

信任但要验证。

假设我想雇佣一个系统管理员,并授予他们我的 Unix 系统的 root 访问权限。我想为它们禁用 X windows,只允许使用 shell(可能通过 SSH),这样他们执行的所有操作都将通过 shell 进行(而不是鼠标操作)。

我需要一个工具将所有命令记录到远程服务器他们发布的内容就是他们发布的内容。因此,即使他们安装了后门并掩盖了他们的踪迹,也会被远程记录下来。

  • 我如何禁用除 shell 访问之外的所有访问?
  • 是否有一种工具可以即时远程记录发出的命令?

答案1

不要给他们 root 权限。给他们一个个人账户,并将其放在 sudoers 中。他们使用 sudo 启动的每个命令都将被放入日志中。但是,sudo 权限仍然允许他们清理日志,并以 root 身份登录sudo su -

解决方案是将日志隔离到另一台服务器上,例如系统日志工具。他们可以关闭它,但他们这样做会被记录下来,应该是一个巨大的危险信号。正如将su -。我猜你可以在sudoers经过一点思考。

答案2

是否有一种工具可以即时远程记录发出的命令?

Sudosh2 (http://sourceforge.net/projects/sudosh2/)可以满足您的一些需求。以下是他们网站上的描述:

sudosh 是一个审计 shell 过滤器,可以用作登录 shell。Sudosh 记录所有击键和输出,并可以像 VCR 一样回放会话。

用户执行‘sudo sudosh2’之类的命令,然后他们就有了sudo。

sudosh2 是一个 sudo shell,它将记录所有击键并记录用户会话中的所有内容(输入、输出、错误等)。您可以重播用户会话。这非常方便。

sudosh2 支持 syslog,您可以将此输出发送到远程服务器。

这可能无法满足您的所有需求,但可能会有所帮助。有些人还使用根什,但我不明白这与 sudosh 相比有何不同。

答案3

理论上,您可以使用 ssh 代理(在人员无法控制的系统上)记录主机和系统之间的所有流量。他通过 ssh 连接到系统,您在那里记录所有数据并将连接转发到目标服务器。本地日志记录守护程序违反了不向用户授予系统管理访问权限的基本原则,该原则旨在限制用户。

实际上,阅读命令日志并确定某人是否做了坏事几乎是不可能的。如果你不信任你的系统管理员,你就完蛋了。我不会费心去尝试。

答案4

用于将某人输入的所有内容记录到控制台中pam_tty_audit就是您想要的。我很确定它通过 syslog 记录输出,因此您可以将该日志泵送到另一个 syslog 服务器。

注意,这会记录所有内容,包括按键(向上、向下、ctrl 等)以及在密码字段中输入密码时记录密码。

相关内容