jumpserver 部署

发布于 2021-08-17  39 次阅读


通常jumpserver都不会放在互联网;它主要用作运维、开发、以及测试相关人员来利用它连接公司内网服务器,从而实现集中管理公司内网服务器;同时jumpserver还具有权限管理,用户管理,以及监控回放等等功能。

1、Jumpserver简单介绍

Jumpserver 是全球首款完全开源的堡垒机,使用 GNU GPL v2.0 开源协议,是符合 4A 的专业运维审计系统。Jumpserver 使用 Python / Django 进行开发,遵循 Web 2.0 规范,配备了业界领先的 Web Terminal 解决方案,交互界面美观、用户体验好。

Jumpserver 采纳分布式架构,支持多机房跨区域部署,中心节点提供 API,各机房部署登录节点,可横向扩展、无并发访问限制。

2、架构图如下

3、组件说明

  • Jumpserver
    现指 Jumpserver 管理后台,是核心组件(Core), 使用 Django Class Based View 风格开发,支持 Restful API。
  • Coco
    实现了 SSH Server 和 Web Terminal Server 的组件,提供 SSH 和 WebSocket 接口, 使用 Paramiko 和 Flask 开发。
  • Luna
    现在是 Web Terminal 前端,计划前端页面都由该项目提供,Jumpserver 只提供 API,不再负责后台渲染html等。
  • Guacamole
    Apache 跳板机项目,Jumpserver 使用其组件实现 RDP 功能,Jumpserver 并没有修改其代码而是添加了额外的插件,支持 Jumpserver 调用。
  • Jumpserver-Python-SDK
    Jumpserver API Python SDK,Coco 目前使用该 SDK 与 Jumpserver API 交互。

参考文章:http://docs.jumpserver.org/zh..._instruction.html

4、安装环境准备

系统环境说明

[root@test ~]# cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core) 
[root@test ~]# uname -r
3.10.0-693.el7.x86_64
[root@test ~]# ip add|grep 192.168.22    
inet 192.168.22.175/24 brd 192.168.22.255 scope global ens32

关闭防火墙与selinux

[root@test ~]# systemctl stop firewalld
[root@test ~]# systemctl disable firewalld
[root@test ~]# sed -i "s#SELINUX=enforcing#SELINUX=disabled#g" /etc/selinux/config
[root@master ~]# grep "SELINUX=" /etc/selinux/config 
# SELINUX= can take one of these three values:
SELINUX=disabled
[root@test ~]# reboot

准备 Python3 和 Python 虚拟环境

安装依赖包

[root@test ~]# yum -y install wget sqlite-devel xz gcc automake zlib-devel openssl-devel epel-release git

编译安装python

[root@test ~]# wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz
[root@test ~]# tar xf Python-3.6.1.tar.xz
[root@test ~]# cd Python-3.6.1
[root@test Python-3.6.1]# ./configure
[root@test Python-3.6.1]# echo $?
0
[root@test Python-3.6.1]# make && make install
-------------------过程部分省略
fi
Collecting setuptools
Collecting pip
Installing collected packages: setuptools, pip
Successfully installed pip-9.0.1 setuptools-28.8.0
[root@test Python-3.6.1]# echo $?
0

建立 Python 虚拟环境

因为 CentOS 6/7 自带的是 Python2,而 Yum 等工具依赖原来的 Python,为了不扰乱原来的环境我们来使用 Python 虚拟环境

[root@test Python-3.6.1]# cd /opt/
[root@test opt]# python3 -m  venv py3
[root@test opt]# source /opt/py3/bin/activate(py3) [root@test opt]#
# 看到上面的提示符代表成功,以后运行 Jumpserver 都要先运行以上 source 命令,以下所有命令均在该虚拟环境中运行(py3) 
[root@localhost py3]

5、安装jumpserver