1、命令简介
使用ausearch命令可以搜索审计记录,必须以root用户身份执行ausearch命令。
2、命令用法
ausearch [options]
3、命令描述
ausearch是一个工具,它可以根据不同的搜索条件查询审计守护进程的事件日志。ausearch实用程序还可以从stdin获取输入,只要输入是原始日志数据。给出的每个命令行选项形成一个"and" 语句。例如,使用-m和-ui进行搜索意味着返回既具有请求的类型又与给定的用户id匹配的事件。
还应该注意的是,每次从用户空间到内核再返回到用户空间的系统调用都有一个唯一的事件ID。在此行程中触发的任何可审计事件都共享此ID,以便它们可以相互关联。
内核的不同部分可能会添加补充记录。例如,系统调用“open”上的审计事件也会导致内核发出一个带有文件名的PATH记录。ausearch实用程序将显示所有组成一个事件的记录。这可能意味着,即使您搜索特定类型的记录,所产生的事件也可能包含SYSCALL记录。
还要注意,并非所有记录类型都具有所请求的信息。例如,PATH记录没有主机名或loginuid。
4、命令选项
选项 | 描述 |
-a, --event audit-event-id | |
| 根据给定的事件ID搜索事件。 消息总是以msg=audit(1116360555.39:2401771)开头。 事件ID是':'后面的数字。 从一个应用程序的系统调用中, 记录的所有审计事件都具有相同的审计事件ID。 同一个应用程序进行的第二个系统调用将具有不同的事件ID。 |
-c, --comm comm-name | |
| 根据给定的comm-name搜索事件。 comm名是任务结构中可执行文件的名称。 |
-e, --exit exit-code-or-errno | |
| 基于给定的系统调用退出码或errno搜索事件。 |
-f, --file file-name | |
| 根据给定的文件名搜索事件。 |
-ga, --gid-all all-group-id | |
| 搜索具有有效group ID或group ID 与给定group ID匹配的事件。 |
-ge, --gid-effective effective-group-id | |
| 搜索具有给定有效group ID 或group Name的事件。 |
-gi, --gid group-id | |
| 搜索具有给定group ID或group Name的事件。 |
-h, --help | 帮助 |
-hn, --host host-name | |
| 搜索具有给定主机名的事件。 主机名可以是主机名、 完全限定域名或数字网络地址。 没有尝试将数字地址解析为域名或别名。 |
-i, --interpret | |
| 将数字实体解释为文本。 例如,uid被转换为帐户名。 转换是使用正在运行搜索的机器的当前资源完成的。 如果重命名了帐户,或者机器上没有相同的帐户, 可能会得到误导的结果。 |
-if, --input file-name | |
| 使用给定的文件而不是日志。 这是为了帮助分析日志被转移到另一台机器 或只保存了一部分日志。 |
--input-logs | |
| 使用auditd.conf中的日志文件位置作为搜索输入。 如果正在从cron作业中使用ausearch, 则需要这样做。 |
--just-one | |
| 在发出符合搜索条件的第一个事件后停止。 |
-k, --key key-string | |
| 基于给定的key字符串搜索事件。 |
-l, --line-buffered | |
| 刷新每一行的输出。 当stdout连接到管道 且默认的块缓冲策略不可取时最有用。 可能会处以性能损失。 |
-m, --message message-type | comma-sep-message-type-list | |
| 搜索与给定消息类型匹配的事件。 还可以输入以逗号分隔的消息类型列表。 有一个ALL消息类型, 它在实际日志中不存在。 它允许获取系统中的所有消息。 有效消息类型的列表很长。 当没有传递此参数的消息类型时, 程序将显示该列表。 消息类型可以是文本或数字。 输入列表时,列表之间只能用逗号分隔, 不能用空格分隔。 |
-n, --node node-name | |
| 搜索源自节点名称字符串的事件。 |
-o, --object SE-Linux-context-string | |
| 搜索带有与字符串匹配的tcontext (object)的事件。 |
-p, --pid process-id | |
| 搜索与给定进程ID匹配的事件。 |
-pp, --ppid parent-process-id | |
| 搜索与给定父进程ID匹配的事件。 |
-r, --raw | 输出完全没有格式化。 这对于提取仍然可以由审计工具解释的记录非常有用。 |
-sc, --syscall syscall-name-or-value | |
| 搜索与给定系统调用匹配的事件。 可以给出数字系统调用值或系统调用名。 如果指定了系统调用名称, 它将使用正在使用的机器的系统调用表。 |
-se, --context SE-Linux-context-string | |
| 搜索scontext/subject 或tcontext/object匹配字符串的事件。 |
--session Login-Session-ID | |
| 搜索与给定的登录会话ID匹配的事件。 此process属性是在用户登录时设置的, 可以将任何进程绑定到特定的用户登录。 |
-su, --subject SE-Linux-context-string | |
| 搜索事件与scontext(subject)匹配的字符串。 |
-sv, --success success-value | |
| 搜索与给定success值匹配的事件。 合法的值是 yes 和 no. |
-te, --end [end-date] [end-time] | |
| 搜索时间戳等于或先于给定结束时间的事件。 结束时间的格式取决于地区。如果省略日期, 则假定为today。如果省略了时间, 则假定为now。 使用24小时的时钟时间而不是AM或PM来指定时间。 例如日期是10/24/2005。例如,18:00:00。 也可以用这个词:now, recent, today, yesterday, this-week, week-ago, this-month, this-year。 today是从现在开始。recent是10分钟前。 yesterday是前一天午夜后1秒。 this-week是指所在的locale决定的一周的第0天午夜后1秒开始。 this-month是这个月的第一天午夜之后的一秒。 this-year是第一个月的第一天午夜后的第1秒。 |
-ts, --start [start-date] [start-time] | |
| 搜索时间戳等于或超过给定结束时间的事件。 结束时间的格式取决于地区。如果省略日期, 则假定为today。如果省略时间, 则假定为midnight。 使用24小时的时钟时间而不是AM或PM来指定时间。 例如日期是10/24/2005。例如,18:00:00。 也可以用这个词:now, recent, today, yesterday, this-week, this-month, this-year。 today是从现在开始。recent是10分钟前。 yesterday是前一天午夜后1秒。 this-week是指所在locale 决定的一周的第0天午夜后1秒开始。 this-month是这个月的第一天午夜之后的一秒。 this-year是第一个月的第一天午夜后的第1秒。 |
-tm, --terminal terminal | |
| 搜索与给定的终端值匹配的事件。 一些守护进程(如cron和atd)对终端使用守护进程名称。 |
-ua, --uid-all all-user-id | |
| 搜索具有与给定user ID,匹配的user ID, 有效user ID,或登录user ID, (auid)的事件。 |
-ue, --uid-effective effective-user-id | |
| 搜索具有给定有效user ID的事件。 |
-ui, --uid user-id | |
| 搜索具有给定user ID的事件。 |
-ul, --loginuid login-id | |
| 搜索具有给定登录user ID的事件。 为了准确地搜索loginuid (auid), 需要用会话所需的pam_loginuid 配置所有pam_loginuid的入口点程序。 |
-v, --version | |
| 打印版本并退出 |
-w, --word | 基于字符串的匹配必须匹配整个单词。 这类匹配包括:文件名、主机名、 终端和SE Linux上下文。 |
-x, --executable executable | |
| 搜索与给定可执行名称匹配的事件。 |
5、使用示例
1)root搜索审计记录
ausearch -ui 0
2)终端tty1搜索审计记录
ausearch -tm tty1
3)查询更改或访问了文件记录
ausearch -f /etc/passwd -i | less