服务器最小权限管理强调归属明确与必要依据,安全基线检查聚焦身份可信、权限可控、行为可溯;需核查账户状态、sudo权限、组成员及关键文件权限;审计要求日志可查、可管、可溯源,覆盖命令历史、auditd监控与中心化日志管理。

服务器最小权限管理不是“给得越少越好”,而是让每个账户、每项配置、每次操作都具备明确归属和必要依据。安全基线检查也不是照单打钩,而是围绕身份可信、权限可控、行为可溯三个核心,对账户全生命周期做系统性验证。
账户状态与身份唯一性检查
重点确认每个登录入口是否真实存在业务需求,且归属清晰。
- 运行awk -F: '$3 >= 1000 && $3 筛选普通用户,逐个核对是否为在职人员或必需服务账号;
- 用lastlog -b 90标记90天未登录账户,评估是否需禁用(passwd -l username)或删除;
- 检查/etc/shadow中密码字段为*或!的账户(如sync、shutdown),确认其 shell 是否设为/sbin/nologin;
- 禁用所有非必要默认账户:passwd -l root、passwd -l operator、passwd -l games等。
认证强度与失败响应机制验证
策略配置不等于策略生效,必须实测拦截能力。
- 确认/etc/pam.d/system-auth含pam_pwquality.so参数,如minlen=12 difok=3 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1;
- 检查/etc/pam.d/sshd是否启用pam_faillock.so,含deny=6 unlock_time=900;
- 用测试账户连续输错6次密码后尝试正确密码,确认提示“account locked”并拒绝登录;
- 确保/etc/ssh/sshd_config中PasswordAuthentication no,仅允许密钥认证。
权限分配与提权路径审查
账户本身安全只是起点,关键要看它能执行什么命令、访问哪些资源。
- 执行grep 'ALL=(ALL)' /etc/sudoers /etc/sudoers.d/* 2>/dev/null | grep -v '^#',识别无限制sudo权限账户,逐个评估必要性;
- 对每个普通用户运行sudo -l -U username,确认是否被授予NOPASSWD: /bin/bash、/usr/bin/find等危险命令;
- 审查/etc/group中wheel、sudo组成员,剔除非授权人员;
- 检查关键文件权限:ls -l /etc/shadow /root应显示-rw-------和dr-x------,禁止普通用户读写。
审计与持续监控落地项
没有日志记录的权限操作等于没发生,但日志必须可查、可管、可溯源。
- 启用HISTTIMEFORMAT,在~/.bashrc中添加export HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S ";
- 启动auditd服务,配置规则监控/etc/passwd、/etc/shadow、/etc/sudoers变更;
- 将audit日志与系统日志统一转发至中心审计平台,避免本地篡改;
- 定期导出ausearch -m USER_ACCT等事件,验证账户创建、禁用、权限变更是否完整留痕。

















