我们有大约一千台服务器/虚拟机,目前很难追踪谁在哪里做了什么。更糟糕的是,客户可以访问自己的机器,但通常自己也不知道谁可能利用他们的访问权限做了什么。
我在找 :
- 记录用户和root运行的每个命令
- 有一种方法可以从 cron 或其他运行命令的方式(PHP ..)中分辨出 SSH 会话
- 记录环境变量,或者至少记录每个命令的一个环境变量(以区分以 root 身份登录的多个用户)
- 命令运行的时间有吗?例如,尝试了解 vim 在特定文件上打开了多长时间,以便与在另一个 shell 中运行的服务重新加载相关联
- 理想情况下,没有办法绕过日志记录
我不介意开发自己的一套工具来将大量日志解析为可用的东西,我主要在寻找获取信息本身的最佳方法。
阅读此主题看起来 auditd 是 2013 年最好的方法,现在还是这样吗?我猜它不会记录像 echo 这样的 shell 内置命令,但也许这不是什么大问题。有没有办法配置它来告诉你哪个进程产生了什么(区分 sshd 和 cron、PHP 等)?有没有办法记录每个 execve 的环境变量?
看起来有很多更简单的工具可用,但它们要么很重(很麻烦?),要么很容易绕过,这使得它有点毫无意义。例如,托管 wordpress 的服务器经常被“黑客入侵”,当我们稍后检测到时,最好有一个记录到底发生了什么的日志。
谢谢 !