![Linux Auditd监控挂载文件夹中的文件操作](https://linux22.com/image/780502/Linux%20Auditd%E7%9B%91%E6%8E%A7%E6%8C%82%E8%BD%BD%E6%96%87%E4%BB%B6%E5%A4%B9%E4%B8%AD%E7%9A%84%E6%96%87%E4%BB%B6%E6%93%8D%E4%BD%9C.png)
我有多节点 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时,有什么方法可以实现对已挂载文件夹的监控?