jumpserver

jumpserver 是全球首款完全开源、符合 4A 规范(包含认证Authentication 、授权 Authorization、账号 Accounting 和审计 Auditing)的运维安全审计系统,Jumpserver 通过软件订阅服务或者软硬件一体机的方式,向企业级用户交付多云环境下更好用的堡垒机。

与传统堡垒机相比, Jumpserver 采用了分布式架构设计,支持多云环境并可灵活扩展。资产管理方面, Jumpserver 无并发和资产数量限制,支持水平扩容。 Jumpserver 采用了业界领先的容器化部署方式,并且提供体验极佳的 Web Terminal 。 Jumpserver 还可实现基于 Web 的文件传输,并且支持用户将运维审计录像保存在云端(例如 AWS S3 、阿里云 OSS 、 ElasticSearch 等)。

堡垒机,也叫做运维安全审计系统,它的核心功能是 4A:
1、身份验证 Authentication
2、账号管理 Account
3、授权控制 Authorization
4、安全审计 Audit

简单总结一句话:堡垒机是用来控制哪些人可以登录哪些资产(事先防范和事中控制),以及录像记录登录资产后做了什么事情(事后溯源)

启动jumpserver需要MySQL、Redis。这些我在这里用docker启动
外置数据库要求:
1、mysql 版本需要大于等于 5.6
2、mariadb 版本需要大于等于 5.5.6
3、数据库编码要求 uft8

mysql

mkdir -p /data/mysql/data
docker run -d --name mysql --restart=always -e MYSQL_ROOT_PASSWORD=abcd@1234  -p 3306:3306 -v /data/mysql/data:/var/lib/mysql mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

创建jumpserver数据库和jumpserver用户名

# docker exec -it mysql /bin/bash
# mysql -u root -pabcd@1234
mysql> create database jumpserver default charset 'utf8mb4';
mysql> grant all on jumpserver.* to 'jumpserver'@'%' identified by 'qwe@123456';
mysql> flush privileges;
mysql> exit;

redis

mkdir -p /data/redis/data
docker search redis
docker pull docker.io/redis
docker run -d -it --name redis -p 6379:6379 -v /data/redis/data:/data --restart=always  --sysctl net.core.somaxconn=1024  docker.io/redis:latest  --requirepass  "qwe123"

jumpserver的docker启动

Jumpserver 封装了一个 All in one Docker, 可以快速启动。该镜像集成了所需要的组件, 支持使用外置 Database 和 Redis

一、生成随机加密密钥

if [ "$SECRET_KEY" = "" ]; then SECRET_KEY=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 50`; echo "SECRET_KEY=$SECRET_KEY" >> ~/.bashrc; echo $SECRET_KEY; else echo $SECRET_KEY; fi


if [ "$BOOTSTRAP_TOKEN" = "" ]; then BOOTSTRAP_TOKEN=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16`; echo "BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN" >> ~/.bashrc; echo $BOOTSTRAP_TOKEN; else echo $BOOTSTRAP_TOKEN; fi

二、下载jumpserver镜像:

docker search jumpserver
docker pull docker.io/jumpserver/jms_all

启动jumpserver容器

]# mkdir -p /data/jumpserver
]# docker run -d --name jumpserver -h jumpserver --restart=always  \
-v /data/jumpserver:/opt/jumpserver/data/media \
-p 8181:80 \
-p 2222:2222 \
-e SECRET_KEY=$SECRET_KEY \
-e BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN \
-e DB_HOST=192.168.189.130 \	#IP地址
 -e DB_PORT=3306 \	#数据库端口
 -e DB_USER=jumpserver \ 	#数据库用户
 -e DB_PASSWORD="qwe@123456" \ #用户密码
 -e DB_NAME=jumpserver \ #连接的数据路名
 -e REDIS_HOST=192.168.189.130  \  #RedisIP地址
 -e REDIS_PORT=6379 \ 		#Redis端口
 -e REDIS_PASSWORD="qwe123 " \ #设置的密码
 docker.io/jumpserver/jms_all:latest

-e 指定环境变量,注意修改mysql和redis的ip地址和密码。

查看jumpserver启动日志

# docker logs -f jumpserver 
2020-01-09 20:02:18 Thu Jan  9 20:02:18 2020
2020-01-09 20:02:18 Jumpserver version 1.5.6, more see https://www.jumpserver.org
2020-01-09 20:02:18 Check database connection ...
users
 [ ] 0001_initial
...
Starting guacd: SUCCESS
Tomcat started.
Jumpserver ALL 1.5.6
官网 http://www.jumpserver.org
文档 http://docs.jumpserver.org
有问题请参考 http://docs.jumpserver.org/zh/docs/faq.html

进入容器命令 docker exec -it jms_all /bin/bash

访问网页

浏览器访问: http://<容器所在服务器IP>:端口号

SSH 访问: ssh -p 2222 <容器所在服务器IP>

XShell 等工具请添加 connection 连接, 默认 ssh 端口 2222

默认管理员账户 admin 密码 admin

容器化部署FISCO BCOS 容器化部署JumpServer_docker

如果是windows访问虚拟机里从docker失败:
docker容器是运行在docker虚拟机中的,宿主机上没有通往docker容器的路由。需要在宿主机上添加前往docker容器的路由。

在windows的cmd页面输入命令:

route add -p 172.17.0.0 mask 255.255.0.0 192.168.189.130 #p参数是永久有效

可以参考jumpserver官方文档:
https://docs.jumpserver.org/zh/master/install/docker_install/