Linux Auditd监控挂载文件夹中的文件操作

Linux Auditd监控挂载文件夹中的文件操作

我有多节点 kubernetes 集群,我想监控已安装持久卷中的容器执行的文件操作。我发现所有 PV 数据都位于 中的节点/var/lib/kubelet/pods/<container-uid>/volumes/kubernetes.io~csi/<pv-name>/mount。因此我有这样的审计规则:

-w /var/lib/kubelet/pods -p r -k fileops_cdr_read
-w /var/lib/kubelet/pods -p w -k fileops_cdr_write
-w /var/lib/kubelet/pods -p x -k fileops_cdr_exec
-w /var/lib/kubelet/pods -p a -k fileops_cdr_append

容器是动态创建和删除的,所以我事先不知道容器的uid,所以我无法为每个容器设置特定的规则——这就是我为父文件夹设置监控的原因。

如果在部署 auditbeat 之前存在已安装数据的容器,则审计将按预期工作。但如果在部署 auditbeat 时创建容器,则不会捕获 ../mount 文件夹中的文件操作。重新部署 auditbeat 后,一切都将按预期工作。

我调查过,当你在 /mount 文件夹以外的任何地方操作数据时,所有事件都会被审计。但是,当你不重新启动 auditbeat 时,/mount 文件夹中不会捕获任何事件。

当我事先不知道容器的uid时,有什么方法可以实现对已挂载文件夹的监控?

相关内容