本文基于浪潮云启操作系统(InLinux)介绍审计功能及规则配置。
在X86-64和ARM64两个平台验证过。
操作系统版本信息如下:
1 安装audit服务
默认情况下,audit包是在系统安装时自动安装的,如果没有安装,也可以手工安装,安装方式如下:
sudo yum -y install audit
2 audit相关的两个配置文件
两个配置文件分别是:
1、 /etc/audit/auditd.conf
2、/etc/audit/rules.d/audit.rules
① /etc/audit/auditd.conf
/etc/audit/auditd.conf 是auditd守护进程的主要配置文件,用于定义守护进程的参数和行为。
该文件包含一系列的选项,其中一些常见的选项包括:
log_file: 指定审计日志文件的路径,通常是 /var/log/audit/audit.log。
log_group: 指定审计日志文件的组所有者,通常是 audit 或 root。
max_log_file: 指定在轮转之前审计日志文件可以增长到的最大大小(以MB为单位)。
max_log_file_action: 定义当日志文件达到 max_log_file 时应该采取的操作,如 rotate(轮转)、keep_logs(保留日志)或 ignore(忽略)。
num_logs: 指定要保留的审计日志文件的数量。
priority_boost: 定义审计消息的优先级提升级别。
dispatcher: 指定用于处理审计事件的插件或脚本的路径。
log_format: 定义审计日志的格式,可以是 raw(原始格式)或 enhanced(增强格式)。
这些选项允许系统管理员根据他们的需求配置auditd守护进程的行为。
② /etc/audit/rules.d/audit.rules
/etc/audit/rules.d/audit.rules 文件用于定义审计规则,这些规则指定了哪些系统事件应该被记录到审计日志中。审计规则使用auditctl命令的语法,并可以包含多个规则条目。每个规则条目都定义了一个或多个条件和一个或多个操作。
规则的条件可以包括:
-w: 监视对指定文件或目录的访问。
-p: 指定要监视的权限类型(如读、写、执行等)。
-k: 为规则分配一个关键字,以便后续搜索和分析。
-F: 指定其他过滤条件,如用户ID (uid)、进程ID (pid)、系统调用号 (S) 等。
-a: 用于添加或修改规则。通常与 -w、-p、-k、-F 等参数一起使用
-S: 指定要监视的系统调用号
-e: 控制auditd的行为。例如,-e 1 启动auditd,-e 0 停止auditd。
规则的操作通常是将匹配的事件记录到审计日志中。
在/etc/audit/rules.d/audit.rules中配置的规则不会自动加载,需要使用命令`augenrules --load` 加载配置到auditd服务中
系统管理员可以使用文本编辑器编辑 /etc/audit/audit.rules 文件来定义所需的审计规则,或者使用auditctl命令在运行时动态地添加、删除或修改规则。在修改了规则文件后,通常需要重新启动auditd守护进程或重新加载规则文件以使更改生效。
可以使用auditctl -l查看系统当前配置了多少审计规则,auditctl的使用见后面的章节。
3 auditctl命令使用
auditctl是配置和管理audit审计规则的客户端命令,可以实现查看、增加、删除审计规则。
通过auditctl配置的审计规则在重启后会丢失,如果要持久化审计规则,需要在/etc/audit/audit.rules中配置并保存。
-l : 查看已生效的审计规则
-D : 删除所有的审计配置
-a : 表示要添加规则
-F : 表示要添加一个过滤条件,如果过滤条件是auid,需要把判断条件用双引号括起来,如: -F "auid>=1000" -F "auid!=4294967295"
-S : 这是要监视的系统调用。-S execve: execve是一个系统调用,用于执行新进程。通过监视 execve 系统调用,可以捕获新进程的启动。
-w <path>: 监视<path> ( <path> 为文件路径 )
-p [r|w|x|a]: 权限 监视读取(r),写入(w),执行(x),属性更改(a)
-k <key>: 为事件添加一个标记,方便在审计日志中查找
更详细的使用可以使用auditctl -h命令查看