Linux用户身份切换(Su)日志监控与审计,如何实现全面高效的长尾词分析?
- 内容介绍
- 文章标签
- 相关推荐
本文共计782个文字,预计阅读时间需要4分钟。
在Linux系统中,`su`命令的每一次执行都应被记录和审查,因为它是权限提升的关键入口。默认情况下,su操作不会自动写入系统通用日志(如syslog),而是记录在专门的日志文件中。例如,在RHEL/CentOS中,日志位于`/var/log/sulog`,而在Ubuntu/Debian中则位于`/var/log/auth.log`。
是否启用、如何定位和分析这些日志,以及它们如何构成安全运维的基础操作,是系统管理员需要掌握的技能。
su日志的位置与启用方式
su命令的日志行为依赖于PAM(Pluggable Authentication Modules)配置:
- 主流RHEL系系统(如CentOS 7/8、Rocky Linux)默认启用
/var/log/sulog,每行格式为:date time hostname +/− username tty,其中+表示成功,−表示失败; - Debian/Ubuntu系通常不单独生成sulog,而是将su事件统一记入
/var/log/auth.log,关键词为su:或pam_unix(su:session); - 若日志未生成,检查
/etc/pam.d/su中是否包含类似auth [default=ignore] pam_tty_audit.so enable=*或auth required pam_wheel.so use_uid等审计相关模块; - 要强制将su尝试实时输出到控制台(便于调试),可取消
/etc/login.defs中SULOG或LOG_SU行的注释,并确保值设为yes。
关键审计字段识别
一条典型的su日志条目需关注四个核心信息:
- 时间戳:精确到秒,用于关联其他日志(如sshd、sudo);
-
终端(tty):例如
tty1(本地控制台)、pts/0(SSH会话),可反向定位登录来源; - 用户名:发起su请求的原始用户(不是目标用户),这是责任追溯的关键;
-
结果标识:
+代表成功切换,−代表失败(密码错误、权限拒绝等),高频失败需警惕暴力尝试。
日常监控与告警建议
仅查看日志不够,需建立主动发现机制:
- 用
grep "su:" /var/log/auth.log | tail -20快速抽查近期记录(Ubuntu系); - RHEL系可用
tail -f /var/log/sulog实时跟踪; - 编写简易脚本每日统计su成功/失败次数,异常增长时邮件通知(例如失败次数>5次/小时);
- 结合
lastb(读取/var/log/btmp)交叉验证:若su失败频次与lastb中ssh登录失败高度重合,可能指向同一攻击源。
与sudo日志对比的优势与局限
su日志本身只记录“谁切了谁”,不记录“切过去之后干了什么”:
- 优势:轻量、低开销,适合快速判断权限滥用起点;
- 局限:无命令级审计,无法还原操作上下文;
- 补强手段:要求管理员禁用直接root登录(
PermitRootLogin no),强制走sudo流程,再配合sudoers中的Defaults logfile或syslog选项,实现完整操作链追踪。
本文共计782个文字,预计阅读时间需要4分钟。
在Linux系统中,`su`命令的每一次执行都应被记录和审查,因为它是权限提升的关键入口。默认情况下,su操作不会自动写入系统通用日志(如syslog),而是记录在专门的日志文件中。例如,在RHEL/CentOS中,日志位于`/var/log/sulog`,而在Ubuntu/Debian中则位于`/var/log/auth.log`。
是否启用、如何定位和分析这些日志,以及它们如何构成安全运维的基础操作,是系统管理员需要掌握的技能。
su日志的位置与启用方式
su命令的日志行为依赖于PAM(Pluggable Authentication Modules)配置:
- 主流RHEL系系统(如CentOS 7/8、Rocky Linux)默认启用
/var/log/sulog,每行格式为:date time hostname +/− username tty,其中+表示成功,−表示失败; - Debian/Ubuntu系通常不单独生成sulog,而是将su事件统一记入
/var/log/auth.log,关键词为su:或pam_unix(su:session); - 若日志未生成,检查
/etc/pam.d/su中是否包含类似auth [default=ignore] pam_tty_audit.so enable=*或auth required pam_wheel.so use_uid等审计相关模块; - 要强制将su尝试实时输出到控制台(便于调试),可取消
/etc/login.defs中SULOG或LOG_SU行的注释,并确保值设为yes。
关键审计字段识别
一条典型的su日志条目需关注四个核心信息:
- 时间戳:精确到秒,用于关联其他日志(如sshd、sudo);
-
终端(tty):例如
tty1(本地控制台)、pts/0(SSH会话),可反向定位登录来源; - 用户名:发起su请求的原始用户(不是目标用户),这是责任追溯的关键;
-
结果标识:
+代表成功切换,−代表失败(密码错误、权限拒绝等),高频失败需警惕暴力尝试。
日常监控与告警建议
仅查看日志不够,需建立主动发现机制:
- 用
grep "su:" /var/log/auth.log | tail -20快速抽查近期记录(Ubuntu系); - RHEL系可用
tail -f /var/log/sulog实时跟踪; - 编写简易脚本每日统计su成功/失败次数,异常增长时邮件通知(例如失败次数>5次/小时);
- 结合
lastb(读取/var/log/btmp)交叉验证:若su失败频次与lastb中ssh登录失败高度重合,可能指向同一攻击源。
与sudo日志对比的优势与局限
su日志本身只记录“谁切了谁”,不记录“切过去之后干了什么”:
- 优势:轻量、低开销,适合快速判断权限滥用起点;
- 局限:无命令级审计,无法还原操作上下文;
- 补强手段:要求管理员禁用直接root登录(
PermitRootLogin no),强制走sudo流程,再配合sudoers中的Defaults logfile或syslog选项,实现完整操作链追踪。

