参考官方文档
https://docs.jumpserver.org/zh/master/install/docker_install/
https://docs.jumpserver.org/zh/1.4.8/faq_rdp.html
一.环境部署
1.搭建docker环境
yum -y install docker
2.安装docker-compose
centos
sudo yum-config-manager \--add-repo \http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.reposudo yum install docker-ce
启动docker服务sudo systemctl start docker
编辑sudo vi /etc/docker/daemon.json
{"registry-mirrors": ["https://dockerhub.azk8s.cn"],"data-root": "/data/docker","metrics-addr" : "0.0.0.0:9323","experimental" : true ,"bip": "172.31.0.1/24","default-address-pools":[{"base":"172.31.0.0/16","size":24}]
}sudo systemctl enable docker
sudo systemctl restart docker#docker-compose下载
sudo curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-composesudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
3.创建项目目录
mkdir -p /home/xxx/jms
cd jms
4.下载jms的docker项目
git clone https://github.com/wojiushixiaobai/docker-compose.git
version: '3'
services:mysql:image: jumpserver/jms_mysql:${Version}container_name: jms_mysqlrestart: alwaystty: trueenvironment:DB_PORT: $DB_PORTDB_USER: $DB_USERDB_PASSWORD: $DB_PASSWORDDB_NAME: $DB_NAMEvolumes:- mysql-data:/var/lib/mysqlnetworks:- jumpserverredis:image: jumpserver/jms_redis:${Version}container_name: jms_redisrestart: alwaystty: trueenvironment:REDIS_PORT: $REDIS_PORTREDIS_PASSWORD: $REDIS_PASSWORDvolumes:- redis-data:/var/lib/redis/networks:- jumpservercore:image: jumpserver/jms_core:${Version}container_name: jms_corerestart: alwaystty: trueenvironment:SECRET_KEY: $SECRET_KEYBOOTSTRAP_TOKEN: $BOOTSTRAP_TOKENLOG_LEVEL: $LOG_LEVELDB_HOST: $DB_HOSTDB_PORT: $DB_PORTDB_USER: $DB_USERDB_PASSWORD: $DB_PASSWORDDB_NAME: $DB_NAMEREDIS_HOST: $REDIS_HOSTREDIS_PORT: $REDIS_PORTREDIS_PASSWORD: $REDIS_PASSWORDWINDOWS_SKIP_ALL_MANUAL_PASSWORD: "FALSE"depends_on:- mysql- redisvolumes:- core-data:/opt/jumpserver/datanetworks:- jumpserverkoko:image: jumpserver/jms_koko:${Version}container_name: jms_kokorestart: alwaystty: trueenvironment:CORE_HOST: http://core:8080BOOTSTRAP_TOKEN: $BOOTSTRAP_TOKENLOG_LEVEL: $LOG_LEVELdepends_on:- core- mysql- redisvolumes:- koko-keys:/opt/koko/data/keysports:- 2222:2222networks:- jumpserverguacamole:image: jumpserver/jms_guacamole:${Version}container_name: jms_guacamolerestart: alwaystty: trueenvironment:JUMPSERVER_SERVER: http://core:8080BOOTSTRAP_TOKEN: $BOOTSTRAP_TOKENGUACAMOLE_LOG_LEVEL: $LOG_LEVELdepends_on:- core- mysql- redisvolumes:- guacamole-keys:/config/guacamole/keysnetworks:- jumpservernginx:image: jumpserver/jms_nginx:${Version}container_name: jms_nginxrestart: alwaystty: truedepends_on:- core- koko- mysql- redisvolumes:- core-data:/opt/jumpserver/dataports:- 80:80networks:- jumpservervolumes:mysql-data:redis-data:core-data:koko-keys:guacamole-keys:networks:jumpserver:
5.用docker-compose启动项目
docker-compose up -d
二.jumpserver后台配置添加主机资产并授权访问。
1.登录jump server后台,默认的登录用户名和密码均为:admin
2.配置系统用户。
3.配置管理用户。
4.创建用户组
5.创建jumpserver后台用户.
6.创建资产主机。
7.创建资产授权规则。
8.后台web查看是否有资产并验证登录
9.使用xsheel登录jumpserver,登录被控主机。
登录用户名为后台配置得后台用户,例如admin :admin 登录端口为2222
RDP 协议资产连接说明
RDP 协议资产连接错误排查思路
(1). 如果白屏 检查nginx配置文件的guacamole设置ip是否正确, 检查终端管理的gua状态是否在线
(2). 如果显示没有权限 是你 终端管理里 guacamole 状态为红色或者没有注册成功
(3). 如果显示未知问题 可能是你的资产填写的端口不对, 或者授权的系统用户的协议不是rdp
(4). 提示无法连接服务器 一般情况下是登录的系统账户不正确或者防火墙设置有误, 资产的信息填写不正确也会报这个错误
(5). 提示网络问题无法连接或者超时, 请检查网络连接并重试, 或联系管理员 一般情况下网络有问题
- 检查终端是否在线
# 如果终端不在线, 请检查 guacamole 的 BOOTSTRAP_TOKEN 是否与 jumpserver 一致, 如果不一致请修改后重启
$ cat /opt/jumpserver/config.yml | grep BOOTSTRAP_TOKEN
$ env | grep BOOTSTRAP_TOKEN$ /etc/init.d/guacd stop
$ sh /config/tomcat8/bin/shutdown.sh
$ rm -rf /config/guacamole/keys/*
$ /etc/init.d/guacd start
$ sh /config/tomcat8/bin/startup.sh# docker 部署请直接删除容器后重建, 记得一定要先在 终端管理 删除不在线的组件
$ docker stop jms_guacamole
$ docker rm jms_guacamole# http://<Jumpserver_url> 指向 jumpserver 的服务url, 如 http://192.168.244.144:8080
# BOOTSTRAP_TOKEN 为 Jumpserver/config.yml 里面的 BOOTSTRAP_TOKEN
$ docker run --name jms_guacamole -d -p 8081:8081 -e JUMPSERVER_SERVER=http://<Jumpserver_url> -e BOOTSTRAP_TOKEN=xxxxxx jumpserver/jms_guacamole:1.4.8# 正常运行后到Jumpserver 会话管理-终端管理 里面查看 gua 的状态是否为绿色(等待大概5s后刷新页面)
- 登录要连接的windows资产, 检查远程设置和防火墙设置
# Windows 7/2008 勾选 允许运行任意版本远程桌面的计算机连接(较不安全)(L)
# Windows 8/10/2012 只勾选 允许远程连接到此计算机(L), 其他选项请取消勾选# Windows防火墙-高级设置-入站规则 把远程桌面开头的选项 右键-启用规则
# Windows 7/2008 启用 远程桌面(TCP-In)
# Windows 8/10/2012 启用 远程桌面-用户模式(TCP-In)
- 登录要连接的windows资产, 检查用户和IP信息(Windows目前还不支持推送, 所以必须使用资产上面已存在的用户进行登录)
# 注:因为 windows 暂时不支持推送, 所以必须使用资产上面已经存在的账户进行登录, 如 administrator 账户
- 创建Windows资产管理用户(如果是域资产, 格式是uesr@domain.com)
# 不带域的用户直接输入用户名即可, 如 administrator
# 域用户的用户名格式为 user@domain.com, 如 administrator@jumpserver.org
- 创建Windows资产系统用户(如果是域资产, 格式是uesr@domain.com, 注意协议不要选错)
# 注:因为 windows 暂时不支持推送, 所以必须使用资产上面已经存在的账户进行登录, 如 administrator 账户
# 不带域的用户直接输入用户名即可, 如 administrator
# 域用户的用户名格式为 user@domain.com, 如 administrator@jumpserver.org
# 如果想让用户登录资产时自己输入资产的账户密码, 可以点击系统用户的名称 点击清除认证信息
# 此处必须输入能正确登录 windows 资产的 账户密码
# 如不确实是不是因为密码或者账户信息错误导致的无法登录, 可以使用手动登录功能(在系统用户处设置)
- 创建Windows资产(注意端口不要填错)
# Windows 7/8/2008/2012 "系统平台"选择 "Windows"
# Windows 10/2016 "系统平台"选择 "Windows(2016)"
- 创建授权规则
# 先定位到 windows 的资产, 然后授权, 如果资产用户密码不一致, 请不要直接在节点上授权
- 使用web terminal登录(如果登录报错, 检查防火墙的设置, 可以参考FAQ)
- Windows 资产文件上传和下载
# 直接拖拽文件到 windows 窗口即可, 文件上传后在 Guacamole RDP上的 G 目录查看
# 下载在 luna 页面, 按 ctrl+alt+shift, 选择文件下载即可