logo
0
0
Login

JumpGate - Linux跳板机

JumpGate是一个基于Shell脚本的Linux跳板机实现方案,允许非root用户登录后自动进入受限的跳板机环境,禁止退出到完整shell,并且只能访问预先授权的目标服务器。

特性

  • 按账户分配目标服务器分组
  • 服务器分类管理,便于组织大量服务器
  • 支持多种认证方式:公钥认证、密码认证或两者结合
  • 支持为不同服务器配置不同的密钥
  • 详细的访问日志记录和审计功能
  • 受限的shell环境,防止用户逃逸
  • 简单易用的命令行界面,支持命令自动补全
  • 会话超时自动断开,增强安全性
  • 服务器搜索功能,快速定位目标服务器
  • 连接历史查询,便于追踪操作记录

目录结构

/opt/jumpgate/ ├── jumpgate.sh # 主跳板机程序 ├── targets.list # 目标服务器列表 ├── jumpgate.conf # 配置文件 ├── keys/ # SSH密钥目录 ├── scripts/ # 工具脚本目录 │ ├── encrypt_password.sh # 密码加密工具 │ └── manage_keys.sh # 密钥管理工具 └── logs/ └── access.log # 访问日志文件

安装

  1. 克隆或下载此仓库
  2. 运行安装脚本:
sudo ./install.sh

配置

添加目标服务器

编辑 /opt/jumpgate/targets.list 文件,按照以下格式添加服务器:

[GROUP:组名] [CATEGORY:分类名称] 名称|主机|端口|用户|认证类型|认证信息

认证类型可以是:

  • key: 使用SSH密钥认证
  • password: 使用密码认证
  • both: 同时支持密钥和密码认证

认证信息格式:

  • key类型: 密钥文件名(相对于/opt/jumpgate/keys/目录)
  • 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密钥

使用密钥管理工具添加和管理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

添加用户到跳板机

  1. 创建系统用户(如果不存在):
sudo useradd -m username
  1. 设置用户密码:
sudo passwd username
  1. 将用户添加到jumpgate组:
sudo usermod -aG jumpgate username
  1. 修改用户的shell为跳板机程序:
sudo usermod -s /opt/jumpgate/jumpgate.sh username
  1. 在jumpgate.conf中将用户添加到相应的组

使用方法

用户登录后将自动进入跳板机环境,可用的命令有:

  • list: 列出可访问的目标服务器
  • search <关键词>: 搜索服务器
  • connect [编号]: 连接到指定编号的服务器
  • info [编号]: 显示指定服务器的详细信息
  • history [数量]: 显示最近的连接历史
  • passwd: 修改当前用户密码
  • help: 显示帮助信息
  • exit/quit: 退出跳板机系统

日志与审计

所有访问记录都会记录在 /opt/jumpgate/logs/access.log 文件中,格式为:

时间戳 | 用户 | IP地址 | 动作 | 目标 | 详情

系统配置了日志轮转,防止日志文件无限增长。

安全特性

  1. 会话超时:长时间无操作会自动断开连接
  2. 失败登录限制:多次登录失败会暂时锁定账户
  3. 密码策略:可配置密码复杂度要求和过期时间
  4. IP限制:可配置允许访问的IP地址或网段
  5. 多因素认证:支持配置多因素认证(可选)

安全注意事项

  1. 确保 /opt/jumpgate 目录及其内容的权限设置正确
  2. 定期更换密码和密钥
  3. 定期审计访问日志
  4. 使用防火墙限制跳板机的访问来源
  5. 考虑启用多因素认证增强安全性
  6. 避免在 targets.list 中明文存储密码,建议使用密码加密工具

高级配置

jumpgate.conf 支持多种高级配置选项,包括:

  • 会话超时设置
  • SSH连接参数
  • 密码策略
  • 审计配置
  • 通知设置
  • IP限制
  • 多因素认证

详细配置请参考配置文件中的注释说明。

About

No description, topics, or website provided.
Language
Shell85.4%
Markdown14.6%