配置和使用Audit Daemon审计Linux系统
Linux审计守护进程(Audit Daemon)是一个用于在Linux系统上审计事件的框架。本文将介绍其安装、配置以及如何使用该框架执行Linux系统和安全审计。
审计目标
通过使用强大的审计框架,系统可以跟踪多种事件类型以监控和审计系统。示例包括:
- 审计文件访问和修改
- 查看谁更改了特定文件
- 检测未经授权的更改
- 监控系统调用和函数
- 检测异常,如进程崩溃
- 设置用于入侵检测的触发器
- 记录个别用户使用的命令
组件
框架本身包含多个组件:
内核
- audit:挂钩到内核以捕获事件并将其传递给auditd
二进制文件
- auditd:守护进程,用于捕获事件并存储它们(日志文件)
- auditctl:客户端工具,用于配置auditd
- audispd:守护进程,用于多路复用事件
- aureport:报告工具,从日志文件(auditd.log)读取
- ausearch:事件查看器(auditd.log)
- autrace:使用内核中的审计组件跟踪二进制文件
- aulast:类似于last,但使用审计框架
- aulastlog:类似于lastlog,也使用审计框架
- ausyscall:映射系统调用ID和名称
- auvirt:显示有关虚拟机的审计信息
文件
- audit.rules:由auditctl使用,读取需要使用的规则
- auditd.conf:auditd的配置文件
安装
Debian / Ubuntu
|
|
Fedora / Red Hat
通常已安装(包:audit和audit-libs)
配置
审计守护进程的配置由两个文件安排,一个用于守护进程本身(auditd.conf),另一个用于auditctl工具使用的规则(audit.rules)。
auditd.conf
文件auditd.conf配置Linux审计守护进程(auditd),重点关注它应该在哪里以及如何记录事件。它还定义了如何处理满磁盘、日志轮换和保留的日志数量。通常,默认配置适用于大多数系统。
audit.rules
要配置应审计哪些事件,审计框架使用名为audit.rules的规则文件。
与大多数事情一样,从一个干净的开始,没有任何加载的规则。可以通过使用-l参数运行auditctl来确定活动规则。
|
|
如果加载了任何规则,请使用auditctl和-D参数删除它们。
是时候开始监控一些东西了,比如/etc/passwd文件。我们通过定义路径和要查找的权限来“监视”文件:
|
|
通过定义路径选项,我们指示审计框架要监视哪个目录或文件。权限确定哪种访问将触发事件。尽管这些看起来类似于文件权限,但请注意两者之间存在重要区别。四个选项是:
- r = 读取
- w = 写入
- x = 执行
- a = 属性更改
可以使用ausearch工具快速跟踪与文件相关的访问事件。
|
|
此输出的一些亮点包括:事件时间和对象名称、当前工作路径(cwd)、相关系统调用、审计用户ID(auid)以及对文件执行操作的二进制文件(exe)。请注意,auid定义了登录时的原始用户。其他用户ID字段可能指示不同的用户,具体取决于触发事件时使用的有效用户。
转换系统调用
系统调用通过数值记录。由于这些值在不同架构之间会有重叠,因此也会记录活动架构。
通过使用uname -m,我们可以确定架构,并使用ausyscall确定数字调用188代表什么。
|
|
我们现在知道这是一个属性更改,这很有意义,因为我们定义了监视以在属性更改(perm=a)时触发事件。
使用了临时规则并想再次使用旧规则?从文件刷新审计规则:
|
|
Linux下的进程审计
类似于使用strace,审计框架有一个名为autrace的工具。它使用审计框架并添加正确的规则来捕获信息并记录它。使用ausearch可以显示收集的信息。
要执行跟踪,请启动工具:
|
|
通过ausearch显示相关文件:
|
|
按用户审计文件访问
审计框架可用于监控系统调用,包括对文件的访问。如果您想知道特定用户ID访问了哪些文件,请使用如下规则:
|
|
Auditctl选项 | 描述 |
---|---|
-F arch=x86_64 | 定义使用的架构,以监控正确的系统调用(某些系统调用在架构之间是模糊的) |
-S open | 选择“open”系统调用 |
-F auid=80 | 定义我们感兴趣的相关用户ID |
这类信息对于入侵检测非常有用,也在对Linux系统进行取证时很有用。如果您不确定架构值,请使用uname -m查询正确的值。
自动化
由于Linux审计守护进程可以提供有价值的审计数据,Lynis将检查框架的存在。如果不可用,它将建议您安装。此外,Lynis将执行多项测试以确定日志文件、可用规则等。
对于适当的入侵检测,与入侵检测系统(IDS)的集成是在事件发生时发现事件并采取适当措施的关键。
更多
审计守护进程有更多可能性。其他示例将在本博客未来的单独文章中列出。如果您认真对待审计Linux平台,Linux审计框架绝对是一个好朋友!
本文中的相关命令
想了解更多关于本文中使用的命令?请查看,其中一些还有备忘单可用。
- ausearch
- auditctl
查看完整的Linux命令列表以获取其他系统管理工具。
下一步!
想了解更多关于Linux安全的信息?请查看开源工具Lynis,并自己成为Linux安全专家。
Lynis
Lynis是一个经过实战检验的基于Unix系统的技术安全审计工具。它是开源的,免费可用,并被世界各地的系统管理员使用。其他用户包括安全专业人员、渗透测试人员和IT审计员。
工具信息
- 成本:免费
- 许可证:GPLv3
链接
- GitHub项目
- 包(deb/rpm)
- Tarball
- 访问项目页面
反馈
本文由我们的Linux安全专家Michael Boelen撰写。专注于创建高质量的文章和相关示例,他希望改进Linux安全领域。不再有充满复制粘贴博客文章的网页。
发现过时信息或有疑问?分享您的想法。感谢您的贡献!
相关文章
想了解更多?以下是同一类别或具有类似标签的文章列表。
- 如何处理受损的Linux系统
- 如何保护Linux系统
- PCI DSS Linux:系统级对象的创建和删除
- Linux审计框架101 – 配置的基本规则
- 傻瓜式Linux安全扫描
页面详细信息和相关文章
页面信息
本文有1114个单词,最后更改或审查于2025-03-16。
主题
审计
隐私第一,无跟踪,无cookie!
我们的绿色倡议:可持续网页设计
保持最新 @mboelen at Mastodon RSS Atom feed or JSON Feed 网站地图 最新更改
Linux Audit是Linux安全博客,提供与系统管理和安全相关的高质量文章。读者包括系统管理员、安全专业人员和审计员,他们都意图保护自己的系统。