文档首页/ 弹性云服务器 ECS/ 最佳实践/ 搭建应用/ 如何使用auditd记录Linux系统文件改动
更新时间:2024-07-31 GMT+08:00

如何使用auditd记录Linux系统文件改动

auditd是Linux审计系统的用户空间组件,可以记录操作系统中的操作日志,包括文件读写、系统调用的记录等,出现问题可以用于审计。本文以CentOS 7.4 64位操作系统为例介绍auditd工具的安装和配置。

auditd相关工具命令与配置文件

相关工具命令:

  • auditctl : 即时控制审计守护进程的行为的工具,比如添加规则。
  • aureport : 查看和生成审计报告的工具。
  • ausearch : 查找审计事件的工具。
  • auditspd : 转发事件通知给其他应用程序,而不是写入到审计日志文件中。
  • autrace : 一个用于跟踪进程的命令。

相关配置文件:

  • /etc/audit/auditd.conf : auditd工具的配置文件
  • /etc/audit/rules.d/audit.rules:包含审核规则的文件
  • /etc/audit/audit.rules : 记录审计规则的文件。

操作步骤

安装auditd

  1. 执行以下命令安装auditd工具。

    yum install -y auditd*

    首次安装auditd 后,审计规则默认为空,可通过sudo auditctl -l命令查询。

  2. 执行以下命令查看运行状态。

    service auditd status

    图1 运行状态

配置审计规则

  1. 执行以下命令配置监控文件和目录的更改。

    auditctl -w /etc/passwd -p rwxa

    其中,

    • -w path : 指定要监控的路径,上面的命令指定了监控的文件路径 /etc/passwd
    • -p : 指定触发审计的文件/目录的访问权限
    • rwxa : 指定的触发条件,r-读取权限,w-写入权限,x-执行权限,a-属性
  2. 执行以下命令对/production目录的所有访问进行审计。

    mkdir production

    auditctl -w /production/

  3. 执行以下命令查看所有已配置的规则。
    auditctl -l
    -w /etc/passwd -p rwxa
    -w /production -p rwxa
  4. 规则添加后,执行以下命令查看审计日志。

    ausearch -f /etc/passwd

    图2 审计日志

    图2显示文件未被改动。其中各参数含义如下:

    • time : 审计时间。
    • name : 审计对象
    • cwd : 当前路径
    • syscall : 相关的系统调用
    • auid : 审计用户ID
    • uid 和 gid : 访问文件的用户ID和用户组ID
    • comm : 用户访问文件的命令
    • exe : 上面命令的可执行文件路径
  5. 修改监控文件添加一个用户“test”。

    useradd test

  6. 重新查看审计日志。

    ausearch -f /etc/passwd

    图3 查看变更后的审计日志

    图3显示在指定的时间,/etc/passwd被root用户(uid=0, gid=0)在/root目录下修改。/etc/passwd文件是使用/usr/bin/sudo访问的。

  7. 此时,通过执行以下命令查看日志无内容。

    ausearch -f /production

  8. 使用root账户修改目录权限,并重新查看审计日志。

    chmod -R 777 /test/

    ausearch -f /test/

  9. 执行以下命令查看审计报告。

    aureport

    图4 查看审计报告
  10. 执行以下命令查看授权失败的详细信息。

    aureport -au

    图5 查看授权失败信息
  11. 执行以下命令查看所有账户与修改相关的事件。

    aureport -m

    图6 查看账户修改相关事件
  12. (可选)执行以下命令清空定义的规则。

    auditctl -D

    auditctl -l

    图7 清空规则