A. jumpserver概述

跳板机概述:

跳板机就是一台服务器,开发或运维人员在维护过程中首先要统一登录到这台服务器,然后再登录到目标设备进行维护和操作;

跳板机缺点:没有实现对运维人员操作行为的控制和审计,使用跳板机的过程中还是会出现误操作、违规操作导致的事故,一旦出现操作事故很难快速定位到原因和责任人;

堡垒机概述:

堡垒机,即在一个特定的网络环境下,为了保障网络和数据不受来自外部和内部用户的入侵和破坏,而运用各种技术手段实时收集和监控网络环境中每一个组成部分的系统状态、安全事件、网络活动,以便集中报警、及时处理及审计定责。堡垒机多了实时收集、监控网络环境、集中报警等功能。

Jumpserver概述:

Jumpserver是一款使用Python, Django开发的开源跳板机系统,为互联网企业提供了认证,授权,审计,自动化运维等功能。

官方网址: http://www.jumpserver.org

 jumpserver堡垒机组件说明:

  1. Jumpserver:现指 Jumpserver 管理后台,是核心组件(Core), 使用 Django Class Based View 风格开发,支持 Restful API。

  2. Coco: 实现了 SSH Server 和 Web Terminal Server 的组件,提供 SSH 和 WebSocket 接口, 使用 Paramiko 和 Flask 开发。

  3. Luna: 现在是 Web Terminal 前端,计划前端页面都由该项目提供,Jumpserver 只提供 API,不再负责后台渲染html等。

B.jumpserver运行环境

Jumpserver 环境要求:

  • 硬件配置: 2个CPU核心, 4G 内存, 50G 硬盘(最低)
  • 操作系统: Linux 发行版 x86_64
  • Python = 3.6.x
  • Mysql Server ≥ 5.6
  • Mariadb Server ≥ 5.5.56
  • Redis
 主机名  IP地址 说明 
 tiaobanji  172.16.1.91  jumpserver

  上传依赖的软件到到Linux系统上将文件移动带 /opt/ 下 :【 点击下载

  # 本文离线下载,相关包在网盘里面

  关闭 selinux 和防火墙

  1. [root@tiaobanji /]# setenforce # 可以设置配置文件永久关闭
  2. [root@tiaobanji /]# systemctl stop firewalld.service ; systemctl disable

修改字符集,否则可能报 input/output error的问题,因为日志里打印了中文

  1. [root@tiaobanji /]# localedef -c -f UTF- -i zh_CN zh_CN.UTF-
  2. [root@tiaobanji /]# export LC_ALL=zh_CN.UTF-
  3. [root@tiaobanji /]# echo 'LANG=zh_CN.UTF-8' > /etc/locale.conf
  4. #重新连接,语言环境改变

准备 Python3 和 Python 虚拟环境

  1. 安装依赖包

#安装前,可以开启yum缓存功能,把软件包下载下来,方便后期使用。

  1. [root@tiaobanji /]# vim /etc/yum.conf
  2. 改:keepcache=
  3. 为:keepcache=
  4. [root@tiaobanji ~]# yum -y install wget sqlite-devel xz gcc automake zlib-devel openssl-devel epel-release git

  2. 编译安装python3.6.1

  1. [root@tiaobanji /]# cd /opt
  2. [root@tiaobanji /opt]# mv jumpserver-package/* /opt/
  3. [root@tiaobanji /opt]# tar xvf Python-3.6.1.tar.xz && cd Python-3.6.1
  4. [root@tiaobanji /opt/Python-3.6.1]# ./configure && make -j 4 && make install
  5. #编译安装 # 这里必须执行编译安装,否则在安装 Python 库依赖时会有麻烦...

#在线下载 wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz

互动: python2.7和python3.5冲突了怎么办? 老程序需要使用2.7,新程序需要3.6?

  3. 建立 Python 虚拟环境

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

  1. [root@tiaobanji /]# cd /opt
  2. [root@tiaobanji /]# python3 -m venv py3
  3. [root@tiaobanji /]# source /opt/py3/bin/activate
  4. (py3) [root@tiaobanji /opt]# #切换成功的,前面有一个py3 标识

