1.什么是跳板机

跳板机就是一台服务器,具备公网和内网,我们的开发人员或者运维人员,要想维护内部集群服务时,需要先统一登陆到跳板机这台服务器,然后在通过跳板机的内网登陆目标集群服务器

JumpServer(堡垒机)开源版本图文详解 - 图1

2.跳板机的缺陷

没有实现对运维人员操作行为的控制和审计,使用跳板机的过程中还是会出现误操作,违规i操作导致故障,一旦出现操作事故很难快速定位到原因和责任人;此时堡垒机就诞生了。

3.什么是堡垒机

堡垒机其实是基于跳板机基础之上,能够实现运维更加安全的操作目标集群服务器,提供安全保证。

  • 1 资产集中管理(统一管理)
  • 2 审计,记录,视频回放操作记录
  • 3 限制如rm,dd等危险命令的执行
  • 4 限制登陆目标服务器的身份权限

4.为什么要使用堡垒机

首先,堡垒机提供了运维安全审计的4A规范:
Authentication:身份鉴别,防止身份冒用和复用
Authorization :授权控制,防止内部误操作和权限滥用
Accouting:账号管理,人员和资产的管理
Auditing:安全审计,追溯和分析事故的依据
其次,堡垒机的建设目标可以概况为5W,主要是为了减低运维风险。
what 审计:你做了什么?
which 授权:你能做哪些?
where 账号:你要去那?
who 认证 你是谁?
when 来源:访问时间?
总结
堡垒机能让运维更安全,更加便捷的登陆目标资产服务
堡垒机还可以帮助企业快速构建“身份鉴别,访问控制,安全审计”,助力企业满足新等保要求。什么是等保?

所有企业都需要使用堡垒机。因为堡垒机是企业进行“资产管理,运维安全审计”的重要组件。

JumpServer(堡垒机)开源版本图文详解 - 图2

5.什么是Jumpserver

JumpServer 是全球首款完全开源的堡垒机, 使用 GNU GPL v2.0 开源协议, 是符合 4A 的专业运维审计系统。
JumpServer 使用 Python / Django 进行开发, 遵循 Web 2.0 规范, 配备了业界领先的 Web Terminal 解决方案, 交互界面美观、用户体验好。
JumpServer 采纳分布式架构, 支持多机房跨区域部署, 中心节点提供 API, 各机房部署登录节点, 可横向扩展、无并发访问限制。
JumpServer 现已支持管理 SSH、 Telnet、 RDP、 VNC 协议资产。

Jumpserver主要组件

Jumpserver:提供管理后台,管理员可以通过web页面进行资产管理,用户管理和资产授权等操作。
koko:提供SSH server和web Termianal server方式登陆资产
Lina Luna:提供web前端页面,后续会将整合到Lina中
Guacamole:提供RDP功能,用户可通过该方式登陆windows资产。(暂时只能通过 web Terminal来访问)

Jumpserver特色优势

  • 开源: 零门槛,线上快速获取和安装;
  • 分布式: 轻松支持大规模并发访问;
  • 无插件: 仅需浏览器,极致的 Web Terminal 使用体验;
  • 多云支持: 一套系统,同时管理不同云上面的资产;
  • 云端存储: 审计录像云端存储,永不丢失;
  • 多租户: 一套系统,多个子公司和部门同时使用。

Jumpserver基础架构图

JumpServer(堡垒机)开源版本图文详解 - 图3

Jumpserver作用
1 产品解耦程度高,便于后期分布式部署与横向扩展
2 集中统一管理全国各地服务器

2.1 核心组件部署jumpserver

① 安装 Python3.6 MySQL Redis

  1. [root@jumpserver ~]
  2. [root@jumpserver ~]
  3. [root@jumpserver ~]

② 设定数据库密码,然后创建对应的jumpserver库

  1. [root@jumpserver ~]
  2. [root@jumpserver ~]
  3. MariaDB [(none)]> create database jumpserver default charset 'utf8' collate 'utf8_bin';
  4. MariaDB [(none)]>

