高性能Linux审计:auditd调优指南

本文详细介绍了Linux审计框架auditd的性能优化策略,包括规则排序、事件排除、缓冲区配置和目录监控技巧,帮助系统管理员在保持安全审计的同时提升系统性能。

高性能Linux审计:auditd调优指南

性能提示

良好的auditd性能将减轻Linux内核的压力并降低其影响。在更改系统任何设置之前,我们建议对系统性能进行前后基准测试。这样可以直观看到调优效果。

策略:规则排序

正确排列规则顺序

许多软件包使用"基于顺序的规则处理",这意味着每个规则都会被评估,直到找到匹配项。Linux审计守护进程同样适用此原则。

因此最重要的调优领域之一是规则顺序。最常发生的事件应放在顶部,“例外"事件放在底部。

如果Linux审计设置按字母顺序排列,可以确定该配置未针对性能进行优化。让我们继续在其他领域调优auditd。

策略:排除事件

确定使用频繁的消息类型

日志记录事件的挑战在于确保记录所有重要事件,同时避免记录不需要的事件。

有些管理员采用"记录所有内容"的规则。虽然这通常有意义,但绝对不高效,会降低Linux内核性能。这种日志记录肯定会减少auditd的处理时间,并对内核性能产生负面影响。

要增强日志记录,我们首先需要确定经常出现的事件类型。

按可执行文件排序的大多数事件

1
aureport -ts today -i -x --summary

按系统调用(syscall)排序的大多数事件

1
aureport -ts today -i -s --summary

这将显示哪些可执行文件或系统调用充斥审计日志。通过定义”-ts today",我们只查看最近的事件。

aureport的输出通过禁用某些事件来帮助减少日志量。当然,您也可以对事件、文件和其他类型执行此操作。有关更多详细信息,请参阅aureport的手册页。

忽略事件

现在我们知道了文件类型、事件或其他消息的类型,可以忽略它们。为此,我们必须制定一个规则,匹配并声明排除exit语句。

exit语句与系统调用一起使用,对于其他情况,我们使用exclude。

按消息类型过滤

例如禁用所有"CWD"(当前工作目录),可以使用如下规则:

1
-a exclude,always -F msgtype=CWD

由于第一个匹配项获胜,排除项必须放在规则链的顶部。由于这是基于消息类型的过滤器,我们使用exclude。

按多个规则过滤

另一个示例是抑制VMware工具记录的消息。为此,我们通过提供多个-F参数将多个规则组合在一起。最多允许64个字段,但通常几个就足够了。使用-F时,每个表达式都将使用逻辑AND语句进行检查。这意味着所有字段都必须为真,才能触发审计规则集的操作。

1
2
-a exit,never -F arch=b32 -S fork -F success=0 -F path=/usr/lib/vmware-tools -F subj_type=initrc_t -F exit=-2
-a exit,never -F arch=b64 -S fork -F success=0 -F path=/usr/lib/vmware-tools -F subj_type=initrc_t -F exit=-2

注意:某些示例在旧机器上可能有不同的结果。因此,请始终测试每个规则以确定其是否有效。不起任何作用的规则只会对性能产生负面影响。

策略:确定缓冲需求

调优auditd的缓冲区需求

默认情况下,auditctl在使用-s(状态)标志时可以提供一些统计信息。它显示其状态(已启用)、任何相关标志、进程ID和日志相关统计信息(积压、速率、丢失)。

1
2
3
4
5
6
7
8
# auditctl -s
enabled 1
flag 1
pid 430
rate_limit 0
backlog_limit 320
lost 0
backlog 0

允许更大的缓冲区意味着对内存资源的更高需求。根据您的机器,这可能是为了确保记录所有事件而做出的小牺牲。

要确定最佳缓冲区大小,请监控backlog值。它们不应超过backlog_limit选项(在我们的例子中为320)。另一个有用的统计信息是监控lost值,因为它会告诉您有多少事件无法处理。在正常系统上,此值应等于或接近零。

策略:监控目录

监控特定目录时使用path而不是dir

有两种方法可以监控目录的内容:path或dir。

根据要监控的内容,可能不需要监控子目录。在这种情况下,最好使用path选项,因为它只监控该目录。这是一个小的调整,可能会节省大量不必要的审计日志记录。

本文中的相关命令

想了解更多关于本文中使用的命令?查看一下,其中一些还有速查表可用。

  • auditctl
  • aureport

查看完整的Linux命令列表以获取其他系统管理工具。

下一步!

想了解更多关于Linux安全的信息?看看开源工具Lynis,自己成为Linux安全专家。

Lynis Lynis是经过实战测试的Unix系统技术安全审计工具。它是开源的,免费可用,被全球系统管理员使用。其他用户包括安全专业人员、渗透测试人员和IT审计员。

工具信息

  • 成本:免费
  • 许可证:GPLv3

链接

  • GitHub项目
  • 软件包(deb/rpm)
  • Tarball
  • 访问项目页面

反馈

本文由我们的Linux安全专家Michael Boelen撰写。他专注于创建高质量文章和相关示例,旨在改进Linux安全领域。不再有充满复制粘贴博客文章的网站。

发现过时信息或有疑问?分享您的想法。感谢您的贡献!

相关文章

想了解更多?以下是同一类别或具有相似标签的文章列表。

  • Linux审计框架101 – 配置基本规则
  • Linux审计:/var/log/audit中的日志文件
  • 通过捕获execve系统调用记录root操作
  • 交换内存信息
  • Linux DNS性能调优和弹性

◄ 上一篇文章:Linux审计框架101 – 配置基本规则

页面详细信息和相关文章

页面信息 本文共有821个单词,最后更改或审核于2025-03-16。

主题

  • 会计
  • 审计
  • 故障排除

隐私优先,无跟踪,无cookie!

我们的绿色倡议:可持续网页设计

保持最新 @mboelen at Mastodon RSS Atom feed or JSON Feed 网站地图 最新更改

Linux Audit是Linux安全博客,提供与系统管理和安全相关的高质量文章。读者包括系统管理员、安全专业人员和审计员,他们都致力于保护系统安全。

联系

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计