centos进程如何进行安全审计
导读:CentOS 进程安全审计实操指南 一 核心组件与准备 审计系统由内核审计组件与用户态守护进程 auditd 组成,日志默认写入 /var/log/audit/audit.log。常用工具:auditctl(规则管理)、ausearch(...
CentOS 进程安全审计实操指南
一 核心组件与准备
- 审计系统由内核审计组件与用户态守护进程 auditd 组成,日志默认写入 /var/log/audit/audit.log。常用工具:auditctl(规则管理)、ausearch(检索)、aureport(报表)、autrace(按进程跟踪)、augenrules(加载持久规则)。在 CentOS 7/8 上可用包管理器安装:yum/dnf install audit。服务管理建议使用 systemctl,且确保开机自启,避免重启后规则丢失。
二 启用与配置
- 安装与启动
- 安装:sudo yum install audit -y(或 dnf install audit -y)
- 启动与自启:sudo systemctl start auditd & & sudo systemctl enable auditd
- 关键配置 auditd.conf(示例)
- 日志轮转与保留:设置 max_log_file(单文件大小,单位 MB)、num_logs(保留文件数)、max_log_file_action=ROTATE,防止磁盘被占满。
- 磁盘空间保护:设置 space_left、space_left_action、disk_full_action,在磁盘不足时采取告警/暂停等措施,避免审计中断。
- 持久化规则路径
- 临时规则用 auditctl 测试;生产规则写入 /etc/audit/rules.d/*.rules,由 augenrules --load 在启动阶段合并到 /etc/audit/audit.rules。修改规则后建议重启 auditd 使其生效。
三 常用进程审计规则
- 记录 root 执行的命令(进程执行)
- sudo auditctl -a exit,always -F arch=b64 -S execve -F uid=0 -k root_exec
- 说明:监控 execve(程序启动)系统调用,仅记录 root(uid=0),便于发现提权后的行为;多架构环境可按需增加 b32 规则。
- 跟踪某个进程的完整调用链
- 先获取目标 PID,例如:pidof nginx
- 跟踪:sudo autrace -r -p ;结束后用 ausearch -p -i 查看可读报告(含 execve、文件访问等)。
- 按进程名跟踪(配合 key 便于检索)
- 规则:sudo auditctl -a always,exit -F arch=b64 -S execve -k proc_start
- 检索:ausearch -k proc_start -i | less
- 监控关键可执行文件(如 sudo)
- 规则:sudo auditctl -w /usr/bin/sudo -p x -k sudo_exec(记录执行 sudo 的行为)
- 监控敏感文件/目录(进程触发的文件访问)
- 规则:sudo auditctl -w /etc/passwd -p rwxa -k passwd_change
- 规则:sudo auditctl -w /etc/ssh/sshd_config -p rwxa -k sshd_config_change
- 监控文件删除/重命名(进程触发的破坏行为)
- 规则:sudo auditctl -a exit,always -F arch=b64 -S unlink -S unlinkat -S rename -S renameat -k file_modify
- 登录/注销审计(进程会话相关)
- 规则:sudo auditctl -w /var/run/utmp -p w -k login_logout
- 规则:sudo auditctl -w /var/log/wtmp -p w -k login_logout
- 规则:sudo auditctl -w /var/log/btmp -p w -k login_failure
- 规则落地与验证
- 将测试通过的规则写入 /etc/audit/rules.d/audit.rules(或自定义 .rules 文件),执行:sudo augenrules --load & & sudo systemctl restart auditd
- 验证:auditctl -l(查看当前生效规则)。
四 检索分析与报表
- 按事件检索
- 按文件:sudo ausearch -f /etc/ssh/sshd_config -i
- 按时间:sudo ausearch -m LOGIN --start today -i
- 按事件 ID:sudo ausearch -a < EVENT_ID> -i
- 按进程:sudo ausearch -p -i
- 报表与统计
- 失败事件汇总:sudo aureport --failed
- 文件访问报表:sudo aureport -f -i
- 可执行文件调用汇总:sudo aureport -x --summary
- 日志解读要点
- 典型进程事件由多条记录组成(如 SYSCALL、EXECVE、CWD、PATH),共享同一时间戳与事件 ID。
- 关键字段:pid/ppid(进程/父进程)、uid/euid(实际/有效用户)、auid(原始登录用户,su/sudo 后仍保留)、comm/exe(命令名/可执行文件路径)、key(自定义标签,便于检索)。
五 日志转发与合规建议
- 转发到集中日志平台
- 启用 audispd 的 syslog 插件:编辑 /etc/audisp/plugins.d/syslog.conf,设置 active=yes、args=LOG_LOCAL0;重启 auditd。
- 在 /etc/rsyslog.conf 中为 local0 单独输出或转发,例如:. @192.168.31.51;如需避免重复写入 /var/log/messages,可在 messages 行加入 local0.none。
- 合规与性能提示
- 规则应遵循“最小够用”原则,避免对高频路径/系统调用无差别记录;关注 max_log_file/num_logs 与磁盘告警阈值,确保审计不中断。
- 重要系统建议开启 auditd 开机自启、集中收集与备份 audit.log,并建立基于 key 的检索与告警流程。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos进程如何进行安全审计
本文地址: https://pptw.com/jishu/763622.html