③ 创建 Python 虚拟环境,并且载入 Python 虚拟环境

  1. [root@jumpserver ~]
  2. [root@jumpserver ~]
  3. (py3) [root@jumpserver ~]

④ 安装jumpserver核心软件包

我这里采用的是本地方式进行软件包的上传
JumpServer(堡垒机)开源版本图文详解 - 图4

  1. (py3) [root@jumpserver ~]
  2. (py3) [root@jumpserver opt]
  3. (py3) [root@jumpserver opt]

⑤ 安装jumpser编译环境依赖

  1. cd /opt/jumpserver/requirements
  2. yum install -y $(cat rpm_requirements.txt)
  3. pip install wheel -i https://mirrors.aliyun.com/pypi/simple/
  4. pip install --upgrade pip setuptools -i https://mirrors.aliyun.com/pypi/simple/
  5. pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/

⑥修改配置文件

  1. cd /opt/jumpserver && \
  2. cp config_example.yml config.yml && \
  3. vi config.yml

⑦在配置文件中需要填写随即加密密钥(SECRET_KEY: 与BOOTSTRAP_TOKEN:),我们用命令生成

  1. if [ ! "$SECRET_KEY" ]; then
  2. SECRET_KEY=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 50`;
  3. echo "SECRET_KEY=$SECRET_KEY" >> ~/.bashrc;
  4. echo $SECRET_KEY;
  5. else
  6. echo $SECRET_KEY;
  7. fi
  8. if [ ! "$BOOTSTRAP_TOKEN" ]; then
  9. BOOTSTRAP_TOKEN=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16`;
  10. echo "BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN" >> ~/.bashrc;
  11. echo $BOOTSTRAP_TOKEN;
  12. else
  13. echo $BOOTSTRAP_TOKEN;
  14. fi

查看生成的随机加密密钥

  1. cat ~/.bashrc

JumpServer(堡垒机)开源版本图文详解 - 图5

参考官方模板(记得修改配置文件的每行要顶头)

  1. `SECRET_KEY: sa1SzAAij0xGm6q35bWpiG5dwV966cryK2Ui2oeuHGQiYfJQkF
  2. BOOTSTRAP_TOKEN: SAkuJ9ICSTGey5p8
  3. DEBUG: false
  4. LOG_LEVEL: ERROR
  5. SESSION_EXPIRE_AT_BROWSER_CLOSE: true
  6. DB_ENGINE: mysql
  7. DB_HOST: 127.0.0.1
  8. DB_PORT: 3306
  9. DB_USER: root
  10. DB_PASSWORD: boy123.com
  11. DB_NAME: jumpserver
  12. HTTP_BIND_HOST: 0.0.0.0
  13. HTTP_LISTEN_PORT: 8080
  14. WS_LISTEN_PORT: 8070
  15. REDIS_HOST: 127.0.0.1
  16. REDIS_PORT: 6379
  17. REDIS_PASSWORD: ZhYnLrodpmPncovxJTnRyiBs
  18. WINDOWS_SKIP_ALL_MANUAL_PASSWORD: True`
  19. ![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)

我们需要修改的几个地方被红框框起来
JumpServer(堡垒机)开源版本图文详解 - 图6

JumpServer(堡垒机)开源版本图文详解 - 图7

JumpServer(堡垒机)开源版本图文详解 - 图8

⑧ 启动jumpserver核心组件

首先要确保已经加载p3虚拟环境

source /opt/py3/bin/activate

其次前台运行查看,检查是否报错

cd /opt/jumpserver
./jms start

最后没有报错,运行在后台

./jms start -d

2.2 核心组件部署koko

我这里采用的是本地方式进行软件包的上传
JumpServer(堡垒机)开源版本图文详解 - 图9

①上传koko压缩包对koko组件进行初始化

(py3) [root@jumpserver opt]
(py3) [root@jumpserver opt]
(py3) [root@jumpserver opt]
(py3) [root@jumpserver opt]
(py3) [root@jumpserver koko]

②修改koko组件的配置文件

