JumpServer简介

Jumpserver是一款由python编写, Django开发的开源跳板机/堡垒机系统, 助力互联网企业高效 用户、资产、权限、审计 管理。jumpserver实现了跳板机应有的功能,基于ssh协议来管理,客户端无需安装agent。

Jumpserver是全球首款完全开源的堡垒机,使用 GNU GPL v2.0 开源协议,是符合 4A 的专业运维审计系统。

Jumpserver 使用 Python /Django 进行开发,遵循 Web 2.0 规范,配备了业界领先的 Web Terminal 解决方案,交互界面美观、用户体验好。

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

JumpServer特点

(1)完全开源,GPL授权

(2)Python编写,容易再次开发

(3)实现了跳板机基本功能,身份认证、访问控制、授权、审计 、批量操作等。

(4)集成了Ansible,批量命令等

(5)支持WebTerminal

(6)Bootstrap编写,界面美观

(7)自动收集硬件信息

(8)录像回放

(9)命令搜索

(10)实时监控

(11)批量上传下载

JumpServer环境说明

安装环境

·          硬件配置: 2个CPU核心, 4G 内存, 50G 硬盘(最低)

·          操作系统: Linux 发行版 x86_64

·          Python环境:Python = 3.6.x

·          数据库:Mysql Server ≥ 5.6 \ Mariadb Server ≥ 5.5.56

·          缓存数据库:Redis

·          代理:Ningx

JumpServer 插件

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

Koko

koko 为 SSH Server 和 Web Terminal Server 。用户可以使用自己的账户通过 SSH 或者 Web Terminal 访问 SSH 协议和 Telnet 协议资产。

Luna

luna 为 Web Terminal Server 前端页面,用户使用 Web Terminal 方式登录时所需要的插件。

Guacamole

Guacamole是一个开源项目,为远程桌面提供解决方案。,Jumpserver 使用其组件实现 RDP和VNC 功能,Jumpserver 并没有修改其代码而是添加了额外的插件,支持 Jumpserver 调用。

JumpServer 组件及其监听端口

Jumpserver  8080/tcpRedis  6379/tcpMySQL/Mariadb  3306/tcpNginx  80/tcpKoko  SSH 2222/tcp Web Terminal 5000/tcpGuacamole  8081/tcp

JumpServer-1.5.9 部署

系统配置

系统版本

[root@JumpServer ~]# cat  /etc/redhat-release CentOS Linux release 8.1.1911 (Core)

系统时间

date -s "2020-06-16 10:57:00"hwclock -wclock -w

软件版本

selinux

setenforce 0sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config

firewall

# nginx端口firewall-cmd --zone=public --add-port=80/tcp --permanent      # 用户SSH登录端口koko           firewall-cmd --zone=public --add-port=2222/tcp --permanent# 设置防火墙规则,允许容器ip访问宿主8080端口firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="172.17.0.0/16" port protocol="tcp" port="8080" accept"# 设置防火墙规则,允许容器ip访问宿主8080端口firewall-cmd --reload                                       # 重新载入规则

Python3和Python虚拟环境

安装依赖软件包

yum -y install wget gcc epel-release git

安装Python3.6

dnf install python36 python36-devel

建立Python虚拟环境

#创建虚拟环境,环境命令自定义为py3cd /optpython3.6 -m venv py3           #运行虚拟化环境# 看到下面的提示符代表成功, 以后运行 Jumpserver 都要先运行以上 source 命令, 以下所有命令均在该虚拟环境中运行source /opt/py3/bin/activate                           # 出现以上字符代表运行成功(py3) [root@jumpserver py3]                 

Redis

Jumpserver使用Redis做cache和celery broke

dnf -y install redissystemctl    start  redis  && systemctl    enable  redissystemctl    status redis

Mariadb数据库

安装Mariadb数据库

dnf install mariadb-server mariadb -y

启动并开机启动

systemctl   start  mariadb && systemctl   enable   mariadb

初始化数据库

生成随机数据库密码

[root@JumpServer ~]# DB_PASSWORD=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 24`[root@JumpServer ~]# echo -e "\033[31m 你的数据库密码是 $DB_PASSWORD \033[0m" 你的数据库密码是 dhfbGWxvTjZIPDzard39xy7L

数据库配置

mysql -uroot -p#创建jumpserver数据库create database jumpserver default charset 'utf8';#授权jumpserver用户grant all on jumpserver.* to 'jumpserver'@'127.0.0.1' identified by 'dhfbGWxvTjZIPDzard39xy7L';grant all on jumpserver.* to 'jumpserver'@'localhost' identified by 'dhfbGWxvTjZIPDzard39xy7L';#刷新策略flush privileges;

