一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

服务器用户权限合规检查如何做

时间:2026-08-23 07:58:51 编辑:袖梨 来源:一聚教程网

服务器用户权限合规检查需围绕“谁有权限、凭什么有、用得对不对、有没有被滥用”四问构建闭环,涵盖重点账户与高危权限筛查、敏感文件权限校验、脚本化检查、行为验证及日志审计。

服务器用户权限合规检查不是翻一遍配置就完事,而是围绕“谁有权限、凭什么有、用得对不对、有没有被滥用”这四个核心问题,形成可重复、可验证、可追溯的闭环动作。

明确检查范围和高危目标

先划清边界,避免泛泛而谈:

  1. 重点账户:UID=0的用户(awk -F: '$3 == 0 {print $1}' /etc/passwd)、长期未登录账户(lastlog -b 90)、离职人员残留账号、共享账号(如多人共用root或admin)
  2. 高危权限:sudo权限是否精确到命令路径(如/bin/systemctl restart nginx而非ALL=(ALL) ALL)、是否允许免密sudo(NOPASSWD需严格审批)、是否开放远程root登录(PermitRootLogin yes在sshd_config中必须禁用)
  3. 敏感文件权限/etc/shadow必须为600且属主root;/etc/ssh/sshd_config应为600;含密钥或数据库连接串的配置文件权限不得高于600

用脚本固化关键检查项

人工检查易漏、难复现,脚本要把规则变成可执行逻辑:

  1. 查高危MySQL账号:mysql -N -s -e "SELECT User,Host,Super_priv,Grant_priv,CHAR_LENGTH(authentication_string),plugin FROM mysql.user WHERE Host != 'localhost' AND (Super_priv = 'Y' OR Grant_priv = 'Y') AND CHAR_LENGTH(authentication_string)
  2. 查异常sudo配置:grep -v '^#' /etc/sudoers | grep -E '(ALLs*=s*(ALL)|NOPASSWD|root)' | grep -v 'Defaults'
  3. 查弱密码或空密码账户:awk -F: '($2 == "" || length($2) 0 {print $1}' /etc/shadow(注意:需root权限)
  4. 输出统一为制表符分隔,配合IFS=$'t'逐行解析,防止字段错位

验证权限是否真实生效

配置写了≠生效了,要从行为反推:

  1. sudo -l -U username实际验证某用户能执行哪些命令,比读sudoers更可靠
  2. 检查服务运行账户:用sc qc servicename(Windows)或ps -eo user,comm | grep nginx(Linux),确认不是以LocalSystem或root身份运行非必要服务
  3. 抓取真实执行行为:用pspy捕获cron实际调用的命令,发现被隐藏的脚本,不只依赖crontab -l
  4. 测试远程登录限制:尝试从非授权IP ssh登录,确认AllowUsersMatch规则是否真起作用

日志与审计闭环不能断

没日志的权限等于没设:

  1. 确认/var/log/auth.log/var/log/secure记录完整,每条sudo操作含用户、时间、命令、TTY
  2. 启用auditd监控关键系统调用:-w /etc/shadow -p wa -k shadow_access,并定期用ausearch -k shadow_access查访问痕迹
  3. 日志必须集中转发至独立服务器,本地日志加chattr +a设为只追加,防篡改
  4. 每次巡检生成结构化报告(如JSON),包含风险项、等级、修复命令,自动触发工单或告警

热门栏目