规则配置:
cat >> /etc/audit/rules.d/audit.rules << EOF
# 记录用户登录认证
-a always,exit -F arch=b64 -S execve -F path=/bin/login -F key=user-login
# 记录文件权限变更
-a always,exit -F arch=b64 -S chmod -S fchmod -S fchmodat -F key=permission-change
-a always,exit -F arch=b64 -S chown -S fchown -S fchownat -S lchown -F key=permission-change
# 记录文件访问
-a always,exit -F arch=b64 -S open -S openat -F exit=-EACCES -F key=file-access
-a always,exit -F arch=b64 -S open -S openat -F exit=-EPERM -F key=file-access
# 记录进程创建
-a always,exit -F arch=b64 -S execve -F key=process-create
# 记录对 /etc/passwd 的访问
-w /etc/passwd -p wa -k passwd-access
# 记录对 /etc/shadow 的访问
-w /etc/shadow -p wa -k shadow-access
# 记录用户变更
-w /etc/passwd -p wa -k user-change
-w /etc/group -p wa -k group-change
# 记录系统时间变更
-a always,exit -F arch=b64 -S adjtimex -S settimeofday -S clock_settime -k time-change
# 记录网络配置变更
-w /etc/sysconfig/network-scripts/ -p wa -k network-config-change
# 记录 sudo 命令使用
-w /usr/bin/sudo -p x -k sudo-cmd
# 记录审计日志的删除和修改
-w /var/log/audit/ -p wa -k audit-log-change
max_log_file = 50 # 日志文件最大 50MB
num_logs = 5 # 保留 5 个日志文件
EOF常用命令:
# ausearch用法
# 1. 搜索特定事件类型
# 搜索所有与用户登录相关的事件(`USER_LOGIN`):
ausearch -m USER_LOGIN
# 搜索所有与文件删除相关的事件(`UNLINK`):
ausearch -m UNLINK
# 2. 按时间范围搜索
# 搜索过去 24 小时内发生的所有事件:
ausearch -ts yesterday -te now
# 搜索从 2024年10月1日 00:00:00 到 2024年10月2日 23:59:59 的事件:
ausearch -ts 10/01/2024 00:00:00 -te 10/02/2024 23:59:59
# 3. 按用户 ID 搜索
# 搜索用户 ID 为 `1000` 的所有事件:
ausearch -ui 1000
# 搜索与 `root` 用户(UID 为 0)相关的所有事件:
ausearch -ui 0
# 4. 按进程 ID 搜索
# 搜索进程 ID 为 `1234` 的所有事件:
ausearch -p 1234
# 5. 按文件路径搜索
# 搜索与 `/etc/passwd` 文件相关的事件:
ausearch -f /etc/passwd
# 搜索与 `/var/log/secure` 文件相关的事件:
ausearch -f /var/log/secure
# 6. 按关键字搜索
# 搜索与关键字 `ssh` 相关的事件:
ausearch -k ssh
# 搜索与关键字 `sudo` 相关的事件:
ausearch -k sudo
# 7. 组合条件搜索
# 搜索用户 ID 为 `1000` 且与 `sudo` 相关的事件:
ausearch -ui 1000 -k sudo
# 搜索过去 24 小时内与 `/etc/passwd` 文件相关的事件:
ausearch -ts yesterday -te now -f /etc/passwd
# 8. 格式化输出
# 将搜索结果格式化为更易读的形式:
ausearch -m USER_LOGIN -i
# 9. 搜索特定审计规则生成的事件
# 如果你使用了自定义审计规则(例如监控 `/etc/shadow` 文件的访问),可以通过规则的关键字搜索相关事件:
ausearch -k shadow_access
# 10. 搜索失败的事件
# 搜索所有失败的系统调用事件(`SYSCALL` 类型且结果不为 `success`):
ausearch -m SYSCALL -sv no
# 11. 搜索原始审计日志
# 显示原始审计日志(未格式化):
ausearch -r
# 12. 搜索特定命令的执行
# 搜索所有执行 `rm` 命令的事件:
ausearch -m EXECVE -x rm
# 搜索所有执行 `sudo` 命令的事件:
ausearch -m EXECVE -x sudo
# 13. 搜索网络相关事件
# 搜索所有与网络连接相关的事件(`SOCKADDR` 类型):
ausearch -m SOCKADDR
# 14. 搜索文件权限更改事件
# 搜索所有与文件权限更改相关的事件(`CHMOD` 类型):
ausearch -m CHMOD
# 15. 搜索用户账户更改事件
# 搜索所有与用户账户更改相关的事件(`USER_ACCT` 类型):
ausearch -m USER_ACCT
# 16. 搜索系统重启或关机事件
# 搜索所有与系统重启或关机相关的事件(`SYSTEM_SHUTDOWN` 类型):
ausearch -m SYSTEM_SHUTDOWN
# 17. 搜索 SELinux 相关事件
# 搜索所有与 SELinux 相关的事件(`AVC` 类型):
ausearch -m AVC
# 18. 搜索特定时间点的事件
# 搜索 2024年10月1日 12:00:00 到 12:30:00 之间的事件:
ausearch -ts 10/01/2024 12:00:00 -te 10/01/2024 12:30:00
# 19. 搜索文件内容修改事件
# 搜索所有与文件内容修改相关的事件(`PATH` 类型):
ausearch -m PATH
# 20. 搜索特定审计日志文件
# 如果审计日志被归档到其他文件(例如 `/var/log/audit/audit.log.1`),可以指定文件进行搜索:
ausearch -if /var/log/audit/audit.log.1 -m USER_LOGIN
# aureport用法
`aureport` 是 Linux 审计框架中的另一个工具,用于生成审计日志的汇总报告。与 `ausearch` 不同,`aureport` 主要用于统计和分析审计日志中的数据,生成易于理解的报告。以下是 `aureport` 的基本用法和常见示例。
---
### 基本用法
```bash
aureport [选项]
```
---
### 常见选项
# 1. 生成事件汇总报告:
aureport -e
# 2. 生成用户登录报告:
aureport -l
# 3. 生成文件访问报告:
aureport -f
# 4. 生成系统调用报告:
aureport -s
# 5. 生成进程报告:
aureport -p
# 6. 生成网络访问报告:
aureport -n
# 7. 生成审计规则报告:
aureport -r
# 8. 生成失败事件报告:
aureport --failed
# 9. 生成时间范围报告:
aureport -ts 10/01/2024 00:00:00 -te 10/01/2024 23:59:59
# 10. 生成详细报告:
aureport -i