(py3) [root@jumpserver koko]

参考官方模板(记得修改配置文件的每行要顶头)





CORE_HOST: http://127.0.0.1:8080



BOOTSTRAP_TOKEN: zxffNymGjP79j6BN


















LOG_LEVEL: ERROR
































SHARE_ROOM_TYPE: redis


REDIS_HOST: 127.0.0.1
REDIS_PORT: 6379

我们需要修改的几个地方被红框框起来
JumpServer(堡垒机)开源版本图文详解 - 图10

JumpServer(堡垒机)开源版本图文详解 - 图11

JumpServer(堡垒机)开源版本图文详解 - 图12

启动核心组件koko

首先启动,检查是否有报错

./koko

JumpServer(堡垒机)开源版本图文详解 - 图13

其次把koko组件放入后台运行

./koko -d

最后检查端口是否启动会有一5000 和2222两个端口

netstat -lntp

JumpServer(堡垒机)开源版本图文详解 - 图14

2.3 前端组件部署lina,luna

我这里采用的是本地方式进行软件包的上传

JumpServer(堡垒机)开源版本图文详解 - 图15

JumpServer(堡垒机)开源版本图文详解 - 图16

① 下载 Lina 组件(/opt 下)

(py3) [root@jumpserver opt]
(py3) [root@jumpserver opt]
(py3) [root@jumpserver opt]

② 下载 Luna 组件(/opt 下)

(py3) [root@jumpserver opt]
(py3) [root@jumpserver opt]
(py3) [root@jumpserver opt]

③ 配置 Nginx 整合各组件

(py3) [root@jumpserver opt]

参考官方模板(我添加了server_name jumpserver.etiantian.org;域名解析)

`(py3) [root@jumpserver opt]
server {
    listen 80;
    client_max_body_size 100m;  
    server_name jumpserver.etiantian.org;

    location /ui/ {
        try_files $uri / /index.html;
        alias /opt/lina/;
    }

    location /luna/ {
        try_files $uri / /index.html;
        alias /opt/luna/;  
    }

    location /media/ {
        add_header Content-Encoding gzip;
        root /opt/jumpserver/data/;  
    }

    location /static/ {
        root /opt/jumpserver/data/;  
    }

    location /koko/ {
        proxy_pass       http://localhost:5000;
        proxy_buffering off;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        access_log off;
    }

    location /guacamole/ {
        proxy_pass       http://localhost:8081/;
        proxy_buffering off;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $http_connection;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        access_log off;
    }

    location /ws/ {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://localhost:8070;
        proxy_http_version 1.1;
        proxy_buffering off;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

    location /api/ {
        proxy_pass http://localhost:8080;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    location /core/ {
        proxy_pass http://localhost:8080;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    location / {
        rewrite ^/(.*)$ /ui/$1 last;
    }
}

(py3) [root@jumpserver opt]
(py3) [root@jumpserver opt]` 

![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)

2.4 配置本地dns劫持,登陆JumpServer进行管理

JumpServer(堡垒机)开源版本图文详解 - 图17

JumpServer(堡垒机)开源版本图文详解 - 图18

默认用户密码都是admin
JumpServer(堡垒机)开源版本图文详解 - 图19

密码太简单需要重新修改登陆admin用户密码
JumpServer(堡垒机)开源版本图文详解 - 图20

JumpServer(堡垒机)开源版本图文详解 - 图21

最后登陆到管理界面
JumpServer(堡垒机)开源版本图文详解 - 图22

普通用户: 登录Jumpserver的web页面 的用户 , 运维 开发
系统用户: 是 JumpServer 跳转登录资产时使用的用户[ansible 自动推送,不支持交换机]
管理用户: 管理用户是被控服务器上的 root, JumpServer使用该用户来 推送系统用户、获取资产硬件信息等 [先免密]

JumpServer(堡垒机)开源版本图文详解 - 图23

3.1 创建普通用户

①添加用户组

创建一个开发组和运维组
JumpServer(堡垒机)开源版本图文详解 - 图24

