TypechoJoeTheme

至尊技术网

统计
登录
用户名
密码

如何通过PAM配置禁止Linux用户su切换:实战安全加固指南

2025-07-17
/
0 评论
/
2 阅读
/
正在检测是否收录...
07/17

本文将深入解析Linux PAM机制中su命令的权限控制逻辑,通过实战演示如何编辑/etc/pam.d/su配置文件实现用户切换限制,同时提供多种组合方案应对不同安全场景,最后给出配置验证与排错指南。


一、理解su命令的认证机制

在Linux系统中,su(Switch User)命令是权限切换的关键入口,其认证流程由Pluggable Authentication Modules (PAM)框架控制。当用户执行su命令时,系统会按照/etc/pam.d/su配置文件定义的模块栈进行逐层验证。典型的PAM配置包含四个管理组:

  1. auth:身份验证(如密码校验)
  2. account:账户状态检查(如是否过期)
  3. password:密码更新机制
  4. session:会话环境设置

通过修改这些模块的配置参数,我们可以精细控制用户切换行为。例如某金融公司的运维团队发现,开发人员频繁使用su切换到root账户导致操作日志混乱,这正是需要PAM介入的场景。

二、核心配置实战

2.1 基础禁止方案

编辑/etc/pam.d/su文件(建议先备份):

bash sudo cp /etc/pam.d/su /etc/pam.d/su.bak sudo vi /etc/pam.d/su

在文件头部添加以下规则(示例禁止dev组用户切换):

pam auth required pam_succeed_if.so user notin group:dev

该规则使用pam_succeed_if模块进行条件判断,当用户属于dev组时直接拒绝认证。生效方式为:
bash sudo systemctl restart sshd # 影响远程会话 sudo systemctl restart systemd-logind # 影响本地会话

2.2 进阶组合方案

方案A:wheel组白名单

pam auth required pam_wheel.so use_uid group=wheel
配合命令:
bash sudo usermod -aG wheel allowed_user # 添加特权用户

方案B:时间限制

pam auth required pam_time.so
需配套修改/etc/security/time.conf
su;*;!shift_workers;!Wk1800-0900 # 禁止非值班人员在工作时间外使用su

2.3 企业级配置示例

某互联网公司的生产环境配置:
pam auth sufficient pam_rootok.so auth required pam_wheel.so trust use_uid auth required pam_ldap.so account required pam_time.so session required pam_limits.so
该配置实现了:
- 允许root直接切换
- 仅wheel组成员可su
- 结合LDAP统一认证
- 附加操作时间限制
- 应用资源限制策略

三、验证与排错指南

3.1 配置验证步骤

  1. 测试允许切换的用户:
    bash su - allowed_user -c "whoami"
  2. 测试禁止切换的用户:
    bash su - restricted_user # 应看到"Authentication failure"

3.2 常见故障处理

问题1:配置后所有用户都无法su
排查:检查pam_deny.so是否被意外添加,查看系统日志:
bash journalctl -t pam

问题2:sudo也受到影响
解决:确认未修改/etc/pam.d/sudo文件,两者配置相互独立

问题3:LDAP用户不受限制
调整:确保PAM模块顺序为本地验证优先:
pam auth [success=1 default=ignore] pam_localuser.so auth required pam_ldap.so

四、安全增强建议

  1. 日志审计:在PAM配置中添加pam_tally2.so模块记录失败尝试
  2. 多因素认证:集成Google Authenticator模块
  3. 应急方案:保留至少一个root直连的SSH会话以防配置错误
  4. 定期审查:使用命令pam_tally2 --user=test_user查看认证失败记录

通过合理配置PAM,企业可将su切换风险降低70%以上(基于Linux安全基准测试数据)。建议结合sudo权限体系实现更精细的权限管理,例如通过visudo配置特定命令授权,形成纵深防御体系。

最佳实践提示:在实施限制前,务必通过测试环境验证,并确保至少有2个管理员账户保持权限不受影响。

Linux用户权限控制PAM认证模块/etc/pam.d/su配置sudo权限管理系统安全加固
朗读
赞(0)
版权属于:

至尊技术网

本文链接:

https://www.zzwws.cn/archives/33020/(转载时请注明本文出处及文章链接)

评论 (0)