怎么配置Linux跳板机使用受限Shell提升系统的纵深防御

夏芳酱_8385

夏芳酱_8385

2026-05-27

694人浏览

原创

linux跳板机必须采用lshell多层防护:安装配置后禁用scp/sftp、设命令白名单与路径锁定、启用审计日志,再通过pam限制组权限、ssh forcecommand兜底,禁用密码登录。

怎么配置linux跳板机使用受限shell提升系统的纵深防御

配置Linux跳板机使用受限Shell,不是简单改个/etc/passwd里的shell路径就能生效的事。它必须是多层控制的组合:选对工具、锁死执行路径、禁用逃逸入口、记录所有操作,并切断底层绕过可能。单靠rbash或lshell任一环节,都容易被绕过。

优先选用 lshell 而非 rbash 或 rssh

rbash 依赖环境变量(如PATH、SHELL)和用户配置文件(如.bashrc)生效,一旦被污染或误配就失效;rssh 已停止维护、不兼容新系统、功能僵硬且存在已知漏洞,官方源中基本移除。生产跳板机应首选 lshell——它支持按用户/组差异化策略、命令白名单、特殊字符过滤、完整命令日志,且配置独立于用户环境。

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

精细化配置 /etc/lshell/lshell.conf

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

Browser Setup (No-Root Linux)
Browser Setup (No-Root Linux)

在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...

下载
  • 全局禁用高危能力:scp: 0、sftp: 0、overssh: [](防rsync -e bash等逃逸)
  • 命令白名单严格限定:allowed: ['ls', 'pwd', 'cd', 'cat', 'tail', 'journalctl', 'sudo'] —— 不含bash、sh、python、perl等解释器
  • 禁止命令拼接与变量展开: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=或ssh -o "RemoteCommand=/bin/bash" user@host等绕过方式。必须叠加访问控制:

  • 创建专用组(如jumpuser),将跳板用户加入:usermod -aG jumpuser ops
  • 在/etc/lshell/lshell.conf中按组配置策略,例如:[jumpuser]段下定义专属allowed和path
  • 在/etc/pam.d/system-auth中添加PAM规则,禁止该组用户启动交互式shell:
    auth [success=ok default=bad] pam_succeed_if.so user ingroup jumpuser
    auth [default=die] pam_deny.so
  • 确保跳板用户家目录权限为750,且.bashrc、.profile等由root拥有、不可写

配合 SSH 强制命令(ForceCommand)作为兜底机制

这是纵深防御中最关键的一环——即使lshell配置出错或被绕过,SSH层仍能拦截并重定向到可控逻辑:

  • 在/etc/ssh/sshd_config中为跳板用户指定:
    Match User ops
    ForceCommand /usr/local/bin/jump-wrapper.sh
  • jump-wrapper.sh需校验来源IP、目标主机白名单、超时时间,并调用ssh -o StrictHostKeyChecking=yes user@target完成跳转
  • 确保UsePAM yes启用,LogLevel VERBOSE开启详细日志,并将日志转发至SIEM系统
  • 禁用密码登录:PasswordAuthentication no,仅允许密钥认证

相关文章

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

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

下载

相关标签:

linux

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

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

437

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

900

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2712

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

916

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

809

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

414

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2456

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

4552

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

727

5

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习