开源JumpServer堡垒机手把手保姆级教程

JumpServer 堡垒机

  • 一、简介
    • 1.总体介绍
    • 2.特色优势
    • 3.功能列表
  • 二、安装配置
    • 1.自动部署
      • 1.1官方命令执行一键部署安装
      • 1.2脚本部署安装
    • 2.手动部署
    • 3.其它说明
  • 三、管理文档
    • 1.系统配置
      • 1.1基本设置
      • 1.2邮件设置
  • 三、其他说明

一、简介

1.总体介绍

JumpServer 是全球首款开源的堡垒机,使用 GNU GPL v2.0 开源协议,是符合 4A 规范的运维安全审计系统。
JumpServer 使用 Python / Django 为主进行开发,遵循 Web 2.0 规范,配备了业界领先的 Web
Terminal 方案,交互界面美观、用户体验好。
JumpServer 采纳分布式架构,支持多机房跨区域部署,支持横向扩展,无资产数量及并发限制。
改变世界,从一点点开始。

2.特色优势

开源: 零门槛,线上快速获取和安装;
分布式: 轻松支持大规模并发访问;
无插件: 仅需浏览器,极致的 Web Terminal 使用体验;
多云支持: 一套系统,同时管理不同云上面的资产;
云端存储: 审计录像云端存储,永不丢失;
多租户: 一套系统,多个子公司和部门同时使用;
多应用支持: 数据库,Windows远程应用,Kubernetes。

3.功能列表

身份认证 登录认证 资源统一登录与认证
Authentication LDAP/AD认证
RADIUS 认证
OpenID 认证(实现单点登录)
CAS 认证 (实现单点登录)
钉钉认证(扫码登录)
企业微信认证 (扫码登录)
MFA认证 MFA 二次认证(Google Authenticator)
RADIUS 二次认证
登录复核 用户登录行为受管理员的监管与控制
登录限制 用户登录来源 IP 受管理员控制(支持黑/白名单)
账号管理Account 集中账号 管理用户管理
系统用户管理
统一密码 资产密码托管
自动生成密码
自动推送密码
密码过期设置
批量改密 定期批量改密
多种密码策略
多云纳管 对私有云、公有云资产自动统一纳管
收集用户 自定义任务定期收集主机用户
密码匣子 统一对资产主机的用户密码进行查看、更新、测试操作
授权控制Authorization 多维授权 对用户、用户组、资产、资产节点、应用以及系统用户进行授权
资产授权 资产以树状结构进行展示
资产和节点均可灵活授权
节点内资产自动继承授权
子节点自动继承父节点授权
应用授权 实现更细粒度的应用级授权
MySQL 数据库应用、RemoteApp 远程应用
动作授权 实现对授权资产的文件上传、下载以及连接动作的控制
时间授权 实现对授权资源使用时间段的限制
特权指令 实现对特权指令的使用(支持黑白名单)
命令过滤 实现对授权系统用户所执行的命令进行控制
文件传输 SFTP 文件上传/下载
文件管理 实现 Web SFTP 文件管理
工单管理 支持对用户登录请求行为进行控制
访问控制 登录资产复核(通过 SSH/Telnet 协议登录资产)
命令执行复核
组织管理 实现多租户管理与权限隔离
安全审计Audit 操作审计 用户操作行为审计
会话审计
在线会话内容监控
在线会话内容审计
历史会话内容审计
录像审计 支持对 Linux、Windows 等资产操作的录像进行回放审计
支持对 RemoteApp、MySQL 等应用操作的录像进行回放审计
指令审计 支持对资产和应用等操作的命令进行审计
文件传输 可对文件的上传、下载记录进行审计
数据库审计Database 连接方式 命令方式
Web UI方式
支持的数据库 MySQL
Oracle
Mariadb
PostgreSQL
功能亮点 语法亮点
SQL格式化
支持快捷键
支持选中执行
SQL历史查询
支持页面创建 DB, TABLE
会话审计 命令记录
录像回放

二、安装配置

说明:全新安装的Linux,需要连接互联网,使用root用户执行
外置环境要求
JumpServer 所在机器的 CPU 需要至少 2核
JumpServer 所在机器的 内存 需要至少 4G
推荐使用外置 数据库 和 Redis, 方便日后扩展升级
关闭防火墙和SELinux

推荐使用外置数据库和Redis.

DB Version Cache Version
MySQL >=5.7 Redis >=6.0
MariaDB >=10.2
systemctl stop frewalld 关闭防火墙
setenforce 0 关闭selinux

容器镜像服务

