如何为系统用户配置受限的 Shell 环境防止环境逃逸指南

胖静同学_4776

胖静同学_4776

2026-07-04

638人浏览

原创

应首选lshell构建受限shell环境:需安装配置、禁用逃逸通道、严格命令白名单、锁定路径与path、启用审计日志,并叠加pam组限制、ssh forcecommand及密钥管控等多层防护。

如何为系统用户配置受限的 shell 环境防止环境逃逸指南

为系统用户配置受限 Shell 环境,关键不是“选一个壳”,而是构建一层可验证、难绕过、行为可追溯的执行边界。单改 /etc/passwd 里的 shell 字段毫无意义——rbash 可被 vim !/bin/bash 逃逸,/bin/false 挡不住 ssh user@host command=...,lshell 配错一行就形同虚设。

优先选用 lshell,而非 rbash 或 rssh

rbash 依赖环境变量和用户配置文件生效,PATH 被污染、.bashrc 里加个 exec /bin/sh 就失效;rssh 已停止维护、不兼容新系统、功能僵硬且存在已知漏洞,主流发行版(RHEL 8+/CentOS Stream、Ubuntu 22.04+)默认不提供。生产跳板或系统账户应首选 lshell:

  • RHEL/CentOS:运行 yum install lshell;Ubuntu/Debian:运行 apt install lshell
  • 确认路径:which lshell(通常为 /usr/bin/lshell),并确保该路径已写入 /etc/shells(否则 SSH 登录会拒绝)
  • 测试可用性:临时切换测试用户 chsh -s /usr/bin/lshell $USER,新开终端登录,验证基础命令(ls、pwd)是否可执行

收紧 /etc/lshell/lshell.conf 的核心项

默认配置极宽松,必须手动精简。原则是“只开必需,其余全禁”:

iSlide PPT
iSlide PPT

一款AI演示文稿工具,主要用于DeepSeek AI加持,输入主题生成专业PPT,支持Word/PDF等45种文档导入,职场汇报、教学提案轻松搞定,适合需要提升相关任务效率的用户。

下载
  • 关闭所有逃逸通道:scp: 0、sftp: 0、overssh: [](防 rsync -e bash 类绕过)
  • 命令白名单严格限定:allowed: ['ls', 'pwd', 'cd', 'cat', 'tail', 'journalctl', 'sudo']——不包含 bash、sh、python、perl、vim、less 等任何可交互式逃逸的程序
  • 禁用命令拼接与变量展开:forbidden: [';', '&', '|', '`', '$(', '\', '!', '*']
  • 路径锁定仅限运维目录:path: ['/home', '/etc', '/var/log', '/opt/scripts'],并显式设置 env_path: ':/usr/bin:/bin'(冒号开头表示清空原有 PATH)
  • 启用完整审计:logpath: /var/log/lshell/,loglevel: 2(记录每条命令及完整参数)

绑定用户组 + PAM 层拦截堵住底层绕过

仅改 shell 字段无法防御 sudo -u user /bin/bash、ssh user@host command=/bin/sh、ssh -o "RemoteCommand=/bin/bash" 等方式。必须叠加访问控制:

  • 创建专用组(如 jumpuser):groupadd jumpuser,将目标用户加入:usermod -aG jumpuser ops
  • 在 /etc/lshell/lshell.conf 中按组定义策略,例如 [jumpuser] 段下单独配置 allowed 和 path
  • 编辑 /etc/pam.d/system-auth,插入两行规则(放在其他 auth 行之前):
    auth [success=ok default=bad] pam_succeed_if.so user ingroup jumpuser
    auth [default=die] pam_deny.so
    此配置使属于 jumpuser 组的用户无法启动任何交互式 shell,无论其 /etc/passwd 中 shell 字段为何值

同步加固底层执行环境

跳板机安全是系统工程,以下三项必须同步完成:

  • SSH 强制命令兜底:在 /etc/ssh/sshd_config 中对跳板用户启用 ForceCommand,例如:
    Match User ops
    ForceCommand /usr/bin/lshell --config /etc/lshell-jump.conf
    这能绕过用户自行修改的 shell 设置,所有连接强制走指定配置
  • 禁用密码登录 + 密钥强管控:所有跳板用户禁用密码登录(PasswordAuthentication no);公钥在 authorized_keys 中绑定 no-port-forwarding,no-X11-forwarding,command="lshell" 等限制
  • 家目录权限与文件属主锁定:用户家目录权限设为 750;.bashrc、.profile 等文件由 root 拥有且不可写(chown root:username ~/.bashrc && chmod 640 ~/.bashrc);必要时对 /etc/shells 执行 chattr +i 防篡改

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3930

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3373

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2513

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

6070

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

5722

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3353

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2845

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

3079

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

297

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.4万人学习