首页 > 运维 > linux运维 > 正文

如何审计文件访问 auditd

P粉602998670
发布: 2025-08-14 12:19:02
原创
401人浏览过

首先确认 auditd 已安装并运行,使用 rpm 或 dpkg 检查,通过 systemctl 启动并启用开机自启,再用 status 验证服务状态;2. 使用 auditctl 添加临时规则如 sudo auditctl -w /etc/passwd -p rw -k file_access_passwd,或在 /etc/audit/rules.d/ 下创建以 .rules 结尾的文件写入永久规则并重启 auditd 使配置生效;3. 通过 sudo ausearch -k file_access_passwd 按关键字查询详细日志,或使用 sudo aureport -f 和 aureport -k 查看文件访问统计与特定规则报告;4. 分析日志时关注时间、proctitle、uid、auid、comm、exe、syscall 和 success 字段,以确定操作用户、命令、进程及是否成功;5. 注意避免对高频访问文件审计以防性能下降,确保仅监控关键文件,理解规则匹配顺序,区分文件与目录监控方式,并管理好日志存储与轮转策略,最终实现对敏感文件访问的精确追踪,auditd 能有效记录谁在何时执行了何种操作,是安全审计不可或缺的工具

如何审计文件访问 auditd

在 Linux 系统中,

auditd
登录后复制
是内核级审计守护进程,可以用来监控文件和目录的访问行为,比如读取、写入、执行等操作。如果你想审计某个文件或目录的访问情况(例如谁在什么时候读取或修改了敏感配置文件),可以通过
auditd
登录后复制
实现。以下是具体操作步骤和注意事项。


一、确认 auditd 服务已安装并运行

大多数 Linux 发行版默认安装了

auditd
登录后复制
,但服务可能未启动。

# 检查 auditd 是否安装
rpm -q audit    # RHEL/CentOS
dpkg -l auditd  # Debian/Ubuntu

# 启动并设置开机自启
sudo systemctl start auditd
sudo systemctl enable auditd

# 检查状态
sudo systemctl status auditd
登录后复制

二、添加审计规则监控文件访问

使用

auditctl
登录后复制
命令添加临时规则(重启后失效),或写入
/etc/audit/rules.d/
登录后复制
保存永久规则。

1. 临时规则(测试用)

假设你想监控

/etc/passwd
登录后复制
文件的读写访问:

sudo auditctl -w /etc/passwd -p rw -k file_access_passwd
登录后复制

参数说明:

  • -w
    登录后复制
    :监控指定文件或目录
  • -p rw
    登录后复制
    :监控读(r)和写(w)操作(还可加
    a
    登录后复制
    =属性更改,
    x
    登录后复制
    =执行)
  • -k file_access_passwd
    登录后复制
    :为该规则设置一个关键字,便于后续搜索日志

2. 永久规则(推荐)

编辑规则文件,确保重启后规则依然生效:

sudo vim /etc/audit/rules.d/audit-file-access.rules
登录后复制

添加内容:

问问小宇宙
问问小宇宙

问问小宇宙是小宇宙团队出品的播客AI检索工具

问问小宇宙 77
查看详情 问问小宇宙
-w /etc/passwd -p rw -k file_access_passwd
-w /etc/shadow -p r -k file_access_shadow
-w /etc/ssh/sshd_config -p rw -k ssh_config_access
登录后复制

保存后重启 auditd:

sudo systemctl restart auditd
登录后复制
注意:规则文件必须以 .rules 结尾,且 /etc/audit/audit.rules 通常由 augenrules 从 rules.d 目录生成。

三、查看审计日志

使用

ausearch
登录后复制
aureport
登录后复制
工具查询审计记录。

1. 按关键字搜索日志

sudo ausearch -k file_access_passwd
登录后复制

输出示例:

time->Mon Apr 5 10:30:22 2025
type=PROCTITLE msg=audit(1743849022.123:456): proctitle=cat "/etc/passwd"
type=PATH msg=audit(1743849022.123:456): item=0 name="/etc/passwd" ...
type=SYSCALL msg=audit(1743849022.123:456): arch=c000003e syscall=2 success=yes ...
登录后复制

关键信息包括:

  • 访问时间
  • 执行命令(proctitle)
  • 用户 ID(uid)、进程 ID(pid)
  • 系统调用类型(如 open、read)

2. 使用 aureport 生成摘要

# 查看所有文件访问事件统计
sudo aureport -f

# 按关键字生成报告
sudo aureport -k --key=file_access_passwd
登录后复制

四、分析日志中的关键字段

常见字段解释:

  • uid
    登录后复制
    auid
    登录后复制
    :实际用户 ID 和登录用户 ID(auid 通常是登录时的用户,不会随 su 改变)
  • comm
    登录后复制
    :命令名(如 cat、vim)
  • exe
    登录后复制
    :执行文件路径(如 /bin/cat)
  • syscall
    登录后复制
    :系统调用编号,如 openat、read
  • success
    登录后复制
    :是否成功执行操作

例如,你可能看到某普通用户通过

cat /etc/passwd
登录后复制
触发了记录,结合
auid
登录后复制
可追溯到具体登录账户。


五、注意事项与最佳实践

  • 性能影响:频繁访问的文件(如日志、临时文件)开启审计可能影响性能,建议只监控关键文件。
  • 权限问题
    auditd
    登录后复制
    可以记录 root 用户的操作,因此比普通日志更可靠。
  • 日志轮转:审计日志默认在
    /var/log/audit/audit.log
    登录后复制
    ,注意磁盘空间和日志保留策略。
  • 规则顺序:规则是顺序匹配的,复杂环境建议合理组织规则顺序。
  • 监控目录 vs 文件
    若监控目录,使用
    -d
    登录后复制
    参数(较新版本支持),或对目录下每个文件单独加
    -w
    登录后复制
    。注意递归监控需额外配置。

基本上就这些。只要规则设置正确,

auditd
登录后复制
能精确记录谁在何时访问了哪些敏感文件,是安全审计和合规检查的重要工具。

以上就是如何审计文件访问 auditd的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号