检查确认
要找出谁更改或者访问了监视的文件:
# ausearch -i -k [filter key]
例如:
# ausearch -i -k mail.log_yesterday ... type=PATH msg=audit(12/12/2013 00:30:00.407:6213) : item=0 name=/opt/sun/comms/messaging64/data/log/ inode=423325 dev=fd:00 mode=dir,700 ouid=mailsrv ogid=mail rdev=00:00 type=CWD msg=audit(12/12/2013 00:30:00.407:6213) : cwd=/var/opt/sun/comms/messaging64/log type=SYSCALL msg=audit(12/12/2013 00:30:00.407:6213) : arch=x86_64 syscall=rename success=yes exit=0 a0=7fff81d5caea a1=7fff81d5cb1f a2=0 a3=0 items=4 ppid=16442 pid=16453 auid=root uid=mailsrv gid=mail euid=mailsrv suid=mailsrv fsuid=mailsrv egid=mail sgid=mail fsgid=mail tty=(none) ses=570 comm=mv exe=/bin/mv key=mail.log_yesterday ...
在这里,我们看到了 mail.log 文件的轮换,这是由“return_job”完成的,默认情况下在 00:30 发生,并且由用户“mailsrv”运行。
我们可以看到 mail.log_yesterday 文件被 cat(进入 mail.log),被删除,并且 mail.log_current 被重命名为 mail.log_yesterday。
问题
文件不见了,并且找不到其消失的直接原因。
在CentOS/RHEL 系统中如何监控文件访问,特别是一些特殊文件如何被删除?
可以使用 Linux auditd 服务在文件的整个生命周期中对其进行监控。
www. On IT Road .com
步骤
- 要在 CentOS 或者 RHEL 上安装它,请运行:
# yum install audit
- 要在启动时启用该服务,请运行:
# chkconfig auditd on # For CentOS/RHEL 6 # systemctl enable auditd # For CentOS/RHEL 7
或者暂时启动它,直到下次重新启动:
# service auditd start # For CentOS/RHEL 6 # systemctl start auditd # For CentOS/RHEL 7
注意:systemctl restart auditd 在 RHEL7 中不起作用,因为内核以特殊方式处理 auditd。
我们将需要停止并启动该服务。
- 要查看特定文件以查看是否有内容触及该文件,请运行:
# auditctl -w [filename] -p rwxa -k [filter key]
其中:
-w [filename] :查看特定文件。
-p war :写入、追加、读取的权限过滤器。
-k [filter key] : 唯一标识审计日志的过滤键。
例如:
# auditctl -w /var/opt/sun/comms/messaging64/log/mail.log_yesterday -p rwxa -k mail.log_yesterday
- 要列出当前的规则集,请运行:
# auditctl -l
例如:
# auditctl -l LIST_RULES: exit,always watch=/var/opt/sun/comms/messaging64/log/mail.log_yesterday perm=rwxa key=mail.log_yesterday
日期:2020-09-17 00:13:43 来源:oir作者:oir