JumpServer安装和部署

一、引言

  • 在特定网络环境中(如内网和外网),为了保证公司网络中的服务器数据不受外界的入侵和破坏,运用各种技术手段收集和监控公司服务器的状态,安全时间、以便集中报警,并且及时处理
    我们又把堡垒机叫做跳板机,简易的跳板机功能简单,主要核心功能是远程登陆服务器和日志审计
    比较优秀的开源软件jumpserver,功能齐全如: 认证、授权、审计、自动化、资产管理(内网服务器资源分配)等。
    Jumpserver是一款由Python编写开源的跳板机(堡垒机系统),实现了跳板机的应有的功能,基于ssh协议来管理服务器资源,客户端不需要安装jumpserver客户端软件程序

二、Jumpserver的特点

  • 完全开源

    Python编写,容易二次开发使用

    实现了跳板机的基本功能、认证、授权、审计

    集成了ansible,批量命令等

    支持web Terminal (web终端,可以在浏览器web页面运行终端,管理服务器资源)

    Bootstrap编写,界面美观 (前端页面效果,由web前端人员完成的)

    自动收集硬件信息 (如后端服务器的磁盘空间,内存大小等资源信息)
    录像回放

    命令搜索 (简单理解就是后端服务器系统能够运行的命令,可以收集到,方便管理)

    实时监控

三、JumpServer架构流程和运行组件

  • Jumpserver:jumpserver的管理后台,提供web页面和用户数据

  • Coco:实现了ssh server 和 web终端的组件,提供ssh和websocket接口

  • Luna:是web Terminal 的前端(用来展示给用户和与用户进行交互)前端页面都是由该项目完成的

  • Guacamole:apache的跳板机项目,jumpserver使用其组件实现RDP(远程桌面)功能,jumpserver在guacamole中添加额外插件,不修改其本身,实现调用


用户通过浏览器访问到nginx代理服务器页面,nginx服务器在jump架构中是作为一台代理服务器,用来代理jumpserver程序、coco程序、luna程序、guacamole程序的web页面,方便用户使用,如果不采用nginx做代理服务器的话,用户访问页面时比较麻烦(如coco程序需要用到8080端口、guncamole需要别的端口,使用起来不方便,而且后续的页面跳转有可能会导致not found),nginx调取luna程序设置终端采用ssh协议连接后端资产(后端服务器)

四、安装 JumpServer

安装硬件介绍centos 7  4G以上内存  至少双核处理器
安装依赖环境:python3.6以上版本  后端数据库  redis
系统版本 IP地址
Centos7.4 192.168.83.3
Centos7.4 192.168.83.4

关闭防火墙 selinux
修改字符集,支持中文字符

[root@localhost ~]# localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8
// -c 强制执行  -f 指定设置的字符集   -i  从那个源
[root@localhost ~]# export LC_ALL=zh_CN.UTF-8
// 将字符集设置成环境变量
[root@localhost ~]# echo 'LANG="zh_CN.UTF-8"' > /etc/locale.conf
// 加入到字符配置文件
##因为jumpserver的日志文件中存在中文字符集,需要将系统设置支持中文字符

安装python环境

[root@localhost ~]# yum -y install wget sqlite-devel xz gcc automake zlib-devel openssl-devel epel-release git  //pyhon安装需要的依赖包[root@localhost ~]# tar xf  Python-3.6.1.tar.xz   -C  /usr/src/
[root@localhost ~]# cd  /usr/src/Python-3.6.1/
[root@localhost Python-3.6.1]# ./configure   && make &&  make  install

创建python运行虚拟环境
因为在linux系统中默认安装python 2 版本,需要开辟一个新的虚拟环境使用python3环境运行程序

[root@localhost]#  cd /opt
[root@localhost opt]# python3     -m  venv  py3
// venv python中的虚拟环境   py3虚拟环境名称
[root@localhost opt]# source   /opt/py3/bin/activate ##调用py3虚拟环境
(py3) [root@localhost opt]#  (py3)使用名为py3的虚拟环

自动载入python虚拟环境设置

(py3) [root@localhost opt]# cd  /opt/
(py3) [root@localhost opt]# git clone https://github.com/kennethreitz/autoenv.git
将github网站的项目克隆到本地 web页面访问项目路径为https://github.com/kennethreitz/autoenv
(py3) [root@localhost opt]# echo 'source /opt/autoenv/activate.sh' >>  /root/.bashrc
(py3) [root@localhost opt]# source ~/.bashrc

