SSH 黑屏配置试用环境机器,受限bash和自定义shell

背景

Smartshell是WEB版本的Xshell黑屏操作,用来解决小团队没有堡垒机的问题。可以集中管控资源,登录凭证,以及对操作有个日志记录。其中试用环境需要一台测试机器,让用户查看页面。

最后使用了自定义shell解决,如下图使用test用户登录进去运行的是自己的shell文件。最后效果如下,输出什么都是shell文件中编辑的。

自定义的bash shell文件如下:

bash 复制代码
#!/bin/sh

printf '\033[?25l' 2>/dev/null

trap 'printf "\033[?25h\n\nConnection closed\n"; exit 0' INT TERM

ls
pwd
ll

echo "========================================="
echo "  Custom Shell - Black Screen Test Mode"
echo "========================================="
echo "Connected: $(date)"
echo "User: $(whoami)"
echo "From: $(echo $SSH_CLIENT | awk '{print $1}')"
echo "========================================="
echo ""
echo "enter terminal..."

while true; do
    sleep 1
    echo -ne "$(date +'%Y-%m-%d %H:%M:%S')\r"
done

问题

如果配置正式机器就需要配置严格的限制权限,否则非常容易被利用。

解决方案

  1. 使用docker创建一个centos的容器,使用ssh登录这个机器

  2. 使用受限bash,配置只允许使用的命令

  3. 自定义Shell

方案对比

对比维度 Docker 容器 rbash 自定义 Shell
隔离级别 进程+文件系统隔离 仅 Shell 层面限制 仅 Shell 层面限制
逃逸风险 极低(需内核漏洞) 中等(配置不当易逃逸) 低(脚本可控)
资源限制 支持 cgroup 不支持 不支持
操作审计 配合宿主机日志 无内置审计 支持内置日志
防御深度 5 层(宿主机+容器+SSH+内核+SELinux) 1 层(Shell) 1 层(Shell)
学习成本 中高

选型:自定义Shell方式,实现简单,灵活可控

实现

cat /etc/passwd 查看用户bash

/bin/bash 就是root 登录ssh黑屏交互的程序。登录ssh本质是连接,验证,登录机器,找一个Linux规定的程序来接待你。这个/bin/bash就是 根据root登录进去接待你的程序。

添加用户,并设置shell文件

创建文件:echo "" > /opt/shell/custom_shell.sh

赋予权限:chmod 755 /opt/shell/custom_shell.sh

创建用户,并设置执行sh文件:useradd -m -s /opt/shell/custom_shell.sh testuser

查询是否设置OK:

root@iZ2ze6n5mtst0dxrvqZ \~# grep testuser /etc/passwd

testuser:x:1001:1002::/home/testuser:/opt/shell/custom_shell.sh

给用户设置密码:passwd testuser

使用SSH登录

相关推荐
Avan_菜菜1 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https
SelectDB2 天前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
XIAOHEZIcode3 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220704 天前
如何搭建本地yum源(上)
运维
大树887 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠7 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质7 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
开发者联盟league7 天前
安装pnpm
ssh
Inhand陈工7 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智7 天前
ARP代理--工作原理
运维·网络·arp·arp代理