Auditd 是 Linux 系统中的一个强大的审计框架,它能帮助系统管理员监控和记录系统中的安全相关事件。杜老师整理了一些关于 Auditd 审计工具的详细使用说明。
安装工具 {#安装工具}
在大多数 Linux 发行版中可以通过包管理器安装 Auditd。例如,在银河麒麟高级服务器操作系统/CentOS 上,可以使用以下命令安装:
|-----------|------------------------------|
| 1
| yum -y install audit
|
在银河麒麟桌面操作系统上,可以使用以下命令安装:
|-----------|----------------------------------------------------|
| 1
| sudo apt -y install auditd audispd-plugins
|
配置工具 {#配置工具}
Auditd 的主要配置文件是/etc/audit/auditd.conf
。
此外,审计规则的配置文件通常位于/etc/audit/audit.rules
。
相关工具 {#相关工具}
以下是 Auditd 中常用的工具:
| 工具名称 | 功能描述 | |----------|-----------------------| | auditctl | 用于添加、删除审计规则,及查看审计规则等。 | | aureport | 用于生成审计报告。 | | ausearch | 用于搜索审计事件。 | | auditspd | 用于将事件通知转发给其它应用程序。 | | autrace | 用于跟踪进程。 |
审计规则 {#审计规则}
审计规则可以分为三类:控制规则、文件系统规则、系统调用规则。控制规则用于更改审计系统本身的配置和设置。例如,设置审计缓冲区的最大数量:
|-----------|--------------------------|
| 1
| auditctl -b 8192
|
文件系统规则用于监控特定文件或目录的访问。例如,监控/etc/passwd
文件写入和属性修改:
|-----------|---------------------------------------------------------|
| 1
| auditctl -w /etc/passwd -p wa -k passwd_changes
|
系统调用规则用于记录特定程序系统调用。例如,记录使用 adjtimex
或 settimeofday
系统调用的行为:
|-----------|----------------------------------------------------------------------------------------|
| 1
| auditctl -a always,exit -F arch=b64 -S adjtimex -S settimeofday -k time_change
|
例如,要监控/etc/passwd
文件读写访问,可以使用以下命令。这条规则表示监控/etc/passwd
文件当有读写操作时,使用关键字 passwd_monitor
记录审计事件:
|-----------|---------------------------------------------------------|
| 1
| auditctl -w /etc/passwd -p rw -k passwd_monitor
|
使用命令查看当前配置审计规则:
|-----------|---------------------|
| 1
| auditctl -l
|
使用 auditctl -D
可删除所有规则,或使用下面命令删除指定路径的规则:
|-----------|---------------------|
| 1
| auditctl -W
|
日志报告 {#日志报告}
审计日志默认存储在/var/log/audit/audit.log
文件。使用 ausearch
工具可以搜索和查看审计日志。例如,要搜索所有与 passwd_monitor
相关的日志条目,可以使用:
|-----------|------------------------------------|
| 1
| ausearch -k passwd_monitor
|
使用 aureport
命令可生成审计报告。例如,要生成一个关于用户登录失败的报告,可以使用:
|-----------|----------------------|
| 1
| aureport -au
|
保存规则 {#保存规则}
要使规则永久生效,需要将规则添加到/etc/audit/audit.rules
文件中,然后重启或重新加载 Auditd 服务:
|-----------|---------------------------------------|
| 1
| sudo systemctl restart auditd
|
或者重新加载规则:
|-----------|-------------------------------------------------|
| 1
| sudo auditctl -R /etc/audit/audit.rules
|
服务管理 {#服务管理}
Auditd 服务默认开机自启动。可使用以下命令来管理服务:
| 描述 | 命令 | |--------|--------------------------| | 查看服务状态 | systemctl status auditd | | 开启服务 | systemctl start auditd | | 停止服务 | systemctl stop auditd | | 重启服务 | systemctl restart auditd |
确保 Linux 审计日志安全性和完整性 {#确保-Linux-审计日志安全性和完整性}
- 配置审计守护进程:
将日志文件路径设置在单独挂载点上,以防止其它的进程消耗空间,并确保审计守护进程能够准确的检测剩余空间。
设置 max_log_file
参数以充分利用保存审计日志文件分区上的可用空间。
将 max_log_file_action
设置为 keep_logs
,防止审计日志文件被覆盖。
配置 space_left
以及 space_left_action
参数,以确保在磁盘空间不足时能够及时通知管理员。
设置 admin_space_left
以及 admin_space_left_action
参数,为记录管理员所执行的操作保留足够空间。
将 disk_full_action
设置为 halt
或 single
,以确保在磁盘空间耗尽时系统能够关闭或以单用户模式运行。
将 disk_error_action
设置为 syslog
、single
或者 halt
,以便在检测到磁盘错误时采取适当的行动。
- 配置审计规则:
用 auditctl
命令添加规则,监控关键文件以及系统调用,确保只有授权的更改被记录。
将规则持久化到/etc/audit/audit.rules
文件,以确保在系统重启后规则仍有效。
- 保护审计日志文件:
确保审计日志文件的存储位置具有适当的权限设置,只有授权用户才能访问。
考虑使用加密存储审计日志,以防止未授权的访问或篡改。
- 日志轮转、归档:
配置日志轮转策略,避免日志文件无限制增长并填满磁盘空间。
定期归档旧的审计日志,确保归档过程不会破坏日志文件的完整性。
- 监控、响应:
定期监控审计日志,用 ausearch
和 aureport
命令分析日志,以识别异常行为或潜在安全威胁。
根据审计结果,采取相应响应措施,并且生成审计报告。
- 定期审查、更新:
定期审查审计策略、规则,以适应不断变化的安全需求。
更新审计规则以覆盖新安全场景,并确保审计系统有效性。