部署jumpserver

博文结构
jumpserver介绍
安装jumpserver

一.jumpserver

  • Jumpserver是一款由Python编写开源的跳板机(堡垒机系统),实现了跳板机的应有的功能,基于ssh协议来管理服务器资源,客户端不需要安装jumpserver客户端软件程序。

    * 堡垒机介绍

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

    * Jumpserver的特点

1.完全开源;
2.Python编写,易于二次开发
3.实现跳板机的基本功能、认证、授权、审计
4.集成了Ansiable,实现批量操作命令等
5.支持web终端
6.Bootstrap编写,界面美观
7.自动收集硬件信息
8.录像回放、命令搜索、实时监控

* Jump架构图


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

Jumpserver组件说明

Jumpserver:jumpserver的管理后台
Coco:实现了ssh server 和 web终端的组件,提供ssh和websocket接口
Luna:是web Terminal 的前端(用来展示给用户和与用户进行交互)前端页面都是由该项目完成的
Guacamole:apache的跳板机项目,jumpserver使用其组件实现RDP(远程桌面)功,能,jumpserver在guacamole中添加额外插件,不修改其本身,实现调用

二.安装jumpserver

下载软件包

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

  • 修改字符集,支持中文字符
[[email protected] ~]# localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8
// -c 强制执行  -f 指定设置的字符集   -i  从那个源
[[email protected] ~]# export LC_ALL=zh_CN.UTF-8
// 将字符集设置成环境变量
[[email protected] ~]# echo ‘LANG="zh_CN.UTF-8"‘ > /etc/locale.conf
// 加入到字符配置文件

安装python环境

[[email protected] ~]#  yum -y install wget sqlite-devel xz gcc automake zlib-devel openssl-devel epel-release git
[[email protected] ~]# tar xf Python-3.6.1.tar.xz -C /usr/src/
[[email protected] ~]# cd /usr/src/Python-3.6.1/
[[email protected] Python-3.6.1]# ./configure   && make &&  make  install

创建python运行虚拟环境

[[email protected] ~]# cd /opt/
[[email protected] opt]# python3 -m venv py3 // venv python中的虚拟环境   py3虚拟环境名称
[[email protected] opt]# source /opt/py3/bin/activate
(py3) [[email protected] opt]# 

自动载入python虚拟环境设置

(py3) [[email protected] opt]# cd /opt/
(py3) [[email protected] opt]# git clone https://github.com/kennethreitz/autoenv.git
//将github网站的项目克隆到本地
项目路径https://github.com/kennethreitz/autoenv
正克隆到 ‘autoenv‘...
remote: Enumerating objects: 16, done.
remote: Counting objects: 100% (16/16), done.
remote: Compressing objects: 100% (13/13), done.
remote: Total 688 (delta 5), reused 9 (delta 3), pack-reused 672
接收对象中: 100% (688/688), 111.91 KiB | 108.00 KiB/s, done.
处理 delta 中: 100% (362/362), done.
(py3) [[email protected] opt]# echo ‘source /opt/autoenv/activate.sh‘ >>  /root/.bashrc
(py3) [[email protected] opt]# source ~/.bashrc
(py3) [[email protected] opt]# 

安装jumpserver

(py3) [[email protected] requirements]# unzip jumpserver.zip
(py3) [[email protected] requirements]# echo "source /opt/py3/bin/activate" > /opt/jumpserver/.env
(py3) [[email protected] requirements]# cd jumpserver/      //安装依赖包rpm
//输入y
(py3) [[email protected] requirements]# yum -y install $(cat rpm_requirements.txt)
(py3) [[email protected] requirements]# pip install --upgrade pip
Collecting pip
  Downloading https://files.pythonhosted.org/packages/54/0c/d01aa759fdc501a58f431eb594a17495f15b88da142ce14b5845662c13f3/pip-20.0.2-py2.py3-none-any.whl (1.4MB)
    100% |████████████████████████████████| 1.4MB 883kB/s
Installing collected packages: pip
  Found existing installation: pip 9.0.1
    Uninstalling pip-9.0.1:
      Successfully uninstalled pip-9.0.1
Successfully installed pip-20.0.2
(py3) [[email protected] requirements]# pip install wheel
Collecting wheel
  Downloading wheel-0.34.2-py2.py3-none-any.whl (26 kB)
Installing collected packages: wheel
Successfully installed wheel-0.34.2
(py3) [[email protected] requirements]# pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
//pip  install <安装包名> -r 将文件里面的内容当作安装包 -i 指定连接下载安装包
Pip是python中安装软件包的命令,相当于yum命令
(安装需要等待几分钟)