JumpServer(堡垒机)开源版本图文详解 - 图25

JumpServer(堡垒机)开源版本图文详解 - 图26

JumpServer(堡垒机)开源版本图文详解 - 图27

JumpServer(堡垒机)开源版本图文详解 - 图28

②添加用户

创建一个oldboy和一个oldgirl普通用户
JumpServer(堡垒机)开源版本图文详解 - 图29

JumpServer(堡垒机)开源版本图文详解 - 图30

JumpServer(堡垒机)开源版本图文详解 - 图31

JumpServer(堡垒机)开源版本图文详解 - 图32

③ 创建的普通用户使用测试

普通用户就是登陆网页jumpserver的登陆用户,所以我们重新登陆发现和用管理员登陆界面是有区别的。
我们用创建的普通用户oldboy登陆一下
JumpServer(堡垒机)开源版本图文详解 - 图33

发现左边的项目栏是有区别的,第一次登陆需要填写个人信息,然后选择我同意,就可以使用了。
JumpServer(堡垒机)开源版本图文详解 - 图34

JumpServer(堡垒机)开源版本图文详解 - 图35

普通用户管理资产两种页面
1.web页面
JumpServer(堡垒机)开源版本图文详解 - 图36

2.终端页面

ssh oldboy@10.0.0.200 2222

JumpServer(堡垒机)开源版本图文详解 - 图37

3.2 创建管理用户

① jumpserver ———> 被控端主机进行免密登录实现跳板机功能

ssh-keygen

JumpServer(堡垒机)开源版本图文详解 - 图38

会生成一对密钥对,一个公钥(id_rsa.pub)一个私钥(id_rsa)
JumpServer(堡垒机)开源版本图文详解 - 图39

推送公钥到被控制端,实现免密登陆

ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.1.7
ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.1.8
ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.1.51

②创建管理用户

JumpServer(堡垒机)开源版本图文详解 - 图40

JumpServer(堡垒机)开源版本图文详解 - 图41

下载私钥: [root@jumpserver ~]# sz ~/.ssh/id_rsa —> 上传root用户私钥到页面

3.3 创建系统用户

JumpServer(堡垒机)开源版本图文详解 - 图42

JumpServer(堡垒机)开源版本图文详解 - 图43

JumpServer(堡垒机)开源版本图文详解 - 图44

对系统用户进行提权

JumpServer(堡垒机)开源版本图文详解 - 图45

JumpServer(堡垒机)开源版本图文详解 - 图46

4.1 规划资产树

JumpServer(堡垒机)开源版本图文详解 - 图47

根据公司需求进行划分
我们可以根据地域,区域,部门,进行划分
我们根据地域划分出上海机房,北京机房
我们根据区域在北京机房中划分昌平机房,海淀机房
我们还可以根据部门在海淀机房划分运维,开发等部门
JumpServer(堡垒机)开源版本图文详解 - 图48

JumpServer(堡垒机)开源版本图文详解 - 图49

4.2 添加资产

JumpServer(堡垒机)开源版本图文详解 - 图50

加入资产web01
JumpServer(堡垒机)开源版本图文详解 - 图51

加入资产web02
JumpServer(堡垒机)开源版本图文详解 - 图52

加入资产db01
JumpServer(堡垒机)开源版本图文详解 - 图53

4.3 授权资产

JumpServer(堡垒机)开源版本图文详解 - 图54

我们对用户组进行资产的授权
我们运维组授权可以管理北京机房和上海机房的资产(172.16.1.7/8/51)
我们开发组授权可以管理上海机房的资产(172.16.1.51)

JumpServer(堡垒机)开源版本图文详解 - 图55

我们运维组授权可以管理北京机房和上海机房的资产(172.16.1.7/8/51)
JumpServer(堡垒机)开源版本图文详解 - 图56

我们开发组授权可以管理上海机房的资产(172.16.1.51)
JumpServer(堡垒机)开源版本图文详解 - 图57

JumpServer(堡垒机)开源版本图文详解 - 图58

4.4 验证阶段