区域 镜像仓库地址 配置文件 /opt/jumpserver/config/config.txt
华北-北京一 swr.cn-north-1.myhuaweicloud.com DOCKER_IMAGE_PREFIX=swr.cn-north-1.myhuaweicloud.com
华北-北京四 swr.cn-north-4.myhuaweicloud.com DOCKER_IMAGE_PREFIX=swr.cn-north-4.myhuaweicloud.com
华南-广州 swr.cn-south-1.myhuaweicloud.com DOCKER_IMAGE_PREFIX=swr.cn-south-1.myhuaweicloud.com
华东-上海 swr.cn-east-3.myhuaweicloud.com DOCKER_IMAGE_PREFIX=swr.cn-east-3.myhuaweicloud.com

1.自动部署

1.1官方命令执行一键部署安装

这个命令是由官方文档提供,对于网络等各方面要求比较高,还有对GitHub的访问限制等,可能无法成功,笔者多次尝试后无法成功,因此不推荐使用此命令。

curl -sSL https://github.com/jumpserver/jumpserver/releases/download/v2.10.2/quick_start.sh | bash

配置文件/opt/jumpserver/config/config.txt

安装

cd /opt/jumpserver-installer-v2.10.2
./jmsctl.sh install

1.2脚本部署安装

官方提供的命令由于网络等各方面的限制可能执行不成功,因此我采用先将shell脚本下载到本地在上传到服务器的方式进行部署。

shell脚本

#!/bin/bash
function prepare_check() {
  isRoot=`id -u -n | grep root | wc -l`
  if [ "x$isRoot" != "x1" ]; then
      echo -e "[\033[31m ERROR \033[0m] Please use root to execute the installation script (请用 root 用户执行安>装脚本)"
      exit 1
  fi
  processor=`cat /proc/cpuinfo| grep "processor"| wc -l`
  if [ $processor -lt 2 ]; then
      echo -e "[\033[31m ERROR \033[0m] The CPU is less than 2 cores (CPU 小于 2核,JumpServer 所在机器的 CPU 需>要至少 2核)"
      exit 1
  fi
  memTotal=`cat /proc/meminfo | grep MemTotal | awk '{print $2}'`
  if [ $memTotal -lt 3750000 ]; then
      echo -e "[\033[31m ERROR \033[0m] Memory less than 4G (内存小于 4G,JumpServer 所在机器的内存需要至少 4G)"
      exit 1
  fi
}

function install_soft() {
    if command -v dnf > /dev/null; then
      if [ "$1" == "python" ]; then
        dnf -q -y install python2
        ln -s /usr/bin/python2 /usr/bin/python
      else
        dnf -q -y install $1
      fi
    elif command -v yum > /dev/null; then
   elif command -v yum > /dev/null; then
      yum -q -y install $1
    elif command -v apt > /dev/null; then
      apt-get -qqy install $1
    elif command -v zypper > /dev/null; then
      zypper -q -n install $1
    elif command -v apk > /dev/null; then
      apk add -q $1
    else
      echo -e "[\033[31m ERROR \033[0m] Please install it first (请先安装) $1 "
      exit 1
    fi  
}

function prepare_install() {
  for i in curl wget zip python; do
    command -v $i &>/dev/null || install_soft $i
  done
}

function get_installer() {
  echo "download install script to /opt/jumpserver-installe (开始下载安装脚本到 /opt/jumpserver-installe)"
  Version=$(curl -s 'https://api.github.com/repos/jumpserver/installer/releases/latest' | grep "tag_name" | head -n 1 | awk -F ":" '{print $2}' | sed 's/\"//g;s/,//g;s/ //g')
  if [ ! "$Version" ]; then
    echo -e "[\033[31m ERROR \033[0m] Network Failed (请检查网络是否正常或尝试重新执行脚本)"
  fi  
  cd /opt
  if [ ! -d "/opt/jumpserver-installer-$Version" ]; then
    wget -qO jumpserver-installer-$Version.tar.gz https://github.com/jumpserver/installer/releases/download/$Version/jumpserver-installer-$Version.tar.gz || {
      rm -rf /opt/jumpserver-installer-$Version.tar.gz
      echo -e "[\033[31m ERROR \033[0m] Failed to download jumpserver-installer (下载 jumpserver-installer 失败, 请检查网络是否正常或尝试重新执行脚本)"
      exit 1
    }   
    tar -xf /opt/jumpserver-installer-$Version.tar.gz -C /opt || {
      rm -rf /opt/jumpserver-installer-$Version
      echo -e "[\033[31m ERROR \033[0m] Failed to unzip jumpserver-installe (解压 jumpserver-installer 失败, 请检查网络是否正常或尝试重新执行脚本)"
      exit 1
    }   
    rm -rf /opt/jumpserver-installer-$Version.tar.gz
  fi  
}

