如何从用户进程而不是文件系统本身监视 Linux 用户的文件修改?

如何从用户进程而不是文件系统本身监视 Linux 用户的文件修改?

我们有一个要求,需要每天向我们提供通过 SSH 协议所做的所有更改(以及更改者)的报告;无论是文件还是数据库资源。

监控数据库操作没有问题,但每秒大约有 4000 个查询,记录每个查询只是为了捕获来自特定用户或主机的查询,这需要一些规划。但这是可以做到的,所以我对此没意见。

由于各种原因,我们有几个高级开发人员可以通过 ssh 访问生产 Web 服务器。可以使用 VIM 或其他常用文本编辑器(如 Pico)编辑文件,但应该使用部署系统。我们需要观察并报告此部署过程之外的 Web 环境何时被修改。

我们的 Web 目录结构包含超过 5,000,000 个不同的文件和文件夹,有些目录中的文件太多,命令“ls”会中断或挂起。这是一个继承的 CRM 系统,但它是实时生产的。因此,诸如 ossec hids、inotify 或其他系统/文件监控进程之类的实用程序将需要大量资源来进行实时监控和通知。

除了监视文件系统之外,还应该可以简单地监视用户并观察他们何时访问定义路径内的文件或目录以及记录他们所做的更改。

至于要求,我们需要提供全天所有文件和数据库更改的每日报告(通过 ssh),如果需要,还要提供所做的更改(前后)。Linux 命令实用程序“脚本”几乎为我们提供了重播,只是当用户打开某些程序(vim 等)时它不喜欢工作。需要另一种记录方法。

我很惊讶没有一个真正的软件包具有一体化的基于实时终端的用户监控解决方案;包括目录路径跟踪、资源访问、带时间滑块的修改、可按主机或用户(本地/ ldap /等)过滤的事件历史记录。

或者...有这个吗?

答案1

我认为 auditd 可能就是你要找的东西。不过我不确定它是否能够记录差异。

相关内容