JumpServer(堡垒机)开源版本图文详解 - 图59

我们用普通用户oldgirl登陆jumpserver页面,oldgril隶属于运维组,所以可以对运维组授权的资产进行管理(3台节点)
JumpServer(堡垒机)开源版本图文详解 - 图60

JumpServer(堡垒机)开源版本图文详解 - 图61

我们可以选择web终端进行对每台节点的管理(免密登陆)
JumpServer(堡垒机)开源版本图文详解 - 图62

我们用普通用户oldboyl登陆jumpserver页面,oldboy隶属于开发组,所以可以对开发组授权的资产进行管理(1台节点)
JumpServer(堡垒机)开源版本图文详解 - 图63

4.5 新创建一个权限比cry高的系统用户

① 其实就是再创建一个系统用户kenneth

JumpServer(堡垒机)开源版本图文详解 - 图64

JumpServer(堡垒机)开源版本图文详解 - 图65

② 对新创建的kenneth系统用户进行资产授权

JumpServer(堡垒机)开源版本图文详解 - 图66

JumpServer(堡垒机)开源版本图文详解 - 图67

JumpServer(堡垒机)开源版本图文详解 - 图68

③ 进行手动的推送系统用户信息到资产中(底层用ansible推送)

JumpServer(堡垒机)开源版本图文详解 - 图69

JumpServer(堡垒机)开源版本图文详解 - 图70

JumpServer(堡垒机)开源版本图文详解 - 图71

④当我再去登陆资产时就会出现选择用那一个系统用户登录

JumpServer(堡垒机)开源版本图文详解 - 图72

4.6 加入数据库资产

①我们先创建一个dba组和dba普通用户隶属与dba组

密码123456
JumpServer(堡垒机)开源版本图文详解 - 图73

② 创建数据库应用

JumpServer(堡垒机)开源版本图文详解 - 图74

JumpServer(堡垒机)开源版本图文详解 - 图75

JumpServer(堡垒机)开源版本图文详解 - 图76

③ 创建一个登陆数据库的系统用户(走的是mysql协议)

JumpServer(堡垒机)开源版本图文详解 - 图77

④ 对数据库进行资产授权

JumpServer(堡垒机)开源版本图文详解 - 图78

JumpServer(堡垒机)开源版本图文详解 - 图79

⑤ 登陆数据库资产(通过我们创建的dba普通用户)

JumpServer(堡垒机)开源版本图文详解 - 图80

JumpServer(堡垒机)开源版本图文详解 - 图81

⑥ 我们在对资产进行的任何操作都会记录下来,可以回放视频,可以中止,可以在线监控

JumpServer(堡垒机)开源版本图文详解 - 图82

JumpServer(堡垒机)开源版本图文详解 - 图83

我们现在假设不让使用rm命令,怎么操作呢?
JumpServer(堡垒机)开源版本图文详解 - 图84

5.1 创建一个命令过滤器名称

JumpServer(堡垒机)开源版本图文详解 - 图85

5.2 添加命令过滤器不允许的操作

JumpServer(堡垒机)开源版本图文详解 - 图86

JumpServer(堡垒机)开源版本图文详解 - 图87

JumpServer(堡垒机)开源版本图文详解 - 图88

5.3 绑定系统用户进行限制操作

JumpServer(堡垒机)开源版本图文详解 - 图89

测试操作,通过cry系统用户登录资产后能否使用rm命令

JumpServer(堡垒机)开源版本图文详解 - 图90

JumpServer(堡垒机)开源版本图文详解 - 图91

JumpServer(堡垒机)开源版本图文详解 - 图92

6.1 上传文件操作过程

①我使用系统用户cry登陆到资产,选中默认进行上传文件

JumpServer(堡垒机)开源版本图文详解 - 图93

JumpServer(堡垒机)开源版本图文详解 - 图94

②发现上传的文件,在/tmp下 ,而且这个文件的所属主和所属组都是我们上传者cry

JumpServer(堡垒机)开源版本图文详解 - 图95

6.2 下载文件操作过程

