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 审计日志安全性和完整性
- 配置审计守护进程:
将日志文件路径设置在单独挂载点上,以防止其它的进程消耗空间,并确保审计守护进程能够准确的检测剩余空间。
设置 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
命令分析日志,以识别异常行为或潜在安全威胁。
根据审计结果,采取相应响应措施,并且生成审计报告。
- 定期审查、更新:
定期审查审计策略、规则,以适应不断变化的安全需求。
更新审计规则以覆盖新安全场景,并确保审计系统有效性。
条评论