JumpGate是一个基于Shell脚本的Linux跳板机实现方案,允许非root用户登录后自动进入受限的跳板机环境,禁止退出到完整shell,并且只能访问预先授权的目标服务器。
/opt/jumpgate/ ├── jumpgate.sh # 主跳板机程序 ├── targets.list # 目标服务器列表 ├── jumpgate.conf # 配置文件 ├── keys/ # SSH密钥目录 ├── scripts/ # 工具脚本目录 │ ├── encrypt_password.sh # 密码加密工具 │ └── manage_keys.sh # 密钥管理工具 └── logs/ └── access.log # 访问日志文件
sudo ./install.sh
编辑 /opt/jumpgate/targets.list 文件,按照以下格式添加服务器:
[GROUP:组名] [CATEGORY:分类名称] 名称|主机|端口|用户|认证类型|认证信息
认证类型可以是:
key: 使用SSH密钥认证password: 使用密码认证both: 同时支持密钥和密码认证认证信息格式:
编辑 /opt/jumpgate/jumpgate.conf 文件,配置用户组:
# 用户组配置 # 格式: 组名=用户1,用户2,用户3,... admin=admin,root,superuser dev=developer1,developer2,developer3 ops=ops1,ops2,sysadmin # 默认组配置(未指定组的用户将使用此组) DEFAULT_GROUP=guest
使用密钥管理工具添加和管理SSH密钥:
sudo /opt/jumpgate/scripts/manage_keys.sh --add key_name /path/to/your/key.pem sudo /opt/jumpgate/scripts/manage_keys.sh --list sudo /opt/jumpgate/scripts/manage_keys.sh --remove key_name
sudo useradd -m username
sudo passwd username
sudo usermod -aG jumpgate username
sudo usermod -s /opt/jumpgate/jumpgate.sh username
用户登录后将自动进入跳板机环境,可用的命令有:
list: 列出可访问的目标服务器search <关键词>: 搜索服务器connect [编号]: 连接到指定编号的服务器info [编号]: 显示指定服务器的详细信息history [数量]: 显示最近的连接历史passwd: 修改当前用户密码help: 显示帮助信息exit/quit: 退出跳板机系统所有访问记录都会记录在 /opt/jumpgate/logs/access.log 文件中,格式为:
时间戳 | 用户 | IP地址 | 动作 | 目标 | 详情
系统配置了日志轮转,防止日志文件无限增长。
/opt/jumpgate 目录及其内容的权限设置正确jumpgate.conf 支持多种高级配置选项,包括:
详细配置请参考配置文件中的注释说明。