Jumpserver 安装

获取 jumpserver 代码(wget 选择版本)

cd /opt && \git clone --depth=1 https://github.com/jumpserver/jumpserver.git

网络有问题可以wget下载

cd /optwget http://demo.jumpserver.org/download/jumpserver/latest/jumpserver.tar.gztar xf jumpserver.tar.gz

软件环境依赖

dnf  -y install gcc krb5-devel libtiff-devel libjpeg-devel libzip-devel freetype-devel libwebp-devel tcl-devel tk-devel sshpass openldap-devel mariadb-devel libffi-devel openssh-clients telnet openldap-clients

pip 依赖环境

cd /opt/jumpserver/requirements/pip install wheel && \pip install --upgrade pip setuptools && \pip install -r requirements.txt

确保已经载入 py3 虚拟环境, 中间如果遇到报错一般是依赖包没装全

国内可以使用阿里镜像加速

pip install wheel -i https://mirrors.aliyun.com/pypi/simple/pip install --upgrade pip setuptools -i https://mirrors.aliyun.com/pypi/simple/pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/

修改jumpserver配置文件

cd /opt/jumpservercp config_example.yml config.yml SECRET_KEY=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 50`# 生成随机SECRET_KEYecho "SECRET_KEY=$SECRET_KEY" >> ~/.bashrc BOOTSTRAP_TOKEN=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16`  # 生成随机BOOTSTRAP_TOKENecho "BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN" >> ~/.bashrc sed -i "s/SECRET_KEY:/SECRET_KEY: $SECRET_KEY/g" /opt/jumpserver/config.yml sed -i "s/BOOTSTRAP_TOKEN:/BOOTSTRAP_TOKEN: $BOOTSTRAP_TOKEN/g" /opt/jumpserver/config.yml sed -i "s/# DEBUG: true/DEBUG: false/g" /opt/jumpserver/config.yml sed -i "s/# LOG_LEVEL: DEBUG/LOG_LEVEL: ERROR/g" /opt/jumpserver/config.yml sed -i "s/# SESSION_EXPIRE_AT_BROWSER_CLOSE: false/SESSION_EXPIRE_AT_BROWSER_CLOSE: true/g" /opt/jumpserver/config.yml sed -i "s/DB_PASSWORD: /DB_PASSWORD: $DB_PASSWORD/g" /opt/jumpserver/config.ymlecho -e "\033[31m 你的SECRET_KEY是 $SECRET_KEY \033[0m" echo -e "\033[31m 你的BOOTSTRAP_TOKEN是 $BOOTSTRAP_TOKEN \033[0m"

启动 jumpserver

确保已经载入 py3 虚拟环境  source /opt/py3/bin/activate

cd /opt/jumpserver./jms start all -d后台运行可以-d 参数

Docker

# 安装相关依赖dnf install -y yum-utils device-mapper-persistent-data lvm2# 配置Docker源yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# 重新生成缓存dnf makecache # 安装Docker-cerpm --import https://mirrors.aliyun.com/docker-ce/linux/centos/gpgdnf -y install docker-ce# 下载相关文件mkdir -p /etc/dockerwget -O /etc/docker/daemon.json http://demo.jumpserver.org/download/docker/daemon.json# 启动docker并设置开机自启systemctl restart docker && systemctl enable docker

Docker 部署 koko 组件

格式

docker run --name jms_koko -d \  -p 2222:2222 -p 127.0.0.1:5000:5000 \  -e CORE_HOST=http:// \  -e BOOTSTRAP_TOKEN= \  -e LOG_LEVEL=ERROR \  --restart=always \  jumpserver/jms_koko: 为 jumpserver 的 url 地址,  需要从 jumpserver/config.yml 里面获取, 保证一致,  是版本

例如

docker run --name jms_koko -d \  -p 2222:2222 \  -p 127.0.0.1:5000:5000 \  -e CORE_HOST=http://172.18.51.227:8080 \  -e BOOTSTRAP_TOKEN=C1JVFTxHvje9fGOK \  -e LOG_LEVEL=ERROR \  --restart=always \  jumpserver/jms_koko:1.5.9

Docker 部署  guacamole  组件

格式

