在 Linux 下用 Docker 搭建 JumpServer
文章
林里克斯
JumpServer
是全球首款完全开源的堡垒机, 使用 GNU GPL v2.0
开源协议, 是符合 4A
的专业运维审计系统
一、JumpServer 介绍
1.官网
https://jumpserver.org/
2.介绍
- JumpServer 使用 Python / Django 进行开发, 遵循 Web 2.0 规范, 配备了业界领先的 Web Terminal 解决方案, 交互界面美观、用户体验好。
- JumpServer 现已支持管理 SSH、 Telnet、 RDP、 VNC 协议资产。
- JumpServer 采纳分布式架构, 支持多机房跨区域部署, 中心节点提供 API, 各机房部署登录节点, 可横向扩展、无并发访问限制
- JumpServer 使用 Apache Guacamole: http://guacamole.apache.org/
3.优势
- 开源: 零门槛,线上快速获取和安装;
- 分布式: 轻松支持大规模并发访问;
- 无插件: 仅需浏览器,极致的 Web Terminal 使用体验;
- 多云支持: 一套系统,同时管理不同云上面的资产;
- 云端存储: 审计录像云端存储,永不丢失;
- 多租户: 一套系统,多个子公司和部门同时使用。
二、安装
1.docker
和 docker-compose
安装省略
2.编写 docker-compose.yml
JumpServer
封装了一个All in one Docker
, 可以快速启动。该镜像集成了所需要的组件, 支持使用外置Database
和Redis
$ vim ./jumpserver/docker-compose.yml
version: '3'
services:
mysql:
image: jumpserver/jms_mysql:${Version}
container_name: jms_mysql
restart: always
tty: true
environment:
DB_PORT: $DB_PORT
DB_USER: $DB_USER
DB_PASSWORD: $DB_PASSWORD
DB_NAME: $DB_NAME
volumes:
- mysql-data:/var/lib/mysql
networks:
- jumpserver
redis:
image: jumpserver/jms_redis:${Version}
container_name: jms_redis
restart: always
tty: true
environment:
REDIS_PORT: $REDIS_PORT
REDIS_PASSWORD: $REDIS_PASSWORD
volumes:
- redis-data:/var/lib/redis/
networks:
- jumpserver
core:
image: jumpserver/jms_core:${Version}
container_name: jms_core
restart: always
tty: true
environment:
SECRET_KEY: $SECRET_KEY
BOOTSTRAP_TOKEN: $BOOTSTRAP_TOKEN
LOG_LEVEL: $LOG_LEVEL
DB_HOST: $DB_HOST
DB_PORT: $DB_PORT
DB_USER: $DB_USER
DB_PASSWORD: $DB_PASSWORD
DB_NAME: $DB_NAME
REDIS_HOST: $REDIS_HOST
REDIS_PORT: $REDIS_PORT
REDIS_PASSWORD: $REDIS_PASSWORD
depends_on:
- mysql
- redis
volumes:
- core-data:/opt/jumpserver/data
networks:
- jumpserver
koko:
image: jumpserver/jms_koko:${Version}
container_name: jms_koko
restart: always
tty: true
environment:
CORE_HOST: http://core:8080
BOOTSTRAP_TOKEN: $BOOTSTRAP_TOKEN
LOG_LEVEL: $LOG_LEVEL
depends_on:
- core
- mysql
- redis
volumes:
- koko-keys:/opt/koko/data/keys
ports:
- 2222:2222
networks:
- jumpserver
guacamole:
image: jumpserver/jms_guacamole:${Version}
container_name: jms_guacamole
restart: always
tty: true
environment:
JUMPSERVER_SERVER: http://core:8080
BOOTSTRAP_TOKEN: $BOOTSTRAP_TOKEN
GUACAMOLE_LOG_LEVEL: $LOG_LEVEL
depends_on:
- core
- mysql
- redis
volumes:
- guacamole-keys:/config/guacamole/keys
networks:
- jumpserver
nginx:
image: jumpserver/jms_nginx:${Version}
container_name: jms_nginx
restart: always
tty: true
depends_on:
- core
- koko
- mysql
- redis
volumes:
- core-data:/opt/jumpserver/data
ports:
- 80:80
networks:
- jumpserver
volumes:
mysql-data:
redis-data:
core-data:
koko-keys:
guacamole-keys:
networks:
jumpserver:
3.编辑 env
$ cat .env
# 版本号可以自己根据项目的版本修改
Version=v2.1.2
# MySQL
DB_HOST=mysql
DB_PORT=3306
DB_USER=jumpserver
DB_PASSWORD=jumpserver123
DB_NAME=jumpserver
# Redis
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=8URXPL2x3HZMklasjdklajsklqw
# Core
SECRET_KEY=B3f2w8PPfxtasdqweasdaseqqwejkaljsdlp
BOOSTRAP_Vz6R2J6BLAdO
LOG_LEVEL=ERROR
##
# SECRET_KEY 保护签名数据的密匙, 首次安装请一定要修改并牢记, 后续升级和迁移不可更改, 否则将导致加密的数据不可解密。
# BOOTSTRAP_TOKEN 为组件认证使用的密钥, 仅组件注册时使用。组件指 koko、guacamol
4.下载镜像
$ docker-compose pull
5.创建数据库
$ mysql -u root -p
> create database jumpserver default charset 'utf8' collate 'utf8_bin';
> grant all on jumpserver.* to 'jumpserver'@'%' identified by 'jumpserver123';
6.启动 jumpserver
$ docker-compose up -d
7.访问测试
访问 502
的情况话,等几分钟就可以访问了
Over~
版权协议须知!
本篇文章来源于 Uambiguous ,如本文章侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
1257 0 2020-08-21
博主卡片
运维时间
搭建这个平台,只为分享及记载自己所遇之事和难题。
现在时间 2024-12-28
今日天气
随机推荐
08-26
Linux 网络安全审计命令之 nmap
01-15
HTTP 请求头详解
01-04
Linux下搭建SVN
01-06
常见的Linux系统简单面试题(一)
03-18
Kibana 使用汉化
09-21
Linux 网络安全审计命令之 nc/ncat
站点统计
- 文章总数:241篇
- 分类总数:29个
- 评论总数:12条
- 本站总访问量 353828 次
@xiaozi 最后的分享的镜像下载地址打不开 服务器没有开机吗?
@yuanyuan 为什么我的4b安装centos7.9 插上tf卡 显示不兼...
@Wong arrhenius 牛比
@MakerFace 厉害了!
@TongSir 老哥 更新下我的友链链接 https://blog.ton...