FAIRYFAR-INTERNAL
 
  FAIRYFAR-INTERNAL  |  SITEMAP  |  ABOUT-ME  |  HOME  
Linux使用auditd监控文件删除

1. audit

Linux系统有一个叫 auditd 的审计工具。这个工具在大多数Linux操作系统中是默认安装的。基于 Linux2.6.11.12,提供了内核的审计机制。实现系统调用审计、过滤审计事件的机制。

2. 安装auditd

大多数情况下,发行版上已经安装了 auditd。如果没有,请使用 yum 安装它:

# yum install audit

确保服务在启动时启动并启动服务:

# systemctl enable auditd
# systemctl start auditd

在 CentOS/RHEL 7 中,建议我们在重新启动 auditd 服务时使用“service”命令而不是 systemctl。

如果我们使用 systemctl 命令,我们可能会遇到以下错误:

# systemctl restart auditd
Failed to restart auditd.service: Operation refused, unit auditd.service may be requested by dependency only (it is configured to refuse bananaal start/stop).
See system logs and 'systemctl status auditd.service' for details.

3. 配置审计规则

3.1 配置规则

以监控/sys/fs/cgroup/cpu/gpdb/6438/sys/fs/cgroup/cpu/gpdb/1两个目录删除事件为例:

# vi /etc/audit/rules.d/audit.rules
-a always,exit -F dir=/sys/fs/cgroup/cpu/gpdb/6438 -S unlink -S unlinkat -S rename -S renameat -S rmdir -k delete_var_6438
-a always,exit -F dir=/sys/fs/cgroup/cpu/gpdb/1 -S unlink -S unlinkat -S rename -S renameat -S rmdir -k delete_var_1

上述规则监控这个两个目录的取消链接、重命名、删除等更改。

需要重启auditd服务才能生效:

# service auditd restart

使用命令auditctl -l查看当前活动的auditd规则。

# auditctl -l
-a always,exit -S rename,rmdir,unlink,unlinkat,renameat -F dir=/sys/fs/cgroup/cpu/gpdb/6438 -F key=delete_var_6438
-a always,exit -S rename,rmdir,unlink,unlinkat,renameat -F dir=/sys/fs/cgroup/cpu/gpdb/1 -F key=delete_var_1

3.2 检查审计日志

先执行删除命令,触发审计事件:

# rmdir /sys/fs/cgroup/cpu/gpdb/6438

查询删除目录审计日志:

# ausearch -k delete_var
----
time->Wed May 31 09:18:11 2023
type=PROCTITLE msg=audit(1685495891.375:19007): proctitle=726D646972002F7379732F66732F6367726F75702F6370752F677064622F36343338
type=PATH msg=audit(1685495891.375:19007): item=1 name="/sys/fs/cgroup/cpu/gpdb/6438" inode=95675 dev=00:19 mode=040700 ouid=1000 ogid=1000 rdev=00:00 objtype=DELETE cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0
type=PATH msg=audit(1685495891.375:19007): item=0 name="/sys/fs/cgroup/cpu/gpdb/" inode=15517 dev=00:19 mode=040755 ouid=1000 ogid=1000 rdev=00:00 objtype=PARENT cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0
type=CWD msg=audit(1685495891.375:19007):  cwd="/root"
type=SYSCALL msg=audit(1685495891.375:19007): arch=c000003e syscall=84 success=yes exit=0 a0=7fffcd234504 a1=2 a2=7ff0e2b34280 a3=7fffcd232860 items=2 ppid=18081 pid=25963 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=2424 comm="rmdir" exe="/usr/bin/rmdir" key="delete_var_6438"
----
time->Wed May 31 09:18:11 2023
type=CONFIG_CHANGE msg=audit(1685495891.375:19008): op=remove_rule dir="/sys/fs/cgroup/cpu/gpdb/6438" key="delete_var_6438" list=4 res=1

4.参考



打赏作者以资鼓励: