目录
- 一、背景
- 二、问题现象
- 三、原因分析
- 四、修复方案
- 五、验证修复结果
- 六、自动化修复脚本
- 七、风险评估
- 八、总结
一、背景
在企业 Linux 安全基线扫描过程中,发现服务器存在如下安全基线告警:
Category: Configure System Accounting (auditd) Name: Ensure login and logout events are collected for Redhat 8 and Redhat 9 and Rocky and Oracle 9该检查项属于 Linux 审计(Audit)基线要求,目的是确保系统能够记录用户登录、退出及认证相关操作,为安全审计、合规检查和安全事件追溯提供依据。
本次问题出现在 Rocky Linux 9 环境中。
二、问题现象
首先检查 Audit 服务状态:
systemctl status auditd返回:
active (running)说明 Audit 服务正常运行。
进一步检查当前生效规则:
auditctl-l返回:
No rules虽然 Audit 服务运行正常,但未加载任何登录审计规则,因此被安全基线扫描工具判定为:
Ensure login and logout events are collected不符合要求。
三、原因分析
在同版本、已通过基线检查的服务器上执行:
auditctl-l发现存在如下规则:
-w/var/log/lastlog-pwa-klogins-w/var/run/faillock-pwa-klogins说明标准环境中已经配置了登录审计规则。
而问题服务器:
auditctl-l返回:
No rules两者对比后确认:
根因: 缺少登录审计规则(Login Audit Rules)四、修复方案
4.1 创建登录审计规则文件
创建:
/etc/audit/rules.d/50-login.rules执行:
cat>/etc/audit/rules.d/50-login.rules<<'EOF' -w /var/log/lastlog -p wa -k logins -w /var/run/faillock -p wa -k logins EOF说明:
/var/log/lastlog 记录用户最近登录信息 /var/run/faillock 记录用户登录失败信息通过 Auditd 对上述文件进行监控,可以满足登录审计要求。
4.2 加载审计规则
执行:
augenrules--load该命令会读取/etc/audit/rules.d/目录中的规则,并生成运行时 Audit 配置。
五、验证修复结果
5.1 检查规则是否成功加载
执行:
auditctl-l预期返回:
-w/var/log/lastlog-pwa-klogins-w/var/run/faillock-pwa-klogins说明规则已经生效。
5.2 检查 Audit 状态
执行:
auditctl-s示例结果:
enabled 1 failure 1 backlog_limit 8192 lost 0重点关注:
enabled 1—— 表示审计功能已启用lost 0—— 表示未丢失审计事件
5.3 检查审计日志
执行:
ausearch-klogins|tail预期结果类似:
type=CONFIG_CHANGE key="logins"说明 Auditd 已开始记录相关审计事件。
六、自动化修复脚本
为了批量修复多台服务器,可封装为 Shell 脚本。
6.1 fix_audit_login_rules.sh
#!/bin/bashset-eRULE_FILE="/etc/audit/rules.d/50-login.rules"cat>"${RULE_FILE}"<<'EOF' -w /var/log/lastlog -p wa -k logins -w /var/run/faillock -p wa -k logins EOFaugenrules--loadechoecho"========== Verify =========="auditctl-lechoauditctl-s授权执行:
chmod+x fix_audit_login_rules.sh执行修复:
./fix_audit_login_rules.sh七、风险评估
本次整改属于:
Audit 配置修复不会影响:
- SSH 登录
- Nginx 服务
- 数据库服务
- 应用服务
- 系统网络
- 业务访问
无需执行reboot,无需执行systemctl restart auditd,仅执行augenrules --load即可立即生效。
八、总结
本次问题并非 Audit 服务未启动,而是 Audit 服务运行正常但缺少登录审计规则,导致安全基线扫描无法确认系统已开启登录审计能力。
通过新增:
-w/var/log/lastlog-pwa-klogins-w/var/run/faillock-pwa-klogins并执行:
augenrules--load即可满足基线检查项:
Configure System Accounting (auditd) Ensure login and logout events are collected for Redhat 8 and Redhat 9 and Rocky and Oracle 9该方案改动小、风险低、可批量实施,适用于 Rocky Linux 9、RHEL 8/9 及同类发行版的安全基线整改场景。