selinux 审计规则不记录任何内容

selinux 审计规则不记录任何内容

我正在尝试审核目录树的读取、写入和权限更改。我使用 创建了规则auditctl -w <path> -k media-watch,但ausearch -k media-watch仅显示规则的创建(或删除以进行调试),而不显示指定目录或其树下的文件创建或更改。如果相关,则 Selinux 已禁用。

为什么?如何确保文件访问/更改被记录以供审核?

答案1

手册页说这个-w已经被弃用了,所以我不会使用它。我会使用当前格式来制定这样的规则。例如:

auditctl -a always,exit -F dir=/path/to/dir/ -k media-watch

答案2

我将与 @Michael Hampton 争论是否应按照他建议的格式制定所有规则。但我同意他的观点,即从 Linux 审计内核的手册页中获取指导​​ [1]。

根据手册,有 3 种类型的规则controlfile(这是@RedTedRedemption 尝试做的)和system calls(这是@Michael 建议的)

在您的规则中,要跟踪文件的读取、写入和权限更改的修改,您需要添加-p具有以下选项的修饰符:

  • w = write
  • a = change permissions or access
  • r = read

我认为 @RedTedRedemption 的做法是正确的,他设置了一条规则来监视特定目录中的修改。但是,您需要在审计规则目录下的文件/etc/audit/。否则,每次重新启动审计守护程序或重新启动服务器时,都会再次应用默认规则,并且您的设置将不再记录到文件中/var/log/audit/audit.log

要设置规则以永久监视目录,您必须在规则设置文件中输入以下行:/etc/audit/audit.rules

-w </your/file/path> -p war -k <your-key> 此外,您还需要评论或者也从那里删除这些规则:

# First rule – delete all
#-D
# Disable system call auditing.
# Remove the following line if you need the auditing.
#-a never,task

因为上述control规则在重新加载时会覆盖并删除所有后续规则

然后,当你将更改应用到审计规则,运行以下命令:

  • service auditd reload或者systemctl auditd reload
  • service auditd restart或者systemctl auditd restart

最后,要查询与您的规则相关的审计日志,您需要运行以下命令:

  • sudo ausearch -i -k <your-key>-> 搜索与规则键相关的事件
  • sudo aureport -k-> 在屏幕上打印按规则键组织的审计报告
  • sudo aureport -f-> 在屏幕上打印按文件名称组织的审计报告

参考: https://linux.die.net/man/7/audit.rules[1]

相关内容