Linux用户活动审计与跟踪 :Auditd

1 介绍与安装

Auditd基本介绍:

  • 在Linux内核(2.6)时开始集成的审计系统
  • 通过解析audit.rules中的规则形成特定事件的审计
  • 还负责将审计结果写入磁盘,并支持灵活的读取方式

Auditd的安装:

yum install audit # RHEL 和 CentOS
apt install auditd # Ubuntu

2 基本用法

Auditd基本命令:

  • auditctl:跟踪正在访问或修改特定文件和目录的用户或程序,也适用于跟踪正在运行特定命令的用户。具体规则需要手动设定。
  • ausearch:根据不同的搜索条件查询基于事件的审计守护程序日志
  • aureport:生成审计系统日志摘要报告

Auditd使用示例:

  1. 跟踪正在运行sudo命令的用户
auditctl -w /bin/sudo -p rwxa -k sudo
  1. 跟踪正在访问或修改/root/test目录的用户或应用程序
auditctl -a always,exit -F arch=b64 -S rename,rmdir,unlink,unlinkat,renameat -F auid\>=500 -F auid\!=-1 -F dir=/root/test/ -F key=delete

auditctl -a always,exit -F arch=b64 -S rename,rmdir,unlink,unlinkat,renameat -F auid>=500 -F auid!=-1 -F dir=/proc/13296/root/opt/ -F key=delete

  1. 跟踪pid=1005的程序发出的所有系统调用
auditctl -a entry,always -S all -F pid=1005
  1. 查看更改或访问文件/etc/passwd的审计日志
ausearch -f /proc/13296/root/opt -i | less

ausearch -f /etc/passwd -i | less

3 参数详情

参数详情-英文完整版

3.1 auditctl

参数 参数说明
-a 添加新规则
-w 在特定路径(例如 /etc/shadow)中为文件系统对象插入监视。
-p 为文件系统设置权限筛选条件。
-k 在审计规则上设置筛选关键字。用于审计记录的筛选。
-F 额外指定其他参数选项(如PID、GI、D、auid),支持简单的逻辑运算
-S 筛选系统调用,改善性能。默认追踪所有的系统调用。
-l 列出所有的规则。一个规则一行。可以配合-k进行过滤
-D 删除所有的规则。可以配合-k只删除特定规则

3.2 ausearch

参数 参数说明
-a, --event 根据给定的事件 ID搜索事件
-i 将数字实体解释为文本,提高日志易读性
-k 根据给定的关键字搜索日志
-p 搜索与给定进程 ID匹配的事件
-ts , --start 指定搜索的开始时间
-te , --end 指定搜索的结束时间

参考

如何配置 Linux 审计规则以跟踪 Linux 实例上的用户活动、文件目录更改? Linux audit files to see who made changes to a file

往年同期文章