服务器账户与身份认证安全是整个系统防线的起点,需覆盖账户全生命周期、最小权限管控、密码与多因素强化、SSH专项加固及云原生联邦集成。

服务器账户与身份认证安全是整个系统防线的起点。一旦账号被爆破、提权或冒用,后续所有防护措施都形同虚设。加固不是追求“绝对安全”,而是把攻击成本抬高到远超收益的水平。
账户生命周期与权限最小化
每个账户必须有明确归属、用途和有效期。长期闲置、共享、无主账户是高危入口。
- 禁用或删除默认账户(如 root 直接 SSH 登录、admin、test、guest);生产环境 root 应仅用于本地控制台,且禁止密码登录
- 新建用户强制使用 useradd -m -s /bin/bash -c "描述",并立即设置强密码或配置密钥登录
- 所有用户默认加入 noexec,nosuid,nodev 挂载选项的 home 分区(通过 /etc/fstab 配置)
- 敏感操作(如 sudo、su、systemctl)启用 sudoers 细粒度策略,禁止 ALL=(ALL) NOPASSWD: ALL 这类宽泛配置
- 定期审计账户:用 lastlog -b 90 查 90 天未登录账户,awk -F: '$3 < 1000 {print}' /etc/passwd 找系统账户,确认是否必要
密码策略与多因素强化
纯密码已无法应对自动化爆破和凭证复用攻击。必须叠加强度约束与动态验证。
- 启用 PAM 密码复杂度:编辑 /etc/pam.d/system-auth,加入 pam_pwquality.so retry=3 minlen=12 difok=4 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1
- 设置密码最长有效期:修改 /etc/login.defs 中的 PASS_MAX_DAYS 90、PASS_MIN_DAYS 7、PASS_WARN_AGE 7
- 记录失败登录:确保 pam_faillock.so 已启用,并配置锁定策略(如 5 次失败锁 15 分钟)
- 对管理员账户强制启用 TOTP 或 FIDO2(如通过 libpam-google-authenticator 或 pam_u2f),SSH 登录需同时满足密钥 + 动态码
- 禁用空密码:auth [success=1 default=ignore] pam_succeed_if.so user ingroup nopw 配合账户清理
SSH 认证通道专项加固
SSH 是绝大多数 Linux 服务器的命门。暴露在公网的 SSH 端口每天承受数万次扫描,必须切断所有非必要入口。
- 禁用密码登录:在 /etc/ssh/sshd_config 中设 PasswordAuthentication no,仅保留密钥认证
- 限制登录用户/组:用 AllowUsers 或 AllowGroups 明确白名单,拒绝 root、批量用户、测试组
- 改默认端口(可选但推荐):设 Port 2222 并同步更新防火墙规则,降低脚本攻击命中率
- 启用密钥轮换提醒:用 ssh-keygen -l -f ~/.ssh/id_rsa.pub 定期检查密钥长度(RSA ≥ 3072,ECDSA ≥ 256,Ed25519 强烈推荐)
- 开启 SSH 日志审计:确保 LogLevel VERBOSE,并把日志转发至远程 SIEM 或独立日志服务器
MCP/OAuth 2026 身份联邦集成(云原生场景)
当服务器作为资源服务器(RS)接入多云平台(MCP)时,本地账户应退为备用机制,主认证必须交由符合 OAuth 2026 规范的授权服务统一管理。
- 停用本地密码鉴权流程,所有 API/CLI 访问走 DPoP-bound access_token 校验
- 资源服务器强制校验 cnf 声明(含客户端证书指纹)与 iss_confirmed: true 字段
- 配置 token introspection gRPC 接口 实时核验令牌状态,不依赖本地缓存
- scope 必须结构化声明(如 api:/v2/logs/*:read@2026Q3),禁止通配符全局 scope
- 设备上下文(ctx)字段需参与校验:geo、device_trust_level、session_entropy 缺一不可

