看到下面的提示符代表成功,以后运行 Jumpserver 都要先运行以上 source 命令,以下所有命令均在该虚拟环境中运行

安装 Jumpserver 1.0.0

  1. 下载或 Clone 项目

项目提交较多 git clone 时较大,你可以选择去 Github 项目页面直接下载zip包。

在线下载方法:git clone --depth=1 https://github.com/jumpserver/jumpserver.git && cd jumpserver && git checkout master

注:depth用于指定克隆深度,为1即表示只克隆最近一次commit

  1. [root@tiaobanji /]# cd /opt/jumpserver/

  2. 安装依赖 RPM 包

  1. [root@tiaobanji /]# cd /opt/jumpserver/requirements
  2. [root@tiaobanji /]# yum -y install $(cat rpm_requirements.txt)

  3. 安装 Python 库依赖

  1. [root@tiaobanji /]# cd /opt/jumpserver/requirements
  2. [root@tiaobanji /]# source /opt/py3/bin/activate
  3. (py3) [root@tiaobanji /opt]# pip -V
  4. pip 9.0. from /opt/py3/lib/python3./site-packages (python 3.6)

  方法1:离线安装:

  1. (py3) [root@tiaobanji /opt]# cd /opt/python-package
  2. (py3) [root@tiaobanji /opt/python-package]# pip install ./*
  3. # python-gssapi-0.6.4.tar.gz 离线安装还是在线安装会有卡顿等待5分钟

  方法二:在线安装

  1. [root@tiaobanji ~]# cd /opt/jumpserver/requirements/
  2. [root@tiaobanji /opt/jumpserver/requirements]# pip install -r requirements.txt

pip 是一个安装和管理 Python 包的工具,相当于yum命令

  4. 安装 Redis, Jumpserver 使用 Redis 做 cache 和 celery broke

  1. [root@tiaobanji /]# yum -y install redis
  2. [root@tiaobanji /]# systemctl enable redis ; systemctl start redis

  5. 安装 MySQL

  1. [root@tiaobanji /]# yum install mariadb mariadb-devel mariadb-server -y
  2. [root@tiaobanji /]# systemctl enable mariadb ; systemctl start mariadb

  6. 建数据库 Jumpserver 并授权

  1. [root@tiaobanji /]# mysql
  2. MariaDB [(none)]> create database jumpserver default charset 'utf8';
  3. MariaDB [(none)]> grant all on jumpserver.* to 'jumpserver'@'127.0.0.1' identified by '';
  1. MariaDB [(none)]> flush privileges;
    MariaDB [(none)]> exit;
  2.  
  3. # delete from mysql.user where user='jumpserver' and host='jumpserver'; 删除表信息

  7. 改 Jumpserver 配置文件

  1. (py3) [root@tiaobanji /opt]# cd /opt/jumpserver
  2. (py3) [root@tiaobanji /opt/jumpserver]# cp config_example.py config.py
  3. (py3) [root@tiaobanji /opt/jumpserver]# vim config.py

修改 DevelopmentConfig 中的配置,因为默认 Jumpserver 使用该配置,它继承自 Config

注意: 配置文件是 Python 格式,不要用 TAB,而要用空格 class DevelopmentConfig(Config):

  1. # MySQL or postgres setting like:
  2. DB_ENGINE = 'mysql'
  3. DB_HOST = '127.0.0.1'
  4. DB_PORT =
  5. DB_USER = 'jumpserver'
  6. DB_PASSWORD = ''
  7. DB_NAME = 'jumpserver'

  8. 成数据库表结构和初始化数据

  1. (py3) [root@tiaobanji /opt]# cd /opt/jumpserver/utils
  2. (py3) [root@tiaobanji /opt/jumpserver/utils]# bash make_migrations.sh
  3.  
  4. ##注,在执行这一条命令之前,必续保障之前的pip install ./* 命令已经执行完了,不然后导入不了Django等软件包。

  9. 运行jumpserver

  1. (py3) [root@tiaobanji /opt]# cd /opt/jumpserver
  2. (py3) [root@tiaobanji /opt/jumpserver]# chmod +x jms
  3. (py3) [root@tiaobanji /opt/jumpserver]# ./jms start all -d
  4.  
  5. (py3) [root@tiaobanji /opt/jumpserver]# ./jms restart all -d #重启
  6. # 后台运行使用 -d 参数
  7. 注: ./jms start all #前台运行
  8. 如果运行失败了,重新启动一下。