安装mariadb与redis

(py3) [[email protected] requirements]# yum -y install mariadb mariadb-devel mariadb-server
(py3) [[email protected] requirements]# systemctl start mariadb
(py3) [[email protected] requirements]# mysqladmin -u root password 1234.com
(py3) [[email protected] requirements]#  mysql -u root -p1234.com
//登陆数据库创建jumpserver库用来存放jumpserver数据
MariaDB [(none)]> create database jumpserver default charset ‘utf8‘ ;
//创建一个名为jumpserver的数据库
MariaDB [(none)]> grant all on jumpserver.* to [email protected] identified by ‘1234.com‘;
//jumpserver对数据库拥有所有权限,密码为123.com
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit
(py3) [[email protected] requirements]# ss -lnt | grep 3306
LISTEN     0      50           *:3306                     *:*          
(py3) [[email protected] requirements]# yum -y install redis
(py3) [[email protected] requirements]# systemctl start redis
(py3) [[email protected] requirements]# netstat -anpt | grep redis
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      75890/redis-server  

配置jumpserver文件

(py3) [[email protected] requirements]# cd /opt/jumpserver/
(py3) [[email protected] jumpserver]# cp config_example.yml config.yml
//生成SECRET_KEY写入配置文件
(py3) [[email protected] jumpserver]# cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 50
//把这个命令生成得码复制到配置文件
(py3) [[email protected] jumpserver]# cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16
//把这个命令生成得码复制到配置文件

安装coco组件并配置

(py3) [[email protected] requirements]#  unzip coco.zip
(py3) [[email protected] requirements]# cd coco
(py3) [[email protected] requirements]#  echo "source /opt/py3/bin/activate" > /opt/coco/.env
(py3) [[email protected] requirements]# cd requirements/
(py3) [[email protected] requirements]# yum -y install $(cat rpm_requirements.txt)
(py3) [[email protected] requirements]# pip install -r requirements.txt
(py3) [[email protected] requirements]# cd ..
(py3) [[email protected] coco]#  cp config_example.yml config.yml
(py3) [[email protected] coco]# vim /opt/jumpserver/config.yml
//把这个文件中得16位码复制上
(py3) [[email protected] coco]# vim config.yml 

(py3) [[email protected] coco]# ./cocod  start -d
Use eventlet dispatch
Start coco process
(py3) [[email protected] coco]# netstat -anpt | grep 2222
tcp        0      0 0.0.0.0:2222            0.0.0.0:*               LISTEN      33439/python3   

安装guacamole及luna