1、安装jumpserver组件

(py3)[root@localhostopt]# git clone https://github.com/jumpserver/jumpserver
(py3) [root@localhost opt]# cd jumpserver/
(py3) [root@localhost jumpserver]# git  checkout master
##将jumpserver设置成主分支
(py3) [root@localhost jumpserver]# echo "source /opt/py3/bin/activate" > /opt/jumpserver/.env
## 下次进入jumpserver目录时直接调用py3虚拟环境,不需要再次引入虚拟环境
安装依赖包rpm
(py3) [root@localhost jumpserver]# cd  requirements/
(py3) [root@localhost requirements]# yum -y install $(cat rpm_requirements.txt)
## rpm_requirements.txt文件存放的是依赖的rpm包名
安装python依赖库
因为jumpserve在使用的过程中需要调用python中的库文件,需要在python库添加jumpserver依赖库
(py3) [root@localhost requirements]#  pip install  -r requirements.txt  -i https://pypi.python.org/simple
语法格式:pip  install <安装包名> -r 将文件里面的内容当作安装包 -i 指定连接下载安装包 Pip是python中安装软件包的命令

在安装过程中提示pip版本过低,需要升级pip版本到19.0.2版本
(py3) [root@localhost requirements]# pip install --upgrade pip
重新安装python依赖库
(py3) [root@localhost requirements]#  pip install  -r requirements.txt  -i https://pypi.python.org/simple
如果有报错可以切换安装源:阿里源https://mirrors.aliyun.com/pypi/simple/

安装redis用来做jumpserver的数据缓存,提高访问速度

(py3) [root@localhost requirements]# yum  -y install  redis
安装完成后配置文件在/etc/redis.conf
将redis服务器开启并设置开机自启
(py3) [root@localhost requirements]# systemctl  start  redis
(py3) [root@localhost requirements]# systemctl  enable  redis


安装mysql数据库,用来存放jumpserver数据文件,mysql版本必须是5.5版本以上,要不然不支持
这里可以使用yum进安装mysql数据库,centos7版本自带mariadb版本为5.5

(py3) [root@localhost requirements]# yum -y install mariadb mariadb-devel mariadb-server   ##安装mysql数据库
(py3) [root@localhost requirements]# systemctl  start  mariadb
(py3) [root@localhost requirements]# systemctl  enable   mariadb
(py3) [root@localhost requirements]# mysqladmin   -u root    password 123.com  ##设置mysql用户密码
(py3) [root@localhost requirements]# mysql  -u root  -p123.com登陆数据库创建jumpserver库用来存放jumpserver数据
MariaDB [(none)]> create database   jumpserver  default  charset  'utf8' ;##创建一个名为jumpserver的数据库
MariaDB [(none)]> grant all  on  jumpserver.*  to jumpserver@127.0.0.1  identified  by  '123.com';##jumpserver对数据库拥有所有权限,密码为123.comMariaDB [(none)]> flush  privileges;##刷新配置

修改jumpserver配置文件

(py3) [root@localhost jumpserver]# pwd/opt/jumpserver
(py3) [root@localhost jumpserver]# cp  config_example.yml   config.yml
(py3) [root@localhost jumpserver]# cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 49返回结果 cm3tDTBeW90xjHMYmMleRe9NoiFyS99qArQVuZ1fspuLPqMiD
(py3) [root@localhost jumpserver]# cat /dev/urandom | tr -dc A-Za-z0-9 | head -c  16  返回结果18doTTEL5ssQp2Ps修改jumpserver主配置文件
(py3) [root@localhost jumpserver]# grep  -v  ^#  config.yml SECRET_KEY: cm3tDTBeW90xjHMYmMleRe9NoiFyS99qArQVuZ1fspuLPqMiD  BOOTSTRAP_TOKEN: 18doTTEL5ssQp2PsDEBUG: falseLOG_LEVEL: ERRORSESSION_EXPIRE_AT_BROWSER_CLOSE: true DB_ENGINE: mysqlDB_HOST: 127.0.0.1DB_PORT: 3306DB_USER: jumpserverDB_PASSWORD: 123.comDB_NAME: jumpserverHTTP_BIND_HOST: 0.0.0.0HTTP_LISTEN_PORT: 8080REDIS_HOST: 127.0.0.1REDIS_PORT: 6379

启动服务

