CentOS 7下auditd服务从安装到日志分析的完整指南(附常见监控规则示例)
CentOS 7下auditd服务从安装到日志分析的完整指南在Linux系统管理中安全审计是保障系统完整性的重要环节。作为RHEL/CentOS系统内置的审计框架auditd服务能够详细记录系统级事件从文件访问到特权命令执行为安全团队提供宝贵的取证数据。本文将带您从零开始构建完整的auditd审计体系。1. 环境准备与基础配置1.1 服务安装与验证虽然CentOS 7默认已安装auditd但完整验证仍不可少# 验证安装包 rpm -q audit audit-libs # 检查服务状态 systemctl status auditd正常运行的auditd服务会显示active (running)状态。若需手动安装yum install audit audit-libs1.2 核心配置文件解析auditd的主要配置文件位于/etc/audit/目录各文件作用如下文件路径功能描述关键参数示例/etc/audit/auditd.conf守护进程配置log_file/var/log/audit/audit.log/etc/audit/rules.d/持久化规则目录-w /etc/passwd -p wa -k passwd_changes/etc/audit/audit.rules系统启动时加载的规则文件由augenrules自动生成日志轮转策略建议配置num_logs 5 max_log_file 50 max_log_file_action rotate2. 监控规则深度配置2.1 文件系统监控实战文件监控是审计的基础功能通过-w参数指定监控路径# 监控SSH配置变更 auditctl -w /etc/ssh/sshd_config -p warx -k sshd_config # 监控关键目录创建 auditctl -w /etc/ -p w -k etc_changes常用权限标识r读取操作w写入操作x执行操作a属性变更2.2 系统调用监控技巧针对特权操作的系统调用监控# 记录所有sudo提权操作 auditctl -a always,exit -S execve -F path/usr/bin/sudo -k privileged_cmd # 监控用户账户变更 auditctl -a always,exit -S openat -F path/etc/passwd -k user_accounts高级过滤示例# 仅监控非root用户的文件删除 auditctl -a always,exit -S unlink -S unlinkat -F auid1000 -F auid!4294967295 -k user_deletes3. 生产环境规则模板3.1 安全基线监控规则# 关键文件监控 -w /etc/passwd -p wa -k identity -w /etc/group -p wa -k identity -w /etc/shadow -p wa -k identity -w /etc/sudoers -p wa -k privilege_escalation # 系统二进制监控 -w /bin/su -p x -k privilege_escalation -w /usr/bin/sudo -p x -k privilege_escalation -w /usr/bin/passwd -p x -k authentication3.2 网络服务专项监控# SSH相关监控 -w /etc/ssh/sshd_config -p warx -k sshd_config -a always,exit -F archb64 -S bind -S connect -k network_connections # Web服务监控 -w /etc/nginx/nginx.conf -p warx -k web_config -w /etc/httpd/conf/httpd.conf -p warx -k web_config4. 日志分析与事件调查4.1 ausearch工具高级用法# 查询特定key的日志 ausearch -k sshd_config -i # 分析过去24小时的失败登录 ausearch --start yesterday --end now -m USER_LOGIN --success no -i # 查找文件变更记录 ausearch -k etc_changes --start 09:00:00 --end 17:00:00 -i常用过滤组合-ts指定开始时间戳-te指定结束时间戳-m按消息类型过滤-sv按成功/失败过滤4.2 日志字段解析技巧典型日志事件包含多个关联记录typeSYSCALL msgaudit(1625100000.123:456): archc000003e syscall87 successyes exit0 a07ffeefbff560 a10 a20 a30 items2 ppid1234 pid5678 auid1000 uid0 gid0 euid0 suid0 fsuid0 egid0 sgid0 fsgid0 ttypts0 ses1 commsudo exe/usr/bin/sudo keyprivileged_cmd关键字段说明archCPU架构success操作是否成功auid原始用户IDeuid有效用户IDkey关联的审计规则标识5. 性能优化与疑难处理5.1 资源占用控制通过速率限制防止日志爆炸# 每秒最多记录2个相同事件 auditctl -r 2 # 限制审计队列大小 auditctl -b 8192内核参数调整# 增加内核审计缓冲区 echo audit_backlog_limit16384 /etc/sysctl.conf sysctl -p5.2 常见问题排查规则不生效检查步骤确认auditd服务运行状态检查auditctl -l输出验证规则语法是否正确查看dmesg是否有内核拒绝信息日志轮转失败处理# 手动触发日志轮转 kill -USR1 $(pidof auditd)6. 自动化监控方案6.1 规则持久化方法推荐将规则保存在/etc/audit/rules.d/目录# 创建自定义规则文件 cat /etc/audit/rules.d/99-myrules.rules EOF -w /etc/crontab -p wa -k scheduled_jobs -a always,exit -S adjtimex -k time_adjustment EOF # 应用新规则 augenrules --load6.2 与SIEM系统集成通过audispd插件转发日志到远程系统# /etc/audit/audispd.conf配置 active yes q_depth 200 overflow_action syslog远程传输配置示例# /etc/audisp/plugins.d/au-remote.conf active yes direction out path /sbin/audisp-remote type always format string
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2417612.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!