①我在/tmp下面创建一个名称为2.txt的文件

JumpServer(堡垒机)开源版本图文详解 - 图96

②我们在web页面终端可以进行对文件下载

JumpServer(堡垒机)开源版本图文详解 - 图97
JumpServer(堡垒机)开源版本图文详解 - 图98

JumpServer(堡垒机)开源版本图文详解 - 图99

6.3 为什么默认上传下载的目录是/tmp?

是因为我们的koko组件的配置文件中这样规定的,如下图所示
JumpServer(堡垒机)开源版本图文详解 - 图100

在用户名密码登陆的方式上再进行一次认证,来达到登陆安全性的提高

启用多因子认证两种方式

一.在创建普通用户时选中多因子认证强制启动

创建普通用户也就是登陆Jumpserver页面的用户

JumpServer(堡垒机)开源版本图文详解 - 图101

②登陆测试

我们进入登陆界面,登陆我们刚创建出来的scry普通用户,这里的密码是创建用户设置的密码 123456
JumpServer(堡垒机)开源版本图文详解 - 图102

接下来因为我们开启多因子认证,所以开始开启多因子认证进行初始化的操作 输入我们普通用户登陆密码123456
JumpServer(堡垒机)开源版本图文详解 - 图103

然后会发生跳转,会让你使用第三方手机端的一个认证app,从而生成动态密码
JumpServer(堡垒机)开源版本图文详解 - 图104

我用手机下载软件
JumpServer(堡垒机)开源版本图文详解 - 图105

JumpServer(堡垒机)开源版本图文详解 - 图106

我们用手机这个软件扫描下面的二维码就会生成动态的验证码
JumpServer(堡垒机)开源版本图文详解 - 图107

JumpServer(堡垒机)开源版本图文详解 - 图108

完成初始化设置后我们通过输入手机上的动态认证码和用户密码才可以登陆进去
JumpServer(堡垒机)开源版本图文详解 - 图109

JumpServer(堡垒机)开源版本图文详解 - 图110

二.全局启动多因子认证

JumpServer(堡垒机)开源版本图文详解 - 图111

8.1 什么是混合云?

混合云融合了公有云和私有云,是近年来云计算的主要模式和发展方向。我们已经知道私有云主要是面向企业用户,出于安全考虑,企业更愿意将数据存放在私有云中,但是同时又希望可以获得公有云的计算资源,在这种情况下混合云被越来越多的采用,它将公有云和私有云进行混合和匹配,以获得最佳的效果,这种个性化的解决方案,达到了既省钱又安全的目的。

8.2 混合云生产环境部署JumpServer网域功能原理图

JumpServer(堡垒机)开源版本图文详解 - 图112

8.3 混合云生产环境部署JumpServer网域功能实现思路

1.jumpserver与网域网管服务器进行免密
2.网域网关服务器与云主机进行免密
3.填写一个网域,然后添加网管服务器
3.1填写公网IP。
3.2登陆网域服务器使用的是管理云主机的管理用户root,需要使用jumpserver的私钥验证。
4.新添加一个管理用户,用来管理云主机 配置的是网域服务器的私钥验证
5.分配整合云主机资产

8.4 混合云生产环境部署JumpServer网域功能实践操作步骤

① 买三台没有公网的阿里云云主机

JumpServer(堡垒机)开源版本图文详解 - 图113

JumpServer(堡垒机)开源版本图文详解 - 图114

JumpServer(堡垒机)开源版本图文详解 - 图115

JumpServer(堡垒机)开源版本图文详解 - 图116

JumpServer(堡垒机)开源版本图文详解 - 图117

② 购买一个公网弹性ip

JumpServer(堡垒机)开源版本图文详解 - 图118

JumpServer(堡垒机)开源版本图文详解 - 图119

JumpServer(堡垒机)开源版本图文详解 - 图120

③ 公网ip绑定一台云主机(ecs)上作为我们的网域服务器

JumpServer(堡垒机)开源版本图文详解 - 图121

JumpServer(堡垒机)开源版本图文详解 - 图122

