通过代理记录所有 SSH 命令

通过代理记录所有 SSH 命令

问题:我有一个生产服务器,我不信任任何人。但我不可能是唯一一个可以访问它的人。

实现:我需要允许人们以 root 身份登录,但通过代理,以便他们通过 ssh 输入/发送的任何内容都会记录在他们实际上无权访问的代理机器上(因此他们无法篡改日志)。

理想的设置是什么?我只遇到过 tshark (SSH 记录所有命令),但我实际上并不确定它是否适合这项工作,也不确定我该如何设置它,因为人们说它在协议级别记录流量,而 ssh 加密发生在应用程序级别。

有人能为此提供经过测试的明确解决方案吗?

答案1

https://goteleport.com它应该能满足您的要求。他们说它已经准备好投入生产了,但我正在试用它,我觉得它还处于早期开发阶段。

我正在寻找替代方案,所以我发现您的问题仍然相关。我会选择商业解决方案。

答案2

您可以尝试 NHI:https://github.com/strang1ato/nhi

nhi自动捕获有关每个执行的命令以及周围的一切的所有潜在有用信息,并提供强大的查询机制。

nhi保存以下记录:

  • 命令
  • 命令输出
  • 命令的退出状态
  • 命令执行结束时的工作目录
  • 命令开始时间
  • 命令完成时间
  • 命令执行时的 shell 提示符

nhi还保存有关 shell 会话的一般信息记录。

[...]

nhi 守护进程基于 eBPF - 一项内置于 Linux 内核的技术。使用可eBPF保证该工具的出色性能和低开销,因为跟踪是在内核内安全地完成的。

nhi不会影响任何程序/进程(以及一般操作系统)的行为。

相关内容