(py3) [[email protected] ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
(py3) [[email protected] ~]# yum-config-manager  --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
(py3) [[email protected] ~]#  yum makecache fast
(py3) [[email protected] ~]# yum -y install docker-ce
(py3) [[email protected] ~]# systemctl start docker
(py3) [[email protected] ~]# docker load < guacamole.tar
(py3) [[email protected] ~]# 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://192.168.1.10:8080  jumpserver/guacamole:latest
(py3) [[email protected] ~]# ss -lnt | grep 8081
LISTEN     0      128         :::8081                    :::*
(py3) [[email protected] ~]# tar zxf luna.tar.gz -C /opt

安装nginx

(py3) [[email protected] ~]# tar zxf nginx-1.2.4.tar.gz -C /usr/src
(py3) [[email protected] ~]# cd /usr/src/nginx-1.2.4/
(py3) [[email protected] nginx-1.2.4]# ./configure && make && make install
(py3) [[email protected] nginx-1.2.4]# ln -sf /usr/local/nginx/sbin/nginx /usr/local/bin/
(py3) [[email protected] nginx-1.2.4]# cd /usr/local/nginx/conf/
(py3) [[email protected] conf]# cp nginx.conf nginx.conf.bak
(py3) [[email protected] conf]# mv /root/nginx.conf .
mv:是否覆盖"./nginx.conf"? y
        //博文开头得软件包中得nginx.conf复制到这个nginx主配置文件中就可以了
(py3) [[email protected] conf]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
(py3) [[email protected] conf]# nginx
(py3) [[email protected] conf]# ss -lnt | grep -w 80
LISTEN     0      128          *:80                       *:              ``

客户端测试

创建普通用户

创建管理用户

创建系统用户

创建后端资产

实验环境,所以就开启一台虚拟机192.168.1.131作为测试(web页面的客户端与后端资产肯定不在同一网段,因为用户是通过公网登录到jumpserver才可以对后端服务器进行操作的)!

创建授权规则

连接后端资产

原文地址:https://blog.51cto.com/14400213/2472358

时间: 2024-10-11 17:34:06

部署jumpserver的相关文章

Centos6.8部署jumpserver(完整版)

环境: 系统 Centos6.8 IP:192.168.66.131 关闭selinux和防火墙 # 修改字符集,否则可能报 input/output error的问题,因为日志里打印了中文 # localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8 # export LC_ALL=zh_CN.UTF-8 # echo 'LANG=zh_CN.UTF-8' > /etc/sysconfig/i18n 一. 准备 Python3 和 Python 虚拟环境 1.1 安

部署Jumpserver环境

官网推荐安装环境 操作系统: Centos7 CPU: 64位双核处理器 内存: 4G DDR3 数据库:mysql 版本大于等于 5.6 mariadb 版本大于等于 5.5.6 1.搭建环境前期准备 关闭防火墙和selinux hostname jumpserver bash systemctl stop firewalld iptables -F setenforce 0 修改字符集,否则可能报 input/output error的问题, 因为日志里打印了中文 localedef -c

centos7.4安装部署jumpserver(数据库外置)配置全过程--无问题

一.jumpserver概述jumpserver是全球首款完全开源的堡垒机,使用Python/django进行开发,遵循GNU GPL v2.0 开源协议,是符合 4A 的专业运维审计系统,遵循 Web 2.0 规范,配备了业界领先的 Web Terminal,交互美观,支持分布式架构,可以对多机房跨区域部署.jumpserver好比是军事界的瑞士军刀,可以将我们的运维管理水平提高到一个专业的水平,如果说仍然还采用CRT或者Xshell进行批量管理的你,jumpserver无疑是雪中送炭. 1.

开源跳板机(堡垒机)Jumpserver v2.0.0 部署篇

** 强烈建议第一遍所有密码账号等与文档相同 ** 官网: http://www.jumpserver.org demo: http://demo.jumpserver.org 更新log: http://laoguang.blog.51cto.com/6013350/1635853 百度云相关软件: http://pan.baidu.com/s/1i3kne6p 交流群:390139816 项目地址:https://github.com/ibuler/jumpserver 博客地址:http:

堡垒机jumpserver集群部署

本文参考老广开发二次开发后的堡垒机部署方案,在此基础上进行集群部署,提高其可靠性.尽管国外已经有类似的功能的堡垒机的发布,但是还是要感谢老广在百忙之中再次开发出精简功能,更加使用的jumpserver堡垒机. 本文内容虽然亲测,但难免仍有错误指出.各位同行发现有请帮忙反馈,以便及时改进. 目 录 堡垒机jumpserver集群部署手册... 1 目录... 2 部分一  堡垒机架构原理... 3 jumpserver基本架构... 3 jumpserver集群架构... 4 部分二部署... 5

Jumpserver双机高可用环境部署笔记

之前在IDC部署了Jumpserver堡垒机环境,作为登陆线上服务器的统一入口.后面运行一段时间后,发现Jumpserver服务器的CPU负载使用率高达80%以上,主要是python程序对CPU的消耗比较大,由于是单机部署,处于安全考虑,急需要部署一套Jumpserver双机高可用环境,实现LB+HA的降低负载和故障转移的目的.以下记录了环境部署的过程: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

跳板机jumpServer搭建与部署

一,公网源部署 jumpserver 跳板机 1.建立阿里云公网源 yum 仓库 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo 2.将源码包拷贝到 jumpserver 服务器,并解包. 注:jumpserver 的包绝不能解压在 root 目录里,会出现问题 3.运行自带脚本 python install.py 4.通过阅览器访问 192.168.200.144:80

Linux系统——JumpServer跳板机的搭建和部署

公网源部署jumpserver跳板机 建立阿里云公网源yum仓库(服务端)[[email protected] ~]# lsanaconda-ks.cfg install.log.syslog jumpserver-0.3.2.tar.gzinstall.log jumpserver-0.3.2 yum.sh[[email protected] ~]# mount /dev/sr0 /media/cdrommount: block device /dev/sr0 is write-protect

jumpserver一站式部署安装

前言 我们对堡垒机(跳板机)不会陌生,为了保证服务器安全,加个堡垒机,所有ssh连接都通过堡垒机来完成,堡垒机也需要有身份认证.授权.访问控制.审计等功能. Jumpserver 是全球首款完全开源的堡垒机, 是符合 4A 的专业运维审计系统. Jumpserver 使用 Python / Django 进行开发, 采纳分布式架构, 支持多机房跨区域部署, 中心节点提供 API, 各机房部署登录节点, 可横向扩展.无并发访问限制. Jumpserver 现已支持管理 SSH. Telnet. R