ausearch
是 Linux 审计系统中的一个命令行工具,用于在审计日志中搜索特定类型的事件。它允许用户根据多种条件(如时间、UID、GID、系统调用、文件路径等)来过滤和检索审计记录。这对于安全审计、故障排查以及满足合规性要求非常有用。
基本语法
ausearch [选项]
常用选项
-m, --message TYPE
: 根据消息类型(例如USER_LOGIN
,USER_LOGOUT
,CONFIG_CHANGE
等)搜索事件。-ts, --start [YYYY-MM-DD] [HH:MM:SS]
: 指定开始时间,只返回该时间之后的事件。-te, --end [YYYY-MM-DD] [HH:MM:SS]
: 指定结束时间,只返回该时间之前的事件。-sc, --syscall SYSCALL
: 根据系统调用名称或编号搜索事件。-f, --file FILENAME
: 根据文件名搜索与之相关的所有事件。-p, --pid PID
: 根据进程 ID 查找事件。-u, --uid UID
: 根据用户 ID 查找事件。-i, --interpret
: 将 UID/GID 转换为对应的用户名/组名,使输出更加易读。-k, --key KEYWORD
: 根据审计规则中设置的关键词搜索事件。-c, --comm COMM
: 根据可执行文件名搜索事件。-sv, --success VALUE
: 过滤成功(yes
)或失败(no
)的事件。
示例
-
基于文件路径查找事件:
如果想查看有关/etc/passwd
文件的所有访问活动:sudo ausearch -f /etc/passwd
-
查找特定时间段内的事件:
查看从 2025 年 3 月 1 日早上 9 点到当前的所有审计事件:sudo ausearch -ts 2025-03-01 09:00:00
若要限定到具体的时间段,可以添加
-te
参数:sudo ausearch -ts 2025-03-01 09:00:00 -te 2025-03-01 17:00:00
-
基于系统调用查找事件:
查找所有execve
系统调用的事件:sudo ausearch -sc execve
-
基于用户 ID 查找事件:
查找用户 ID 为 1000 的所有事件:sudo ausearch -u 1000
-
基于关键词查找事件:
如果知道某些审计规则使用了特定的关键词(例如 “password_change”),可以通过以下命令查找这些事件:sudo ausearch -k password_change
-
提高输出的可读性:
使用-i
选项将 UID 和 GID 转换为用户名和组名,使得报告更容易理解:sudo ausearch -f /etc/shadow -i
-
查找成功的登录尝试:
查找所有成功的用户登录尝试:sudo ausearch -m USER_AUTH -sv yes
-
查找特定程序的执行情况:
查找所有运行/usr/bin/sudo
的事件:sudo ausearch -c sudo
-
将 UID 和 GID 转换为用户名和组名
sudo ausearch -ui 1000 -i
- 搜索用户 ID 为
1000
的事件,并将 UID 和 GID 转换为用户名和组名。
- 搜索用户 ID 为
-
指定审计日志文件
sudo ausearch -if /var/log/audit/audit.log.1
- 从
/var/log/audit/audit.log.1
文件中搜索事件。