docker run --name jms_guacamole -d \  -p 127.0.0.1:8081:8080 \  -e JUMPSERVER_SERVER=http://<Jumpserver_url> \  -e BOOTSTRAP_TOKEN=<Jumpserver_BOOTSTRAP_TOKEN> \  -e GUACAMOLE_LOG_LEVEL=ERROR \  jumpserver/jms_guacamole:<Tag><Jumpserver_url> 为 jumpserver 的 url 地址, <Jumpserver_BOOTSTRAP_TOKEN> 需要从 jumpserver/config.yml 里面获取, 保证一致, <Tag> 是版本

举例

docker run --name jms_guacamole -d \  -p 127.0.0.1:8081:8080 \  -e JUMPSERVER_SERVER=http://172.18.51.227:8080 \  -e BOOTSTRAP_TOKEN=C1JVFTxHvje9fGOK \  -e GUACAMOLE_LOG_LEVEL=ERROR \  jumpserver/jms_guacamole:1.5.9

检查容器运行状态

docker imagesdocker ps -a

查看docker IP地址

docker inspect --format='{{.NetworkSettings.IPAddress}}'  容器名称

Web Terminal(前端Luna)

下载安装包

cd /optwget https://github.com/jumpserver/luna/releases/download/1.5.9/luna.tar.gz

解压并授权

tar -xf luna.tar.gzchown -R nginx:nginx luna

安装Nginx

编辑 nginx repo文件

vi /etc/yum.repos.d/nginx.repo

[nginx-stable]name=nginx stable repobaseurl=http://nginx.org/packages/centos/$releasever/$basearch/gpgcheck=1enabled=1gpgkey=https://nginx.org/keys/nginx_signing.keymodule_hotfixes=true

安装Nginx

dnf -y install nginx

Nginx  jumpserver 配置文件

#删除默认default.conf文件rm -rf /etc/nginx/conf.d/default.conf#编辑 jumpserver 配置文件vi /etc/nginx/conf.d/jumpserver.conf[root@JumpServer conf.d]# cat jumpserver.conf server {    listen 80;    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 /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 / {        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;    }}

检查Nginx配置文件并启动

nginx -tsystemctl   start nginx && systemctl   enable nginxsystemctl   status nginx

访问 JumpServer Web

服务全部启动后, 访问 jumpserver 服务器 nginx 代理的 80 端口, 不要通过8080端口访问 默认账号: admin 密码: admin

JumpServer 主页

会话管理--终端管理 查看koko和guacamole  组件注册是否正常

SSH测试连接

ssh   -p2222 admin@172.18.51.227



CentOS 8.0 安装docker 报错:Problem: package docker-ce-3:19.03.4-3.el7.x86_64 requires containerd.io >= 1.2.2-3

