Linux安全审计实践:使用auditd监控关键系统文件访问行为
在Linux系统安全防护中,实时监控关键文件的访问行为是防范未授权操作的重要手段。本文将通过具体案例展示如何使用auditd进行系统安全审计。
案例背景
某企业运维团队发现服务器存在可疑的rootkit植入风险,需要对系统中的敏感文件进行持续监控。我们选择了/etc/shadow、/etc/passwd和/etc/group三个核心认证文件作为监控目标。
实施步骤
- 安装auditd服务
# CentOS/RHEL系统
sudo yum install audit audit-libs
# Ubuntu/Debian系统
sudo apt-get install auditd
- 配置审计规则
# 添加文件访问监控规则
sudo auditctl -w /etc/shadow -p rwxa -k shadow_access
sudo auditctl -w /etc/passwd -p rwxa -k passwd_access
sudo auditctl -w /etc/group -p rwxa -k group_access
# 持久化配置(重启后仍有效)
# 编辑/etc/audit/rules.d/audit.rules文件添加以上规则
- 验证配置
# 查看当前审计规则
sudo auditctl -l
# 测试监控效果
sudo cat /etc/shadow > /dev/null
# 检查审计日志
sudo ausearch -k shadow_access
日志分析示例
执行上述测试后,系统会生成类似以下的审计记录:
node=server1 type=SYSCALL msg=audit(1703205678.123:456): \
arch=c000003e syscall=263 success=yes exit=0 a0=12345678 a1=2 a2=1b6 a3=0 items=1 \
ppid=1234 pid=5678 auid=1000 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 \
tty=pts0 ses=1 comm="cat" exe="/bin/cat" key="shadow_access"
高级配置建议
针对生产环境,建议添加以下增强规则:
- 使用
-F perm=rwxa精确监控所有权限操作 - 结合
-F uid!=0过滤非root用户操作 - 设置日志轮转策略避免磁盘占满
注意事项
- 需要确保auditd服务开机自启:
sudo systemctl enable auditd - 定期检查日志文件大小,防止存储空间溢出
- 本方案仅适用于已安装auditd的系统环境
通过以上配置,可以有效监控关键系统的访问行为,为安全事件响应提供有力支持。建议将此方案作为标准安全审计流程的一部分定期执行。

讨论