# 如何使用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*
   ```
   ![](https://support.huaweicloud.com/bestpractice-ecs/public_sys-resources/note_3.0-zh-cn.png)
   首次安装**auditd** 后，审计规则默认为空，可通过**sudo auditctl -l**命令查询。
   
2. 执行以下命令查看运行状态。
   ```
   service auditd status
   ```
   图1运行状态   
   ![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000001643466518.png "点击放大") 
**配置审计规则**
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审计日志   
   ![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000001691916749.png "点击放大")
   [图2]显示文件未被改动。其中各参数含义如下：
   - time : 审计时间。
   
   - name : 审计对象
   
   - cwd : 当前路径
   
   - syscall : 相关的系统调用
   
   - auid : 审计用户ID
   
   - uid 和 gid : 访问文件的用户ID和用户组ID
   
   - comm : 用户访问文件的命令
   
   - exe : 上面命令的可执行文件路径
    
5. 修改监控文件添加一个用户"test"。
   ```
   useradd test
   ```
   
6. 重新查看审计日志。
   ```
   ausearch -f /etc/passwd
   ```
   图3查看变更后的审计日志   
   ![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000001692414093.png "点击放大")
   [图3]显示在指定的时间，/etc/passwd被root用户(uid=0, gid=0)在/root目录下修改。/etc/passwd文件是使用/usr/bin/sudo访问的。
   
7. 此时，通过执行以下命令查看日志无内容。
   ```
   ausearch -f /production
   ```
   ![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000001643772856.png "点击放大")
   
8. 使用root账户修改目录权限，并重新查看审计日志。
   ```
   chmod -R 777 /test/
   ausearch -f /test/
   ```
   
9. 执行以下命令查看审计报告。
   ```
   aureport
   ```
   图4查看审计报告   
   ![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000001692251761.png "点击放大") 
10. 执行以下命令查看授权失败的详细信息。
    ```
    aureport -au
    ```
    图5查看授权失败信息   
    ![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000001692292317.png "点击放大") 
11. 执行以下命令查看所有账户与修改相关的事件。
    ```
    aureport -m
    ```
    图6查看账户修改相关事件   
    ![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000001692292597.png "点击放大") 
12. （可选）执行以下命令清空定义的规则。
    ```
    auditctl -D
    auditctl -l
    ```
    图7清空规则   
    ![](https://support.huaweicloud.com/bestpractice-ecs/zh-cn_image_0000001692293325.png "点击放大") 
 
