我使用 sudosh 来确保获得我的服务器 ssh 访问权限的供应商能够对他们在服务器上执行的操作负责。
sudosh 很好地记录了日志,但是它以被记录用户的写权限保存了日志。
我怎样才能防止这些日志被该用户删除?
答案1
我实现了比 sudosh 更好的东西。Linux
提供了一种使用“审计”系统的方法。借助内核的这一部分及其用户空间工具,您可以记录调用的系统调用(以及其他内容)。
需要观察的最重要的一个是“execve”系统调用。有了它的调用记录,您就会知道用户在“sudo some_shell”之后做了什么。
有关更多详细信息,请参阅此处。
审计 sudo 之后的用户操作
此带有 Syslog 的解决方案非常适合您的需要。
答案2
如果你真的有为“外部”人员提供 ssh 访问权限,在日志行生成后立即将其发送到他们无法访问的其他服务器(syslogd-* 已准备好登录到远程主机)。
如果需要更高级别的安全性/可追溯性——记录到行式打印机。它们倾向于在每次回车时将数据“刷新”到纸质记录中。让 cron 也以一定的时间间隔写入一些行(这样您就可以看到/记录您的安全性仍然正常运行)。