Linux安全审计实战:auditd规则模板与日志分析
本文提供了一套完整的auditd审计规则模板及日志分析速查表,包含账号安全监控、权限变更监控、敏感目录监控等六大场景的永久规则配置,可直接复制使用。同时介绍了ausearch精准查询和aureport统计报表两大核心工具的使用方法,以及日志轮转、性能优化等注意事项。文章强调按"账号安全→权限变更→敏感数据→危险命令"优先级配置规则,建议先部署核心规则再扩展业务需求监控,适合运维
·
一、auditd 常用规则模板(永久规则,直接复制)
所有规则均为永久规则,需写入 /etc/audit/rules.d/custom.rules 文件,加载后开机自动生效。按场景模块化划分,可按需勾选添加。
1. 账号安全监控(防后门用户 / 账号篡改)
bash
# 监控用户账号文件(创建/修改/删除用户)
-w /etc/passwd -p wa -k account_passwd # 用户账号核心文件
-w /etc/group -p wa -k account_group # 用户组文件
-w /etc/shadow -p wa -k account_shadow # 密码哈希文件(高敏感)
-w /etc/gshadow -p wa -k account_gshadow# 组密码文件
-w /var/log/wtmp -p wa -k login_history # 登录历史记录
-w /var/log/btmp -p wa -k failed_login # 失败登录记录
2. 权限变更监控(防提权 / 权限滥用)
bash
# 监控权限修改工具
-w /usr/bin/chmod -p xa -k perm_chmod # 修改文件权限
-w /usr/bin/chown -p xa -k perm_chown # 修改文件所有者
-w /usr/bin/chgrp -p xa -k perm_chgrp # 修改文件所属组
# 监控sudo相关(权限提升关键)
-w /usr/bin/sudo -p xa -k sudo_exec # sudo命令执行
-w /etc/sudoers -p wa -k sudoers_modify # sudo配置文件修改
-w /etc/sudoers.d/ -p wa -k sudoers_d_modify # sudo附加配置目录
3. 敏感目录 / 文件监控(防数据泄露 / 篡改)
bash
# 业务数据目录(替换为实际路径)
-w /data/ -p rwxa -k sensitive_data # 递归监控/data目录(读/写/执行/属性变更)
-w /var/www/html/ -p rwxa -k web_data # Web网站根目录(适用于Web服务器)
# 系统敏感文件
-w /etc/profile -p wa -k profile_modify # 环境变量配置文件
-w /etc/bashrc -p wa -k bashrc_modify # Bash配置文件
-w /etc/hosts -p wa -k hosts_modify # 主机映射文件
4. 危险命令监控(防误删 / 恶意破坏)
bash
# 文件删除/移动命令
-w /usr/bin/rm -p xa -k cmd_rm # 删除文件(高危)
-w /usr/bin/rmdir -p xa -k cmd_rmdir # 删除目录
-w /usr/bin/mv -p xa -k cmd_mv # 移动/重命名文件
# 系统操作命令
-w /usr/bin/reboot -p xa -k cmd_reboot # 重启系统
-w /usr/bin/shutdown -p xa -k cmd_shutdown # 关闭系统
-w /usr/bin/dd -p xa -k cmd_dd # 磁盘读写(防数据擦除)
5. SSH 安全监控(防暴力破解 / 配置篡改)
bash
# SSH配置文件监控
-w /etc/ssh/sshd_config -p wa -k sshd_config # SSH服务配置
-w /etc/ssh/ssh_config -p wa -k ssh_config # SSH客户端配置
# SSH登录日志监控(按系统区分)
-w /var/log/auth.log -p r -k ssh_login_ubuntu # Ubuntu SSH登录日志
# -w /var/log/secure -p r -k ssh_login_centos # CentOS SSH登录日志
6. 系统脚本 / 启动项监控(防恶意篡改)
bash
# 系统启动脚本
-w /etc/init.d/ -p wa -k init_script # 系统服务脚本目录
-w /etc/rc.local -p wa -k rc_local # 开机自启脚本
-w /etc/systemd/system/ -p wa -k systemd_service # systemd服务配置
# 定时任务监控(防恶意计划任务)
-w /etc/crontab -p wa -k crontab_modify # 系统定时任务
-w /etc/cron.d/ -p wa -k cron_d_modify # 定时任务附加目录
-w /var/spool/cron/ -p wa -k cron_spool # 用户定时任务
规则加载与验证(必执行)
bash
# 1. 保存规则文件后,设置权限(防止被篡改)
sudo chown root:root /etc/audit/rules.d/custom.rules
sudo chmod 600 /etc/audit/rules.d/custom.rules
# 2. 加载规则(立即生效,无需重启auditd)
sudo augenrules --load
# 3. 验证规则是否生效
sudo auditctl -l
二、auditd 日志分析速查表(核心命令直接复制)
审计日志默认路径:/var/log/audit/audit.log,核心工具为 ausearch(精准查询)和 aureport(统计报表),按功能分类整理。
2.1 ausearch:精准查询日志(应急响应首选)
| 功能场景 | 命令 | 参数说明 |
|---|---|---|
| 按关键词查询(最常用) | sudo ausearch -k account_passwd -i |
-k:规则关键词;-i:人性化输出 |
| 查询指定时间范围日志 | sudo ausearch -k sensitive_data -ts 2024-06-01 -te 2024-06-02 -i |
-ts:开始时间;-te:结束时间 |
| 查询今日日志 | sudo ausearch -k cmd_rm -ts today -i |
today:简化时间(支持yesterday) |
| 查询失败事件 | sudo ausearch -m SYSCALL -f exit=-EPERM -i |
-m:事件类型;exit=-EPERM:权限失败 |
| 查询文件变更记录 | sudo ausearch -f /etc/passwd -i |
-f:指定文件路径 |
| 查询进程执行记录 | sudo ausearch -x /usr/bin/sudo -i |
-x:指定进程名 |
| 导出查询结果 | sudo ausearch -k ssh_login_ubuntu -i > ssh_audit.log |
导出到文件,便于分析 |
2.2 aureport:生成统计报表(合规审计首选)
| 统计场景 | 命令 | 核心作用 |
|---|---|---|
| 总体事件统计 | sudo aureport -i |
按事件类型汇总(如账号变更、权限修改) |
| 按用户统计操作 | sudo aureport -u -i |
定位高频操作用户(防异常账号) |
| 按进程统计执行 | sudo aureport -x -i |
统计进程执行次数(排查恶意进程) |
| 按文件统计变更 | sudo aureport -f -i |
汇总被修改的文件(防数据篡改) |
| 失败事件报表 | sudo aureport -f --failed -i |
仅显示失败操作(如登录失败、权限不足) |
| 时间范围报表 | sudo aureport -ts 09:00 -te 18:00 -i |
统计工作时间内的审计事件 |
| SSH 登录统计 | sudo aureport -k ssh_login_ubuntu -i |
按关键词统计 SSH 相关事件 |
2.3 应急筛选:快速定位异常(直接复制)
bash
# 1. 快速查找/etc/passwd被修改的记录
sudo grep account_passwd /var/log/audit/audit.log | tail -20
# 2. 查找最近10条rm命令执行日志
sudo ausearch -k cmd_rm -i | tail -10
# 3. 查找SSH登录失败记录
sudo ausearch -k failed_login -i
# 4. 查找sudo执行的高危操作
sudo ausearch -k sudo_exec -i | grep "rm\|chmod 777"
# 5. 查找敏感目录/data的异常访问
sudo ausearch -k sensitive_data -i | grep "WRITE\|DELETE"
三、使用注意事项
🔴 核心提醒:
- 规则加载:修改永久规则后,必须执行
sudo augenrules --load才能生效; - 日志安全:审计日志权限设为
600(chmod 600 /var/log/audit/audit.log),仅 root 可读写,防止被篡改; - 性能优化:避免监控
/根目录或高 IO 目录(如数据库数据目录),否则会导致系统卡顿; - 日志轮转:调整
/etc/audit/auditd.conf中的max_log_file=100(单日志 100MB)和num_logs=5(保留 5 个轮转日志),防止磁盘占满; - CentOS 7 特殊:auditd 无法重启,修改
auditd.conf后需重启系统,优先使用永久规则避免临时规则丢失。:::
实战优化技巧
- 关键词命名规范:统一用 “场景_操作” 格式(如
account_passwd、cmd_rm),便于日志过滤; - 模块化管理:规则文件按 “场景注释 + 规则” 分组,后续可按需启用 / 禁用;
- 远程备份:将审计日志同步到 ELK、Graylog 等远程日志服务器,防止本地日志被删除。
四、总结
- 规则模板核心:按 “账号安全→权限变更→敏感数据→危险命令” 优先级配置,覆盖 80% 企业安全场景;
- 日志分析逻辑:应急响应用
ausearch精准查询,合规审计用aureport生成报表; - 落地建议:先配置 “账号安全 + SSH 安全 + 危险命令” 核心规则,再根据业务需求添加敏感目录监控。
所有规则和命令均可直接复制执行,无需手动编写,适合 Linux 运维、安全工程师快速部署 auditd 审计系统。
文末互动
觉得文章实用,点赞 + 收藏 + 关注,后续持续更新 Linux 安全加固、应急响应实战工具包!
更多推荐
所有评论(0)