最后几行结果:

  1. gunicorn is running:
  2. celery is running:
  3. beat is running:

启动服务的脚本,使用方式./jms start|stop|status|restart all 后台运行请添加 -d 参数

测试:

访问 http://172.16.1.91:8080/ 用户 : admin 密码: admin

这里需要使用8080端口来访问页面。后期搭建 nginx 代理,就可以直接使用80端口正常访问了附上重启的方法

 

C.安装 Coco组件

安装coco组件

  1. 默认点击web终端,弹出:

  Luna是单独部署的一个程序,你需要部署luna,coco,配置nginx做url分发, 如果你看到了这个页面,证明你访问的不是nginx监听的端口,祝你好运

所以接下来,我们安装luna和coco:

coco概述:coco实现了 SSH Server 和 Web Terminal Server 的组件,提供 SSH 和 WebSocket 接口, 使用 Paramiko 和 Flask 开发。

  1. (py3) [root@tiaobanji /opt]# cd /opt/coco #离线安装
  2. (py3) [root@tiaobanji /opt/coco]# source /opt/py3/bin/activate

在线下载代码:git clone https://github.com/jumpserver/coco.git && cd coco && git checkout master

  2. 安装coco的依赖包,主要有rpm和python包

  1. (py3) [root@tiaobanji /opt]# cd /opt/coco/requirements
  2. (py3) [root@tiaobanji /opt/coco/requirements]# yum -y install $(cat rpm_requirements.txt)
  3. (py3) [root@tiaobanji /opt/coco/requirements]# pip install -r requirements.txt
  4. #前面已经离线安装过python的包,这里就很快安装成功了,或提示已经安装成功。
  5.  
  6. 注:扩展: pip download -r requirements.txt #使用download可以下载python包到本地

  3. 查看配置文件并运行

  1. (py3) [root@tiaobanji /opt]# cd /opt/coco
  2. (py3) [root@tiaobanji /opt/coco]# cp conf_example.py conf.py # 如果 coco 与 jumpserver 分开部署,请手动修改 conf.py
  1. (py3) [root@tiaobanji /opt/coco]# chmod +x cocod
  2. (py3) [root@tiaobanji /opt/coco]# ./cocod start -d

新版本更新了运行脚本,使用方式./cocod start|stop|status|restart 后台运行请添加 -d 参数

D.安装Web-Terminal前端-Luna组件-配置Nginx整合各组件

安装luna组件

Luna概述:Luna现在是 Web Terminal 前端,计划前端页面都由该项目提供,Jumpserver 只提供 API,不再负责后台渲染html等。

