如何跟踪超级用户活动

mfr*_*man 21 security linux audit

我想知道在 Linux 环境中跟踪超级用户活动的最佳方法是什么。

具体来说,我正在寻找这些功能:

  • A) 将击键记录到安全的系统日志服务器
  • B) 能够重放 shell 会话(类似于 scriptreplay)
  • C)理想情况下,如果没有对服务器的物理访问,这应该是不可能(或非常困难)规避的。

在需要允许不同系统管理员(甚至第三方)在服务器上执行特权操作的环境中,从安全/审计的角度考虑这一点。

每个管理员都有自己的名义帐户,并且每个交互会话都应该被完整记录,并在必要时可以重播(例如,如果有人使用 mc 删除或更改关键文件,这还不够知道那个人发出了 mc 命令;必须有一种方法可以确切地看到启动 mc 后做了什么)。

附加说明

  1. 正如 womble 所指出的那样,最好的选择可能不是让人们以 root 权限登录以在服务器上执行更改,而是通过配置管理系统来执行此操作。所以让我们假设一种情况,我们没有这样的系统,我们需要通过同一服务器向不同的人授予 root 级别访问权限
  2. 我对偷偷地做这件事一点兴趣都没有:每个以 root 权限登录到服务器的人都会完全知道会话将被记录(例如,呼叫中心操作员知道他们的对话是正在录音)
  3. 没有人会使用通用超级用户帐户(“root”)
  4. 我知道ttyrpld并且它似乎在做我正在寻找的东西。但在这样做之前,我想知道是否可以通过使用未修改的内核来解决这个问题。我想知道是否有任何特别适用于 Debian(或一般的 Linux)的工具可以在不修补 shell 或内核的情况下对超级用户帐户进行全面审计。

Dis*_*ard 8

对于有多个管理员的环境,只要可能,就不要使用 root。

对所有事情都使用 sudo - sudo 是极其可配置且易于记录的。

记录任何/所有登录或 su 以 root 并调查它们,因为有人会绕过您既定的规则。

  • 有很多方法可以从人们合法需要运行的程序中获取 shell(例如从 sudo vi 中获取),以至于仅仅阻止 'sudo /bin/sh' 没什么意义......除非你可以确定你已经阻止了所有可能的方法,您只会发出挑战以寻找更晦涩的方法。在任何情况下:a) 有时 sudo /bin/sh 是必要的,并且 b) 这是一个管理问题,而不是技术问题。 (5认同)
  • 是的,sudo 有很好的日志记录——所有那些“womble 以 root 身份运行 /bin/sh”条目都是*真正*有帮助的。如果没有配置管理,人们总是会成为 root 来执行管理任务,而想要做一些邪恶的事情的人可以在执行有效任务的同一个 root 会话中做他们的事情。完美的封面。 (3认同)
  • 政策:“sudo /bin/sh” = 解雇/调查。很清楚,很简单的解决方案。 (2认同)

wom*_*ble 1

他们已经扎根了。你能期望的最好的结果就是至少看到他们什么时候决定突破你的小监控乌托邦,但除此之外他们做了什么就没有人能猜到了。

我能想到的“最佳”选择是强制使用普遍的配置自动化和管理,并使用修订控制系统管理清单并通过该系统部署更新。然后阻止实际 root 登录服务器。(紧急“哦,不,我破坏了一些东西”访问可以通过未分发且每次使用后更改的密码或 SSH 密钥来提供,每个人都可以观察搞砸的系统管理员,以确保他们不会改变任何东西)。

是的,这会带来不便和烦人,但如果你偏执到想要监视每个人的行为到这种程度,我猜你所处的环境在其他方面都很不方便和烦人,所以这会获胜看起来问题不大。