一、前言

今天介绍一款备受欢迎的开源堡垒机或者说跳板机,在日常服务器运维中会经常用到。

官网:www.jumpserver.org

GitHub地址:github.com/jumpserver/jumpserver

二、跳板机、堡垒机是什么

跳板机

跳板机是一台机器!

跳板机也叫前置机,是一台可以访问的服务器,再通过这台服务器去访问别的机器。跳板机可以是Linux系统,也可以是Windows系统。

跳板机示意图

JumpServer docker部署及使用_堡垒机


用到跳板机的场景通常是由于网络原因,服务器无法连接,所以提供一台可以连接的服务器,而这台服务器可以连接服务器,这样,这台服务器就承担了一个跳板的角色。

堡垒机

堡垒机不仅仅是一台机器!

运维堡垒主机是种具备强大防御功能和安全审计功能的服务器。基于跳板机理念,作为内外网络的个安全审计监测点,以达到把所有网站安全问题集中到某台服务器上解决,从而省时省力。同时运维堡垒主机还具备了,对运维人员的远程登录进行集中管理的功能作用。

堡垒机示意图

JumpServer docker部署及使用_堡垒机_02

堡垒机:也叫做运维安全审计系统,它的核心功能是 4A:

  • 身份验证 Authentication
  • 账号管理 Account
  • 授权控制 Authorization
  • 安全审计 Audit

简单来说,堡垒机是用来控制哪些人可以登录哪些资源,以及录像记录登录资源后做了什么事情。

三、JumpServer介绍

JumpServer堡垒机帮助企业以更安全的方式管控和登录各种类型的资产。

JumpServer docker部署及使用_mysql_03

功能

JumpServer 是广受欢迎的开源堡垒机,是符合 4A 规范的专业运维安全审计系统。

JumpServer 堡垒机帮助企业以更安全的方式管控和登录各种类型的资产,包括:

  • SSH: Linux / Unix / 网络设备 等;
  • Windows: Web 方式连接 / 原生 RDP 连接;
  • 数据库: MySQL / MariaDB / PostgreSQL / Oracle / SQLServer / ClickHouse 等;
  • NoSQL: Redis / MongoDB 等;
  • GPT: ChatGPT 等;
  • 云服务: Kubernetes / VMware vSphere 等;
  • Web 站点: 各类系统的 Web 管理后台;
  • 应用: 通过 Remote App 连接各类应用。

当然,我接触JumpServer还是因为它可以管理众多的服务器(不管是阿里云、腾讯云的ECS还是本地虚拟化的KVM虚拟机),能够使得公司内部能有效协作、规范管理,能够有效管理服务器资源,尤其是在业务、人员权限变动比较大的团体效果尤为明显。

优势

JumpServer 堡垒机支持事前授权、事中监察、事后审计,满足等保合规要求,符合 4A 规范的堡垒机:

  • 身份验证 / Authentication:防止身份冒用和复用
  • 授权控制 / Authorization:防止内部误操作和权限滥用
  • 账号管理 / Accounting:人员和资产的管理
  • 安全审计 / Auditing:追溯的保障和事故分析的依据

尤其是随着等保、密评等政府信息化项目的要求,堡垒机的需求也日渐凸显,除了企业自身需求,也会有一些项目等保密评要求使用堡垒机。

四、安装

环境介绍

操作系统

配置

ip地址

主机名

安装软件

centos 7.6

2核4g

192.168.200.134

jumpserver

docker

centos 7.6

1核2g

192.168.200.135

node-1


centos 7.6

1核2g

192.168.200.136

node-2


mysql

使用docker方式安装

注意:密码不要设置123456这种简单的密码

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

创建jumpserver数据库

注意:密码不要设置123456这种简单的密码,否则会导致jumpserver无法写入数据!提示无法连接mysql

#进入mysql容器
docker exec -it mysql /bin/bash
#连接数据库
mysql -u root -padmin@666
mysql> create database jumpserver default charset 'utf8mb4';mysql> grant all on jumpserver.* to 'jumpserver'@'%' identified by 'admin@666';mysql> flush privileges;mysql> exit;# exit

redis

使用docker方式安装

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

jumpserver

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

这里使用最新版本

mkdir -p /data/jumpserver

docker run -d --name jumpserver -h jumpserver --restart=always \
   -v /data/jumpserver:/opt/jumpserver/data/media \
   -p 80:80 \
   -p 2222:2222 \
   -e SECRET_KEY=$SECRET_KEY \
   -e BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN \
   -e DB_HOST=192.168.200.134 \
   -e DB_PORT=3306 \
   -e DB_USER=jumpserver \
   -e DB_PASSWORD="admin@666" \
   -e DB_NAME=jumpserver \
   -e REDIS_HOST=192.168.200.134 \
   -e REDIS_PORT=6379 \
   -e REDIS_PASSWORD="123456" \
jumpserver/jms_all:latest

参数解释:

-h 指定docker主机名

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

# 查看jumpserver启动日志docker logs -f jumpserver# 进入容器命令docker exec -it jumpserver /bin/bash

访问网页

http://192.168.200.134/

用户名:admin 密码:admin

JumpServer docker部署及使用_堡垒机_04

JumpServer docker部署及使用_服务器_05

五、 使用展示

控制台

JumpServer docker部署及使用_mysql_06

JumpServer docker部署及使用_服务器_07


工作台

JumpServer docker部署及使用_服务器_08

JumpServer docker部署及使用_服务器_09


审计台

JumpServer docker部署及使用_堡垒机_10

总结

个人使用经验,JumpServer很适合有内部服务器或者云服务器众多,后端、运维较多,有一定管理需求的企业,能够通过JumpServer将服务器有效的管理起来,同时能够避免因为密码泄露造成分风险

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: Docker