> 软件包与系统管理 > auditctl

auditctl: Linux 审计规则管理

auditctl 是一个用于控制 Linux 内核审计(auditing)系统的命令行工具。它允许您添加、删除和列出规则,以监视和记录系统中发生的特定事件(如文件访问、系统调用等)。对于安全审计和合规性而言,监控关键系统活动至关重要。

概述

auditctl 动态管理 Linux 审计系统的规则。这些规则在内核级别定义,可以配置为记录特定文件访问、系统调用、用户活动等各种事件。审计日志通常存储在 /var/log/audit/audit.log 文件中。

主要功能

  • 添加和删除审计规则
  • 查看当前活动的审计规则列表
  • 监视文件和目录访问
  • 监视特定的系统调用
  • 设置基于用户和组的审计规则

安装

auditctl 是 'audit' 或 'auditd' 包的一部分。如果您的 Linux 发行版默认未安装,您可以使用以下命令进行安装。

Debian/Ubuntu

sudo apt update
sudo apt install auditd

在 Debian 或 Ubuntu 系统上安装 auditctl。

RHEL/CentOS/Fedora

sudo yum install audit
# 或
sudo dnf install audit

在 RHEL、CentOS 或 Fedora 系统上安装 auditctl。

安装后,您需要启动并启用 auditd 服务:`sudo systemctl enable auditd --now`

主要选项

auditctl 命令通过各种选项来定义和管理审计规则。

规则管理

规则定义

生成的命令:

请尝试组合命令。

描述:

`auditctl` 执行命令。

通过组合这些选项,您可以与 AI 一起虚拟地执行命令。

使用示例

使用 auditctl 设置审计规则的各种示例。

列出当前所有审计规则

sudo auditctl -l

查看当前内核加载的所有审计规则。

监视 /etc/passwd 文件更改

sudo auditctl -w /etc/passwd -p wa -k passwd_changes

监视对 /etc/passwd 文件的所有写入 (w) 和属性更改 (a) 访问,并分配 'passwd_changes' 键。

监视 /etc/shadow 文件读取尝试

sudo auditctl -w /etc/shadow -p r -k shadow_read

监视对 /etc/shadow 文件的读取 (r) 尝试,并分配 'shadow_read' 键。

监视 /var/log 目录下的文件创建/删除

sudo auditctl -a always,exit -F dir=/var/log -F perm=wa -S creat,unlink -k log_dir_changes

监视 /var/log 目录下的文件创建 (creat) 和删除 (unlink) 系统调用。分配 'log_dir_changes' 键。

监视特定用户 (UID) 的文件删除尝试

sudo auditctl -a always,exit -F arch=b64 -S unlink -F auid=1000 -k user_file_delete

监视 UID 为 1000 的用户删除文件 (unlink) 的系统调用。指定 64 位系统架构。

删除所有审计规则

sudo auditctl -D

删除当前加载的所有审计规则。(注意:请谨慎使用。)

删除具有特定键的规则

sudo auditctl -w /etc/passwd -p wa -k passwd_changes -d

删除具有 'passwd_changes' 键的规则。必须使用与添加规则时相同的选项。

提示与注意事项

使用 auditctl 时的有用提示和注意事项。

永久保存规则

通过 auditctl 添加的规则在系统重启后会消失。要使规则永久生效,请将规则添加到 /etc/audit/rules.d/audit.rules 文件中,然后使用 'augenrules --load' 或 'systemctl restart auditd' 命令应用。

  • 规则文件: /etc/audit/rules.d/audit.rules
  • 应用规则: sudo augenrules --load

性能影响

设置过多的审计规则或监视过于广泛的目录可能会影响系统性能。建议仅设置必要的最小规则,并专注于关键路径。

检查日志文件

审计事件记录在 /var/log/audit/audit.log 文件中。使用 ausearch 和 aureport 命令来检查此日志会更有效。

指定架构 (-F arch=b64/b32)

监视系统调用时,建议在 64 位系统上明确指定 '-F arch=b64',在 32 位系统上指定 '-F arch=b32'。这是因为系统调用号可能因架构而异。


相同类别命令