JumpServer(堡垒机)开源版本图文详解 - 图123

三台云主机都在同一网段我们公网ip绑定一台作为网域服务器,用拥有公网ip的云主机充当网域服务器连接其他两台云主机

④ 使jumpserver与网域服务器建立免密连接

把jumpserver的公钥推送给网域服务器

ssh-copy-id -i ~/.ssh/id_rsa.pub root@39.98.161.147(公网ip)

JumpServer(堡垒机)开源版本图文详解 - 图124

JumpServer(堡垒机)开源版本图文详解 - 图125

⑤ 登陆网域服务器与两台云主机建立免密关系

1> 生产密钥对

ssh-keygen

JumpServer(堡垒机)开源版本图文详解 - 图126

2> 推送网域服务器公钥给两台云主机

ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.1.238(云主机内网IP)
ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.1.237(云主机内网IP)

JumpServer(堡垒机)开源版本图文详解 - 图127

3> 测试网域服务是否能够免密登陆两台云主机

JumpServer(堡垒机)开源版本图文详解 - 图128

⑥ 创建网域列表,进行网关配置(配置的是jumpserver到网域服务器之间的连接)

1> 创建网域列表 阿里云-张家口节点

JumpServer(堡垒机)开源版本图文详解 - 图129

JumpServer(堡垒机)开源版本图文详解 - 图130

2> 进行网关配置

JumpServer(堡垒机)开源版本图文详解 - 图131

我们jumpserver到网域服务器之间进行免密
我们推送了在jumpserver生产的一对密钥对的公钥给网域服务器
所以这里连接网域服务器使用的是jumpserver的私钥,来进行非对称性认证。

JumpServer(堡垒机)开源版本图文详解 - 图132

⑦ 添加一个管理云主机资产的管理用户root

JumpServer(堡垒机)开源版本图文详解 - 图133

我们的管理用户root管理云主机资产,通过网域服务器连接到公有云内部云主机中
我们网域服务器到云主机之间进行免密
我们推送了网域服务器生产的一对密钥对的公钥给网域服务器
所以这里填写的密钥是网域服务器生产的私钥,来进行非对称性认证。

1> 获得网域服务器的私钥,我们把它下载到本地

yum -y install lrzsz 
sz ~/.ssh/id_rsa

JumpServer(堡垒机)开源版本图文详解 - 图134

2> 添加配置管理云主机的管理用户root

JumpServer(堡垒机)开源版本图文详解 - 图135

JumpServer(堡垒机)开源版本图文详解 - 图136

⑧ 添加云主机资产

1> 创建阿里云节点的资产树

JumpServer(堡垒机)开源版本图文详解 - 图137

2> 在阿里云下添加两台云主机节点资产

aly01

JumpServer(堡垒机)开源版本图文详解 - 图138

aly02

JumpServer(堡垒机)开源版本图文详解 - 图139

JumpServer(堡垒机)开源版本图文详解 - 图140

⑨ 把云主机资产授权给用户组(运维组)

JumpServer(堡垒机)开源版本图文详解 - 图141

JumpServer(堡垒机)开源版本图文详解 - 图142

⑩ 测试

1> 我们使用隶属于运维组的oldgirl进行jumpserver页面登陆

JumpServer(堡垒机)开源版本图文详解 - 图143

JumpServer(堡垒机)开源版本图文详解 - 图144

2> web终端访问阿里云主机,可以访问成功

JumpServer(堡垒机)开源版本图文详解 - 图145

9.1安全升级

操作系统∶尽量升级到符合要求的新版本。
Jumpserver:请保持使用最新版本的Jumpserver依赖软件∶建议升级
Jumpserver依赖的软件版本

9.2 使用安全组件

使用系统防火墙Firewall:端口转发
关闭密码登陆 建议: 用户—> vpn —> 内网

9.3优化系统架构

传统架构︰用户–>Jumpserver–>目标资产
新型架构︰用户–>防火墙(规则限制)–>Jumpserver–>目标资产

9.4 配置HTTPS方式