问题:我有一个生产服务器,我不信任任何人。但我不可能是唯一一个可以访问它的人。
实现:我需要允许人们以 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
不会影响任何程序/进程(以及一般操作系统)的行为。