访问(https://github.com/jumpserver/luna/releases)下载对应版本的 release 包,直接解压,不需要编译

解压 Luna:

  1. (py3) [root@tiaobanji /]# cd /opt
  2. (py3) [root@tiaobanji /opt]# tar xvf luna.tar.gz
  3. (py3) [root@tiaobanji /opt]# ls /opt/luna

在线下载:wget https://github.com/jumpserver/luna/releases/download/v1.0.0/luna.tar.gz

配置 Nginx 整合各组件

  1. vi /etc/yum.repos.d/nginx.repo
  1. [nginx]
  2. name=nginx repo
  3. baseurl=http://nginx.org/packages/centos/7/$basearch/
  4. gpgcheck=
  5. enabled=

安装 Nginx 根据喜好选择安装方式和版本

  1. (py3) [root@tiaobanji /]# yum -y install nginx

修改 /etc/nginx/conf.d/jumpserver.conf

  1. (py3) [root@tiaobanji /]# vim /etc/nginx/nginx.conf

删除第38行到 57行中server {。。。}相关的内容,在vim命令模式,输入38gg,快速跳到38行,然后输入20dd,就可以删除。

删除后,在38行插入以一下内容:

  1. server {
  2. listen ;
  3.  
  4. proxy_set_header X-Real-IP $remote_addr;
  5. proxy_set_header Host $host;
  6. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  7.  
  8. location /luna/ {
  9. try_files $uri / /index.html;
  10. alias /opt/luna/;
  11. }
  12.  
  13. location /media/ {
  14. add_header Content-Encoding gzip;
  15. root /opt/jumpserver/data/;
  16. }
  17.  
  18. location /static/ {
  19. root /opt/jumpserver/data/;
  20. }
  21.  
  22. location /socket.io/ {
  23. proxy_pass http://localhost:5000/socket.io/; # 如果coco安装在别的服务器,请填写它的ip
  24. proxy_buffering off;
  25. proxy_http_version 1.1;
  26. proxy_set_header Upgrade $http_upgrade;
  27. proxy_set_header Connection "upgrade";
  28. }
  29.  
  30. location / {
  31. proxy_pass http://localhost:8080; # 如果jumpserver安装在别的服务器,请填写它的ip
  32. }
  33. }

运行 Nginx

  1. (py3) [root@tiaobanji /]# nginx -t # 检测配置文件
  2. (py3) [root@tiaobanji /]# systemctl start nginx ; systemctl enable nginx
  1. (py3) [root@tiaobanji /opt]# cd /opt/jumpserver 重启jumpserver
  2. (py3) [root@tiaobanji /opt/jumpserver]# ./jms start all -d

接收coco注册

到会话管理-终端管理 接受 Coco的注册。点接受。 

注册:

刷新:

测试连接:

  1. (py3) [root@tiaobanji /]# ssh -p2222 admin@172.16.1.91 #密码: admin 端口port:2222
  2. #不知为何我一直登不上,直接在网页上修改密码

重新连接测试:

  1. (py3) [root@tiaobanji /]# ssh -p2222 admin@172.16.1.91 #密码: nihao123!

E.jumpserver平台系统初始化

系统基本设置

这里要写成自己真实的URL地址,不然后期用户访问不了。http://172.16.1.91

配置邮件发送服务器

点击页面上边的"邮件设置" TAB ,进入邮件设置页面:

SMTP服务器:smtp.163.com #目前qq的邮箱暂时不会设置以为ssl需要开启,不会!

注:自己邮箱要开启smtp和pop3服务。 官网:https://mail.163.com/ 注册账号

开启POP3/SMTP/IMAP服务方法:

请登录163邮箱,点击页面右上角的“设置”—在“高级”下,点“POP3/SMTP/IMAP”,勾选图中两个选项,点击确定。即可开启成功。开通后即可用闪电邮Outlook等软件收发邮件了。

服务器地址:POP3服务器:pop.163.com | SMTP服务器:smtp.163.com | IMAP服务器:imap.163.com

注:配置完后,需要重启一下服务。不然后期创建用户,收不到邮件。

  1. (py3) [root@tiaobanji /]# /opt/jumpserver/jms stop all -d
  2. (py3) [root@tiaobanji /]# /opt/jumpserver/jms start all -d
  3. #一定要在虚拟环境捏启动

注意: 在使用jumpserver过程中,有一步是系统用户推送,要推送成功,client(后端服务器)要满足以下条件: 1. 后端服务器需要有python、sudo环境才能使用推送用户,批量命令等功能 2. 后端服务器如果开启了selinux,请安装libselinux-python。一般情况服务器上都关闭了selinux

jumpserver部署1.0版本的更多相关文章

  1. jumpserver部署0.3版本 =====( ̄▽ ̄*)b

    jumpserver概述 跳板机概述: 跳板机就是一台服务器,开发或运维人员在维护过程中首先要统一登录到这台服务器,然后再登录到目标设备进行维护和操作: 跳板机缺点:没有实现对运维人员操作行为的控制和 ...

  2. drbd.9.0版本部署

    DRBD9.0部署 1) drbd软件安装 软件:drbd-9.0.0.tar.gz . drbd-utils-8.9.5.tar.gz(从8.4.5开始,drbd软件分成了两部分:核心模块和管理工具 ...

  3. 运维监控-基于yum的方式部署 Zabbix Agent 4.0 版本

    运维监控-基于yum的方式部署 Zabbix Agent 4.0 版本 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 上一篇博客我们分享了如何基于yum的方式部署zabbix 4. ...

  4. 运维监控-基于yum的方式部署Zabbix Server 4.0 版本

    运维监控-基于yum的方式部署Zabbix Server 4.0 版本 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.如何选择zabbix版本 1>.打开zabbix官方 ...

  5. 堡垒机环境-jumpserver部署

    1:安装数据库 这里是提前安装,也可以不安装,在安装jumpserver主程序的时候,他会询问你是否安装 yum -y install ncurses-devel cmake echo 'export ...

  6. JumpServer部署与管理

    一.JumpServer 堡垒机概述 JumpServer由Python/Django进行开发.使用GNU GPL v2.0开源协议.也是全球首款完全开源的堡垒机.同时配备了业界领先的Web Term ...

  7. jumpserver部署使用

    一.简介 前面我们聊到了openvpn的部署和使用,它能够实现从互联网通过openvpn连接到公司内网服务器,从而进行远程管理:但openvpn有一个缺点它不能记录哪些用户在内网服务器上操作了什么,拥 ...

  8. Mirantis OpenStack 8.0 版本大概性分析

    作为 OpenStack 领域标杆性企业之一的 Mirantis 在2016年3月初发布了最新的 MOS 8.0 版本.本文试着基于公开资料进行一些归纳分析. 1. 版本概况 1.1 概况 社区版本: ...

  9. RDIFramework.NET平台代码生成器V3.0版本全新发布-更新于20160518(提供下载)

    最新版本请转到:RDIFramework.NET平台代码生成器V3.1版本全新发布-更新于2016-10-08(提供下载) RDIFramework.NET代码生成器V3.0版本修改了针对3.0版本的 ...

随机推荐

  1. 基于 Linux Bridge 的 Neutron 多平面网络实现原理

    目录 文章目录 目录 前言 前文列表 多平面网络 Local(本地网络) Flat(扁平网络) 配置 Flat 网络 VLAN 配置 VLAN 网络 VxLAN 配置 VxLAN 网络 GRE 前言 ...

  2. django 通过模型类操作数据表(基础增删改查)

    进入项目shell的命令: python manage.py shell 以下为在相互shell终端中演示的例子: 首先导入模型类:(from 应用名.models import 类名) from b ...

  3. 转载----c++ static修饰的函数作用与意义

    static修饰的函数叫做静态函数,静态函数有两种,根据其出现的地方来分类: 如果这个静态函数出现在类里,那么它是一个静态成员函数: 静态成员函数的作用在于:调用这个函数不会访问或者修改任何对象(非s ...

  4. Asp.Net Webform 常用代码

    1015.ASP.Net WebForm 数据绑定 < %# %>   < %= %>   < % %>  < %@ %> Eval("Nam ...

  5. 【github】git常用命令和node项目

    这是之前在本地搞的一个小东西.因为之前电脑经常会很卡.后来发现任务管理器中多了两个不知名的进程:chromgpu.exe和flrefox.exe 乍一看以为和chrome和firefox两个浏览器有关 ...

  6. JS中document对象 && window对象

    所有的全局函数和对象都属于Window对象的属性和方法. 区别: 1.window 指窗体.Window 对象表示浏览器中打开的窗口. document指页面.document是window的一个子对 ...

  7. 用poi从excel文档导入数据

    import org.apache.commons.lang3.StringUtils; import org.apache.poi.hssf.usermodel.HSSFWorkbook; impo ...

  8. 文件的上传(1)(表单上传和ajax文件异步上传)

    文件的上传(表单上传和ajax文件异步上传) 项目中用户上传总是少不了的,下面就主要的列举一下表单上传和ajax上传!注意: context.Request.Files不适合对大文件进行操作,下面列举 ...

  9. BadUsb简单用法示例

    所需硬件  badusb 自行淘宝  驱动程序会自动安装,若未自动安装自行百度 所需工具  arduino-1.5.5-r2用于编辑代码并上传至badusb   badusb连接至电脑   打开ard ...

  10. tez

    参考: 原理: https://www.cnblogs.com/rongfengliang/p/6991020.html https://www.cnblogs.com/hankedang/p/421 ...