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 命令分析日志,以识别异常行为或潜在安全威胁。
根据审计结果,采取相应响应措施,并且生成审计报告。
- 定期审查、更新:
定期审查审计策略、规则,以适应不断变化的安全需求。
更新审计规则以覆盖新安全场景,并确保审计系统有效性。
51工具盒子