(py3) [root@localhost jumpserver]# ./jms   start     all  -d

2、安装COCO组件

(py3) [root@localhost]# cd /opt
(py3) [root@localhost opt]# git clone https://github.com/jumpserver/coco.git
(py3) [root@localhost opt]# cd /opt/coco/requirements
(py3) [root@localhost requirements]# yum -y install $(cat rpm_requirements.txt)
(py3) [root@localhost requirements]# pip install -r requirements.txt
# 如果下载速度很慢, 可以换国内源$ pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
(py3) [root@localhost coco]# cd  /opt/coco/
(py3) [root@localhost coco]# git  checkout   master
(py3) [root@localhost coco]# echo "source /opt/py3/bin/activate" > /opt/coco/.env  ##设置进入目录自动载入py3虚拟环境

测试自动载入是否成功

py3) [root@localhost coco]# cp  config_example.yml    config.yml
(py3) [root@localhost coco]# vim config.yml 修改:BOOTSTRAP_TOKEN: 18doTTEL5ssQp2Ps  #需要与jumpserver组件中的BOOTSTRAP_TOKEN选项相同LOG_LEVEL: ERROR
(py3) [root@localhost coco-master]# ./cocod   start  -d   #启动coco组件,可查看2222端口判断是否启动


安装WEB Terminal前端:Luna

[root@localhost ~]# tar  zxf  luna.tar.gz   -C  /opt
[root@localhost ~]# chown  -R root:root   /opt/luna

安装Docker下载guacamole镜像 (guacamole 安装和配置相对麻烦,使用打包好的镜像运行环境)

在终端执行下面命令
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum -y install docker-ce
systemctl  enable  docker
systemctl  start   docker
下载并运行guacamole镜像
[root@localhost ~]# docker  run   --name  jms_guacamole   -d  -p  8081:8080 -v /opt/guacamole/key:/config/guacamole/key   -e JUMPSERVER_KEY_DIR=/config/guacamole/key -e JUMPSERVER_SERVER=http://127.0.0.1:8080   jumpserver/guacamole:latest
##--name  制定镜像运行的名称
## -d  后台运行
##-p 将容器内的8080端口映射到本地8081端口
## -v 将容器内的/config/guacamole/key文件共享到本地目录中
## -e 为容器内设置环境变量JUMPSERVER_KEY_DIR=/config/guacamole/key

安装nginx服务,整合jumpserver、coco、luna、guacamole组件
可使用yum安装和二进制方式安装
1、yum安装

[root@localhost ~]# yum  -y install  nginx
#配置文件路径为/etc/nginx/nginx.conf

2、使用nginx1.14源码包安装

[root@localhost ~]# tar  zxf  nginx-1.14.0.tar.gz
[root@localhost ~]#cd  nginx-1.14.0
[root@localhost nginx-1.14.0]# ./configure  && make &&  make install

修改nginx配置文件

在server模块中添加,注释掉原有的 /client_max_body_size 100m;  # 录像及文件上传大小限制location /luna/ {try_files $uri / /index.html;alias /opt/luna/;  # luna 路径, 如果修改安装目录, 此处需要修改}location /media/ {add_header Content-Encoding gzip;root /opt/jumpserver/data/;  # 录像位置, 如果修改安装目录, 此处需要修改}location /static/ {root /opt/jumpserver/data/;  # 静态资源, 如果修改安装目录, 此处需要修改}location /socket.io/ {proxy_pass       http://localhost:5000/socket.io/;  # 如果coco安装在别的服务器, 请填写它的ipproxy_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 /coco/ {proxy_pass       http://localhost:5000/coco/;  # 如果coco安装在别的服务器, 请填写它的ipproxy_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/;  # 如果guacamole安装在别的服务器, 请填写它的ipproxy_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 / {proxy_pass http://localhost:8080;  # 如果jumpserver安装在别的服务器, 请填写它的ipproxy_set_header X-Real-IP $remote_addr;proxy_set_header Host $host;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}

启动nginx访问web页面 默认用户名和密码为admin
点击----用户管理-----用户列表----创建用户


资产管理-----管理用户----创建管理用户



资产管理-----系统用户----创建系统用户(用户名尽量为root,选择手动登录,
这个用户是用来连接后端资产的)


资产管理-----资产列表----创建资产----写测试机的IP地址


权限管理-----资产授权----创建授权规则


访问测试