package docker-ce-3:19.03.2-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed- cannot install the best candidate for the job- package containerd.io-1.2.2-3.3.el7.x86_64 is excluded- package containerd.io-1.2.2-3.el7.x86_64 is excluded- package containerd.io-1.2.4-3.1.el7.x86_64 is excluded- package containerd.io-1.2.5-3.1.el7.x86_64 is excluded- package containerd.io-1.2.6-3.3.el7.x86_64 is excluded(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

更新 containerd.io 的版本,然后重新安装最新版本的docker 即可成功安装

wget https://download.docker.com/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpmdnf install -y  containerd.io-1.2.6-3.3.el7.x86_64.rpm

检查是否安装成功

docker -v

docker 操作命令

#搜索镜像docker search *image_name*#下载镜像docker pull *image_name* #查看镜像docker images#删除镜像docker rmi *image_name*docker image rm *image_name*#导出docker镜像docker save *image_name* > /save/image/path/name.tar.gz#导入docker镜像docker load < /save/image/path/name.tar.gz#查看容器docker psdocker ps -adocker ps -aq#容器端口映射列表docker port jms_koko#运行|重启|停止容器docker  start|restart|stop  #查看容器 log docker logs -f #删除容器docker rm *container_id*#显示容器对资源的使用情况(内存、CPU、磁盘等)docker stats jms_koko#显示docker客户端和服务端版本信息docker version#显示容器中正在运行的进程(相当于容器内执行 ps -ef 命令)docker top jms_koko#显示 Docker 详细的系统信息docker info#杀死所有正在运行的容器docker kill $(docker ps -a -q)#删除所有已经停止的容器docker rm $(docker ps -a -q)#删除所有未打 dangling 标签的镜像docker rmi $(docker images -q -f dangling=true)#删除所有镜像docker rmi $(docker images -q)#强制删除镜像名称中包含“doss-api”的镜像docker rmi --force $(docker images | grep doss-api | awk '{print $3}')#删除所有未使用数据docker system prune#只删除未使用的volumesdocker volume prune

JumpServer官方文档

https://docs.jumpserver.org/zh/master/install/step_by_step/

centos8 ssh配置_JumpServer 堡垒机CentOS 8 安装部署(四)相关推荐

  1. 堡垒机jumpserver集群部署

    本文参考老广二次开发后的堡垒机部署方案,在此基础上进行集群部署,提高其可靠性.尽管国外已经有类似的功能的堡垒机的发布,但是还是要感谢老广在百忙之中开发出更加实用的堡垒机. 本文内容虽然亲测,但内容难免 ...

  2. 云堡垒机分布式集群部署优缺点简单说明

    目前云堡垒机安装部署模式主要分为单机部署.高可用集群部署以及分布式集群部署等.其中分布式集群部署就是将核心功能模块(如门户服务.会话中转服务.数据库服务等),分别部署在多个计算节点上.那采取布式集群部 ...

  3. Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践(二)

    原文:Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践(二) Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践(一) 接上一篇 ...

  4. centos 7安装部署 单节点 Elasticsearch 6.6.0

    centos 7安装部署Elasticsearch 安装java环境 先查看本地是否自带java环境 yum list installed |grep java 卸载自带的java(注:需要root权 ...

  5. 开源轻量堡垒机——Teleport的安装配置和使用

    一.堡垒机简介 1.1.现状 目前随着信息化的发展,越来越多的企业开始有更多的服务器.业务资源,有更多样化的员工,拥有更多的账号:导致访问混乱化,越权访问难以规范:甚至恶意命令攻击事件(如删库.删除业 ...

  6. linux堡垒机开源软件,开源堡垒机-01-JumpServer的安装

    前段时间曾经用过JumpServer帮助一个客户完成了他的关于堡垒机的需求,由于当时赶进度,没来得及将整个过程记录和完善,现在抽时间慢慢整理下. 1)JumpServer的介绍 Jumpserver  ...

  7. 堡垒机JumpServer(一):部署运维安全审计系统

    准备最低环境配置:服务器:2核4G,200G硬盘, 64 位 Centos 7 主机:作用:运维与安全,是符合 4A 的专业运维安全审计系统. JumpServer核心功能: 1.jumpserver ...

  8. 堡垒机-teleport的安装以及常见问题解决办法

    teleport是一款简单易用的堡垒机系统,运用在企业对windows.linux服务器的安全使用管理以及审计. 官网网址:http://teleport.eomsoft.net/ github地址: ...

  9. 【CentOS】安装部署jenkins从git获取代码[转]

    持续集成①安装部署jenkins从git获取代码 一:持续集成的概念: 1.1:总体的概括 持续集成Continuous Integration 持续交付Continuous Delivery 持续部 ...

最新文章

  1. 第 4 章 Glance - 022 - 如何使用 OpenStack CLI
  2. Centos7安装mongo3.4
  3. PKCS7填充标准代码--C语言实现
  4. QT中Qpixmap与QImage的转化
  5. python实验结论怎么写_Python实验课:Python元组数据及其运算
  6. GDI+ 绘制多行文本,自动换行。
  7. 甘特图控件VARCHART XGantt如何开始使用
  8. 两台计算机怎样共享一台打印机共享文件夹,两台电脑如何共享一台打印机
  9. ubuntu 14.04 ADSL 上网失败之解决
  10. 上海内推 | 微软亚洲研究院(上海)AI-ML组招聘AI实习生
  11. luoguP2123 皇后游戏(贪心)
  12. linux 阿波罗 计划,linux下搭建阿波罗分布式配置中心
  13. JS判断字符串是否含有某个值
  14. 20180102下结构体
  15. 用python画星空-python3的turtle画模仿3d星空,运动的恒星小宇宙
  16. WeCenter 与 UCenter 对接
  17. java cms建站系统源码_51javacms CMS系统
  18. Symfony CSRF 教程
  19. 数据分析模型篇—SWOT分析
  20. STP(生成树协议)总结

热门文章

  1. 移动端click事件延时
  2. 2015-7-24 从新开始博客之路
  3. 【转】热门3D游戏视觉效果名词简介
  4. CROSS APPLY 和OUTER APPLY 的区别
  5. 查看Json的结构及内容:JsonViewerPackage
  6. [svc]mousedos网络批量部署xp
  7. 20135302魏静静——linux课程第三周实验及总结
  8. 将m个苹果放入n个盘子的问题【转】
  9. Eclipse窗口显示:独立、嵌入式
  10. 練習重繪TreeView控件