温馨提示×

Debian日志中的用户权限变更如何追踪

小樊
47
2025-11-16 16:09:10
栏目: 智能运维

Debian中追踪用户权限变更

一 关键事件与日志来源

  • 身份与特权命令:关注用户通过 susudo 提升权限的行为,通常记录在 /var/log/auth.log(Debian 常用 auth.log;部分发行版为 secure),可用 journalctl -u sshjournalctl -f 实时查看。
  • 账户与组变更:用户、组及密码策略的变更会影响权限基线,重点文件为 /etc/passwd/etc/shadow/etc/group
  • 文件与目录权限:实际资源访问控制的变化体现在文件权限/属主变更,可通过审计或 Syslog 的权限变更事件进行追踪。
  • 系统调用层变更:进程通过 setuid/setgid 等系统调用改变有效 UID/GID,属于高风险特权操作,建议用内核审计精确捕获。

二 基于Syslog与journalctl的快速追踪

  • 实时查看认证与授权相关日志:
    • 查看全部认证日志:sudo journalctl -f -u ssh 或 sudo tail -f /var/log/auth.log
    • 按关键字筛选 sudo/su 事件:sudo grep -iE “sudo|su” /var/log/auth.log
  • 文件权限变更告警:在 rsyslog 中针对权限/属主变更事件做专门记录或转发,便于集中审计与告警(例如在 rsyslog 配置中增加针对权限变更日志的专属规则,并配合 logrotate 做长期保存)。

三 基于auditd的精确审计规则

  • 安装与启用:sudo apt-get install auditd audispd-plugins;确保服务开机自启。
  • 关键规则示例(建议写入 /etc/audit/rules.d/audit.rules 或新建 .rules 文件,避免直接改 /etc/audit/audit.rules):
    • 监控关键账户文件写入(传统 watch,兼容性好):
      • sudo auditctl -w /etc/passwd -p wa -k user_priv_escalation
      • sudo auditctl -w /etc/shadow -p wa -k user_priv_escalation
      • sudo auditctl -w /etc/group -p wa -k user_priv_escalation
    • 监控特权命令执行(execve 系统调用):
      • sudo auditctl -a always,exit -F arch=b64 -S execve -F exe=/usr/bin/sudo -k user_priv_escalation
      • sudo auditctl -a always,exit -F arch=b64 -S execve -F exe=/usr/bin/su -k user_priv_escalation
    • 监控 setuid/setgid 等特权系统调用:
      • sudo auditctl -a always,exit -F arch=b64 -S setuid,setgid -F auid>=1000 -k user_priv_escalation
    • 规则持久化与生效:
      • 将当前规则导出:sudo sh -c ‘auditctl -l > /etc/audit/rules.d/audit.rules’
      • 重启服务:sudo systemctl restart auditd(或 service auditd restart)
  • 查询与检索:
    • 按关键字检索审计事件:sudo ausearch -k user_priv_escalation
    • 注:auditd 规则支持“旧式 -w 文件监控”和“新式 -a + path/perm 绑定 inode”两种,后者更高效,生产环境优先。

四 查询与告警实践

  • 典型检索命令:
    • 查看 sudo 使用:sudo ausearch -k user_priv_escalation | grep sudo
    • 查看 su 切换:sudo ausearch -k user_priv_escalation | grep su
    • 查看 setuid/setgid 调用:sudo ausearch -k user_priv_escalation | grep -E “setuid|setgid”
    • 实时跟踪日志:sudo journalctl -f | grep -iE “sudo|su|setuid|setgid”
  • 告警与集中化:
    • auth.log 或 auditd 日志通过 rsyslog 转发到远程日志服务器,便于统一检索、可视化与长期留存。
    • 配置 logrotate 对 /var/log/auth.log、/var/log/syslog 及 audit 日志做按日/按大小轮转,防止磁盘被占满。

五 加固与排错要点

  • 确保 rsyslog/auditd 开机自启并持续运行;对日志文件设置最小权限(如仅 root:syslog 可读写),防止篡改。
  • 审计规则变更后使用 ausearch/auditctl -l 校验;系统升级或内核切换后检查规则是否仍生效。
  • 若未见到预期事件,优先检查:服务是否运行、规则是否加载、是否监控了正确的架构(如 b64)、以及日志是否被外部系统轮转或清理。

0