如何在 CentOS/RHEL 上使用“autrace”审核 Linux 进程
本文是我们正在进行的关于 Linux 审计的系列文章,在过去的三篇文章中,我们解释了如何审计 Linux 系统(CentOS 和 RHEL)、使用 ausearch 查询auditd 日志并生成使用 aureport 实用程序进行报告。
在本文中,我们将解释如何使用 autrace 实用程序审核给定进程,其中我们将通过跟踪进程进行的系统调用来分析进程。
另请阅读:如何使用 Shell 跟踪来跟踪 Shell 脚本中命令的执行
什么是autrace?
autrace 是一个命令行实用程序,它运行程序直至退出,就像 strace 一样;它添加审计规则来跟踪进程并将审计信息保存在 /var/www/audit/audit.log 文件中。为了让它工作(即在运行所选程序之前),您必须首先删除所有现有的审核规则。
使用autrace的语法如下所示,它只接受一个选项-r
,它将收集的系统调用限制为评估进程资源使用情况所需的系统调用:
autrace -r program program-args
注意:在autrace手册页中,语法如下,这实际上是一个文档错误。因为使用这种形式,您运行的程序将假设您正在使用其内部选项之一,从而导致错误或执行该选项启用的默认操作。
autrace program -r program-args
如果您存在任何审核规则,autrace 将显示以下错误。
autrace /usr/bin/df
首先使用以下命令删除所有auditd规则。
auditctl -D
然后继续使用您的目标程序运行autrace。在此示例中,我们正在跟踪 df 命令的执行,该命令显示文件系统的使用情况。
autrace /usr/bin/df -h
从上面的屏幕截图中,您可以使用 ausearch 实用程序从审核日志文件中找到与跟踪有关的所有日志条目,如下所示。
ausearch -i -p 2678
其中选项:
-i
– 允许将数值解释为文本。-p
– 传递要搜索的进程 ID。
要生成有关跟踪详细信息的报告,您可以像这样构建 ausearch 和 aureport 的命令行。
ausearch -p 2678 --raw | aureport -i -f
在哪里 :
--raw
– 告诉 ausearch 将原始输入传送到 aureport。-f
– 启用有关文件和 af_unix 套接字的报告。-i
– 允许将数值解释为文本。
使用下面的命令,我们将收集的系统调用限制为分析 df 进程的资源使用情况所需的系统调用。
autrace -r /usr/bin/df -h
假设您在过去一周内完成了一项计划;这意味着审计日志中转储了大量信息。要仅生成今天记录的报告,请使用 -ts
ausearch 标志指定搜索的开始日期/时间:
ausearch -ts today -p 2678 --raw | aureport -i -f
就是这样!这样您就可以使用 autrace 工具跟踪和审计特定的 Linux 进程,有关更多信息,请查看手册页。
您还可以阅读这些相关的有用指南:
- Sysdig – 适用于 Linux 的强大系统监控和故障排除工具
- BCC – 用于 Linux 性能监控、网络等的动态跟踪工具
- 30 个有用的 Linux 进程监控“ps 命令”示例
- CPUTool – 限制和控制 Linux 中任何进程的 CPU 使用率
- 根据 Linux 中内存和 CPU 使用率最高的情况查找运行最多的进程
目前为止就这样了!您可以通过下面的评论提出任何问题或分享对本文的想法。在下一篇文章中,我们将介绍如何配置 PAM(可插拔身份验证模块)来审核指定用户 CentOS/RHEL 的 TTY 输入。