linux权限审计与用户行为日志追踪需打通身份、操作、时间、目标四维度,构建可回溯、关联、告警的闭环;须开启加固 sudo 日志、shell 历史持久化、auditd 监控,结构化归集关键行为,聚焦异常模式自动检测,并保障日志权限安全、时间同步及 90 天以上归档。

Linux 权限审计与用户行为日志追踪,核心在于 打通身份、操作、时间、目标四个维度,不是单纯查日志,而是构建可回溯、可关联、可告警的闭环。重点不在“有没有记录”,而在“能不能快速定位异常动作并还原上下文”。
一、基础日志源必须开启并加固
默认日志往往不全,需主动启用关键通道:
- sudo 日志强制落盘:确认 /etc/sudoers 中含
Defaults logfile="/var/log/sudo.log",并检查该文件权限为600、属主为 root - shell 命令历史持久化增强:在 /etc/bash.bashrc 或用户家目录 .bashrc 中追加:
HISTTIMEFORMAT="%Y-%m-%d %T "HISTFILE=/var/log/bash_history/$USER.log
并创建对应目录、设置属组root:adm、权限750 - auditd 全局监控启动:安装
auditd,编辑 /etc/audit/rules.d/custom.rules,至少加入:-a always,exit -F arch=b64 -S execve -F euid!=uid -k privilege_escalation-w /etc/passwd -p wa -k identity_change-w /etc/shadow -p wa -k shadow_access
执行augenrules --load生效
二、关键行为必须结构化归集
原始日志分散难查,需统一提取核心字段(用户、时间、终端、命令、目标路径、返回码):
- 用
ausearch -m execve -i --start today | aureport -f -i快速筛出提权执行 - 写简易解析脚本(如 awk + date 格式化),将 /var/log/secure 中 ssh 登录、su 切换、sudo 执行三类 事件 转成 csv,含字段:
ts,user,src_ip,action,cmd,exit_code - 对高危目录(/etc,/root,/home/*/.*)的访问,用
inotifywait -m -e access,modify,attrib配合 logger 写入独立日志,避免混入系统日志冲淡线索
三、日常审计要聚焦“异常模式”而非全量扫描
人工看日志效率低,应定义可自动触发的怀疑信号:
- 非工作时间活跃:检测 22:00–06:00 的 sudo 使用、root shell 启动、大文件复制(>100MB)
- 非常规路径执行敏感命令:如
/tmp/.abc /bin/bash、/dev/shm/xxx.sh调用curl/wget/python - 用户行为漂移:某普通用户本周突然高频使用
strace, lsof, netstat,或首次调用dd if=/dev/sda - 横向移动迹象:同一 IP 在 5 分钟内连续登录 ≥3 个不同账号;某账号在多台机器上登录间隔
四、应急响应时快速定位三要素
发现可疑后,5 分钟内必须明确:谁干的、怎么干的、影响范围:
- 溯源身份:查
last -ai | grep " 可疑 IP"看登录链;用aureport -m -ts yesterday --key privilege_escalation匹配提权源头 - 还原操作 :结合 /var/log/sudo.log 命令 + /var/log/bash_history/*.log 参数 + audit.log 系统调用,拼出完整命令链(注意 环境变量 污染可能隐藏真实路径)
- 评估影响:用
find /etc -type f -newer /tmp/suspect_marker -ls 2>/dev/NULL查被改配置;用lsof -i :22 -n -P看异常 SSH 连接;检查 /var/spool/cron/ 和 /etc/crontab 是否新增定时任务
基本上就这些。不复杂但容易忽略的是:日志权限本身得安全(防篡改)、时间必须同步(NTP)、归档策略要保留足够天数(建议≥90 天)。审计不是一次性的活,而是把“谁在什么时候动了什么”变成条件反射能答上来的问题。