Jumpserver 是一款由python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能。基于ssh协议来管理,客户端无需安装agent。
在公司中,分配人员服务器权限也是相当方便,如:来一个新人,在Jumpserver分配Jumpserver账号即可,人员离职,在Jumpserver删掉人员账号即可。无需担心人员离职留下后门,当然前提是检查防火墙,只允许Jumpserver服务器有其他服务器的ssh的权限。
目前市面上已经有很多jumpserver产品提供使用,这里就介绍最广泛的一款。
官方网址:
https://www.jumpserver.org/
二、Jumpserver搭建
参考官方部署文档:
https://docs.jumpserver.org/zh/master/install/setup_by_fast/
这款也是基于docker运行的,不管一键部署,还是手动部署都是docker,手动部署区别主要是改密码、IP、端口自定义之类的。默认的其实已经很好没必要改了。相对来说,搭建还是比较容易的,官方脚本一步到位。
1:一键部署
如果没有安装docker,可以选择这种方式,脚本会自带安装docker及相关配置。请确保服务器上没有已关闭其他mysql或者nginx服务,因为会占用端口。
# 默认会安装到 /opt/jumpserver-installer-v2.21.0 目录,如果类似ubuntu提示没权限,请加上sudo即可
curl -sSL https://github.com/jumpserver/jumpserver/releases/download/v2.21.0/quick_start.sh | bash
cd /opt/jumpserver-installer-v2.21.0
# 安装完成后配置文件 /opt/jumpserver/config/config.txt
安装界面:
安装完成后,进入启动即可
cd /opt/jumpserver-installer-v2.21.0
# 启动,如果权限问题,同意前面加上sudo即可。
./jmsctl.sh start
# 停止
./jmsctl.sh down
# 卸载
./jmsctl.sh uninstall
# 帮助
./jmsctl.sh -h
2:手动部署
如果已经安装了docker,或者自己改配置在启动,可选择手动部署。
#进入下载目录
cd /opt
#下载安装包
wget https://github.com/jumpserver/installer/releases/download/v2.21.0/jumpserver-installer-v2.21.0.tar.gz
#解压
tar -xf jumpserver-installer-v2.21.0.tar.gz
#进入解压目录
cd jumpserver-installer-v2.21.0
# 根据需要修改配置文件模板, 如果不清楚用途可以跳过修改
cat config-example.txt
# 以下设置如果为空系统会自动生成随机字符串填入
## 迁移请修改 SECRET_KEY 和 BOOTSTRAP_TOKEN 为原来的设置
## 完整参数文档 https://docs.jumpserver.org/zh/master/admin-guide/env/
## 安装配置, amd64 默认使用华为云加速下载, arm64 请注释掉 DOCKER_IMAGE_PREFIX=swr.cn-south-1.myhuaweicloud.com
# DOCKER_IMAGE_PREFIX=swr.cn-south-1.myhuaweicloud.com
VOLUME_DIR=/opt/jumpserver
DOCKER_DIR=/var/lib/docker
SECRET_KEY=
BOOTSTRAP_TOKEN=
LOG_LEVEL=ERROR
## MySQL 配置, USE_EXTERNAL_MYSQL=1 表示使用外置数据库, 请输入正确的 MySQL 信息
USE_EXTERNAL_MYSQL=0
DB_HOST=mysql
DB_PORT=3306
DB_USER=root
DB_PASSWORD=
DB_NAME=jumpserver
## Redis 配置, USE_EXTERNAL_REDIS=1 表示使用外置数据库, 请输入正确的 Redis 信息
USE_EXTERNAL_REDIS=0
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=
## Compose 项目设置, 如果 192.168.250.0/24 网段与你现有网段冲突, 请修改然后重启 JumpServer
COMPOSE_PROJECT_NAME=jms
COMPOSE_HTTP_TIMEOUT=3600
DOCKER_CLIENT_TIMEOUT=3600
DOCKER_SUBNET=192.168.250.0/24
## IPV6 设置, 容器是否开启 ipv6 nat, USE_IPV6=1 表示开启, 为 0 的情况下 DOCKER_SUBNET_IPV6 定义不生效
USE_IPV6=0
DOCKER_SUBNET_IPV6=2001:db8:10::/64
## Nginx 配置, USE_LB=1 表示开启, 为 0 的情况下, HTTPS_PORT 定义不生效
HTTP_PORT=80
SSH_PORT=2222
RDP_PORT=3389
USE_LB=0
HTTPS_PORT=443
## Task 配置, 是否启动 jms_celery 容器, 单节点必须开启
USE_TASK=1
## XPack, USE_XPACK=1 表示开启, 开源版本设置无效
USE_XPACK=0
# Core 配置, Session 定义, SESSION_COOKIE_AGE 表示闲置多少秒后 session 过期, SESSION_EXPIRE_AT_BROWSER_CLOSE=true 表示关闭浏览器即 session 过期
# SESSION_COOKIE_AGE=86400
SESSION_EXPIRE_AT_BROWSER_CLOSE=true
# Koko Lion XRDP 组件配置
CORE_HOST=http://core:8080
# 额外的配置
CURRENT_VERSION=
# 安装
./jmsctl.sh install
# 启动
./jmsctl.sh start
# 安装完成后配置文件 /opt/jumpserver/config/config.txt
启动方式一样,脚本启动
cd /opt/jumpserver-installer-v2.21.0
# 启动
./jmsctl.sh start
# 停止
./jmsctl.sh down
# 卸载
./jmsctl.sh uninstall
# 帮助
./jmsctl.sh -h
3:启动测试
安装完成后,在服务器上,可看见docker的jumpserver服务都已经up状态。
浏览器输入服务器IP地址,即可进入
默认管理员账户admin,密码admin,第一次登录提示会更改密码,更改密码后,重新登录即可进入。
三、Jumpserver添加服务器、人员,以及授权
情景:员工zhangsan,服务器192.168.152.100。现在需要添加服务器192.168.152.100到jumpserver,并允许员工zhangsan登录。
1:用户管理
添加员工账户zhangsan,系统角色用户即可。这个简单,就不介绍了。
2:资产管理
2.1:系统用户
系统用户选项,有普通用户和特权用户,有些人分不清楚。
这两个用户,都是给jumpserver这个软件使用的,jumpserver用这两个用户连接到其他服务器。
特权用户:最高权限, 如 root 或 拥有 `NOPASSWD: ALL` sudo 权限的用户,只允许jumpserver使用,JumpServer 使用该用户来 `推送系统用户`、`获取资产硬件信息` 等,系统也有提示。远程服务器上存在的用户信息。
普通用户:可以在服务器预先存在的用户,也可以由 特权用户 来自动创建。是zhangsan登录服务器时用的用户名。也可以直接是特权用户root等,看权限分配。
创建特权用户,给jumpserver软件连接用,这里用的ubuntu,登录方式密钥,上传密钥即可。
普通用户,可创建也可以不创建,如直接使用特权用户ubuntu即可。如果创建后(如:user01),jumpserver会在远程服务器上通过ubuntu这个特权用户自动创建这个用户(如:user01)。
2.2: 资产列表
资产列表,就是添加服务器地址,特权用户,就是上面创建的给jumpserver连接远程服务器使用的。
特权用户的账户密码没错的话,添加完成后,可以看到连接行是绿色的勾
点进去查看,也可以看到服务器相关硬件信息
到这里,服务器添加完成。
3:权限管理
服务器添加完成后,需要给zhangsan使用,就需要给zhangsan这个账户授权。
在资产授权里,可以看到已经存在的服务器,但是没有授权,也是空白。所以选择创建。
填写名称,用户选择zhangsan,如果有多个用户需要使用,可添加多个。
用户组,即对这个用户组的所有用户授权,便于人员的管理,这里只对单个人授权,所有保持为空,毕竟用户组有些人员也是没必要使用的。
资产,选择要授权的服务器,这里选择刚才的添加的192.168.152.100。
节点,即分组,在服务器很多的情况下,可以选择某个节点,即服务器分组给上面的人员授权。同理,这里只对单个服务器授权,所有保持为空,毕竟节点下所有服务器也是没必要全部使用的。
系统用户,我这里默认全部使用特权用户,及ubuntu,所以人员进入服务器都是以ubuntu进入。当然,如果上面创建了普通的系统用户,也可以选择普通的系统用户。如果公司人多的话,还是需要创建的,便于权限管理。
到这里,服务器授权管理已经完成。
四、Jumpserver用户登录使用
有两种登录方式,一种网页登录,另一种第三方ssh工具登录。
1:网页登录
浏览器打开jumpserver网址。
用zhangsan账户登录jumpserver,界面简单,只显示有权限的资产,即服务器名单
点击web终端,可直接进入网页版登录,服务器,选择需要的服务器点击即可。
2:ssh工具登录
如:xshell,Putty等,ssh堡垒机IP,端口:2222。进入根据提示选择需要登录的服务器。这里以xshell为例。
将端口改成2222,然后登录
登录后,输入zhangsan账户密码,即可,根据提示进入授权服务器
到这里就设置完成了。
五、Jumpserver审计功能
管理员用户,或者审计员用户,可以在视图审计台中,查看相关登录记录,命令记录,以及回放。
六、Jumpserver账户登录MFA加密(建议设置)
由于登录Jumpserver后都是免密登录,所有建议设置
如果服务器很多,防止别人泄露,可以增加MFA加密认证。
根据提示设置即可,设置完成后。再次登录则需要添加验证码