Jumpserver安装和测试连接相关推荐

  1. my SQL下载安装,环境配置,以及密码忘记的解决,以及navicat for mysql下载,安装,测试连接...

    一.下载 在百度上搜索"mysql-5.6.24-winx64下载" 二.安装 选择安装路径,我的路径"C:\Soft\mysql-5.6.24-winx64" ...

  2. MongoDB下载安装与测试连接(windows)

    一.MongoDB下载 MongoDB为Windows提供了两种安装方式,分别是msi和zip方式. msi方式对4.0以上版本进行了优化,而3.x版本则需在安装后手动进行配置:zip方式解压即安装, ...

  3. Presto编译安装和测试连接Hive

    1.下载 源码: git clone https://github.com/prestodb/presto.gitmvn clean install -DskipTests 在Windows环境下编译 ...

  4. python之路 mysql 博客园_教为学:Python学习之路(二):MySQLdb的几种安装方式,以及用Python测试连接MySql...

    教为学:Python学习之路(二):MySQLdb的几种安装方式,以及用Python测试连接MySql Easy_install安装MySQLdb 很简单,以至于我不晓得该怎么说.一句话. sodu ...

  5. mysql安装连接测试c_Ubuntu 12.04下安装mysql并用C程序测试连接

    1.先安装mysql 代码:sudo apt-get install mysql-server mysql-client 2.再装开发包 代码:sudo apt-get install libmysq ...

  6. rocketmq 远程连_RocketMQ-单机版安装及远程连接测试

    RocketMQ-单机版安装及远程连接测试 发布时间:2018-05-10 11:06, 浏览次数:1163 , 标签: RocketMQ 安装需要 jdk 1.8 centos 7 rocketmq ...

  7. CentOS 7安装Mongodb并使用Robo 3T远程测试连接

    文章目录 背景 环境 下载`Mongodb`压缩包 解压`Mongodb`压缩包 配置环境变量 创建数据库文件与目录 `Mongodb`配置文件添加配置内容 设置数据库文件夹目录权限 启动`mongo ...

  8. 实战:windows上如何安装kubectl并连接我们的k8s集群(测试成功-博客输出)-2022.1.3

    实战:windows上如何安装kubectl并连接我们的k8s集群-2022.1.3 目录 文章目录 实战:windows上如何安装kubectl并连接我们的k8s集群-2022.1.3 目录 实验环 ...

  9. 开源堡垒机Jumpserver安装

    测试环境Centos7.7: [root@magic ~]# cat /etc/redhat-release  CentOS Linux release 7.7.1908 (Core) 安装目录: / ...

最新文章

  1. 机器学习数据预处理之缺失值:众数(mode)填充
  2. socket通过多网卡收发数据
  3. OpenCV imgproc分割(segmentation)的实例(附完整代码)
  4. 如何在生产环境使用Btrace进行调试
  5. 哈哈哈,程序员没有女朋友的原因,我终于找到了!
  6. 2019年,ALEXA将会走向何方?
  7. java struts 介绍,Struts入门之MVC介绍
  8. JavaScript基础知识(三个判断、三个循环)
  9. labview与威纶通触摸屏ftp通讯
  10. 如何评估开发费 (From 程序匠人)
  11. MyEclipse10破解
  12. 用html和css实现字体发光效果
  13. Windows蓝屏死机骗局:新的恶意钓鱼方式
  14. 木讷的程序员需要知道的事情 (二)
  15. 无线web认证计费服务器,WEB认证原理
  16. esp8266 mesh 组网
  17. 软件(程序)编写通法
  18. 35.前端笔记-CSS3-3D转换
  19. 酒桌上的潜规则,男人必学,女人必知
  20. fabric2.2版本 单机测试环境搭建

热门文章

  1. Matlab 断供哈工大,国产替代软件挺身而出,霸气!
  2. 新学期,在这里写下我人生的新规划
  3. c语言是流式,C语言中的文件又被称为流式文件。
  4. 免费iOS第三方推送工具Urban Airship使用教程
  5. 文本数据扩增时,哪些单词(不)应该被选择?
  6. 大虾救命啊~~~~~~~~~~
  7. Android 音乐播放器的开发教程(三) 小卷毛播放器的主界面开发 ---- 小达
  8. 光盘显示0字节可用_正点原子STM32F4/F7水星开发板资料连载第四十六章 汉字显示实验
  9. 完整配置SSM及实践-欧克
  10. vue 大屏数字上下滚动