function config_installer() {
  cd /opt/jumpserver-installer-$Version
  JMS_Version=$(curl -s 'https://api.github.com/repos/jumpserver/jumpserver/releases/latest' | grep "tag_name" | head -n 1 | awk -F ":" '{print $2}' | sed 's/\"//g;s/,//g;s/ //g')
  if [ ! "$JMS_Version" ]; then
    echo -e "[\033[31m ERROR \033[0m] Network Failed (请检查网络是否正常或尝试重新执行脚本)"
    exit 1
  fi  
  sed -i "s/VERSION=.*/VERSION=$JMS_Version/g" /opt/jumpserver-installer-$Version/static.env
  ./jmsctl.sh install
}

function main(){
  prepare_check
  prepare_install
  get_installer
  config_installer
}
main

安装

cd  /opt/jumpserver-installer-v2.10.2
./jmsctl.sh install

安装完成后,可以使用如下命令启动,然后访问

./jmsctl.sh start

其它一些管理命令

./jmsctl.sh stop 停止
./jmsctl.sh restart 重启
./jmsctl.sh backup 支持
./jmsctl.sh upgrade 升级
./jmsctl.sh --help 更多帮助

web访问

http://192.168.17.167:8080
https://192.168.17.167:8443
默认用户: admin  默认密码: admin

SSH/SFTP访问

ssh [email protected] -p2222
sftp -P2222 [email protected]

更多信息

官网: https://www.jumpserver.org/
官方文档: https://docs.jumpserver.org/

访问成功
开源JumpServer堡垒机手把手保姆级教程_第1张图片

2.手动部署

cd /opt
wget https://github.com/jumpserver/installer/releases/download/v2.10.2/jumpserver-installer-v2.10.2.tar.gz
tar -xf jumpserver-installer-v2.10.2.tar.gz
cd jumpserver-installer-v2.10.2
cat config-example.txt

由于官网下载tar包过慢,这里提供百度网盘的下载链接地址

链接:https://pan.baidu.com/s/1PE-Cm_NkM4E2ILgQaoySxA 
提取码:9u2m 

配置文件说明

# 以下设置如果为空系统会自动生成随机字符串填入
## 迁移请修改 SECRET_KEY 和 BOOTSTRAP_TOKEN 为原来的设置
## 安装配置
DOCKER_IMAGE_PREFIX=swr.cn-south-1.myhuaweicloud.com
VOLUME_DIR=/opt/jumpserver
DOCKER_DIR=/var/lib/docker
SECRET_KEY=
BOOTSTRAP_TOKEN=
LOG_LEVEL=ERROR
## 使用外置 MySQL 配置
USE_EXTERNAL_MYSQL=0
DB_HOST=mysql
DB_PORT=3306
DB_USER=root
DB_PASSWORD=
DB_NAME=jumpserver
## 使用外置 Redis 配置
USE_EXTERNAL_REDIS=0
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=
## Compose 项目设置
COMPOSE_PROJECT_NAME=jms
COMPOSE_HTTP_TIMEOUT=3600
DOCKER_CLIENT_TIMEOUT=3600
DOCKER_SUBNET=192.168.250.0/24
## IPV6
DOCKER_SUBNET_IPV6=2001:db8:10::/64
USE_IPV6=0
## Nginx 配置,这个 Nginx 是用来分发路径到不同的服务
HTTP_PORT=80
HTTPS_PORT=443
SSH_PORT=2222
## LB 配置, 这个 Nginx 是 HA 时可以启动负载均衡到不同的主机
USE_LB=0
LB_HTTP_PORT=80
LB_HTTPS_PORT=443
LB_SSH_PORT=2222
## Task 配置
USE_TASK=1
## XPack
USE_XPACK=0
# Mysql 容器配置
MYSQL_ROOT_PASSWORD=
MYSQL_DATABASE=jumpserver
# Core 配置
# SESSION_COOKIE_AGE=86400
SESSION_EXPIRE_AT_BROWSER_CLOSE=true
# KoKo Lion 配置
CORE_HOST=http://core:8080

安装并启动

./jmsctl.sh install 安装
./jmsctl.sh start 启动

3.其它说明

除使用系统的组件外,还可以使用外部组件经行负载均衡部署,详情请参考官方文档:https://jumpserver.readthedocs.io/zh/master/install/setup_by_lb/

三、管理文档

1.系统配置

1.1基本设置

开源JumpServer堡垒机手把手保姆级教程_第2张图片

1.2邮件设置

必须设置才能使用与邮件相关的功能
不可以同时勾选 使用SSL 和 使用TLS

开源JumpServer堡垒机手把手保姆级教程_第3张图片

三、其他说明

更多使用方法请参考官方文档

你可能感兴趣的:(JumpServer堡垒机)