JumpServer简介

  • JumpServer 是全球首款完全开源的堡垒机, 使用 GNU GPL v2.0 开源协议, 是符合 4A 的专业运维审计系统。
  • JumpServer 使用 Python / Django 进行开发, 遵循 Web 2.0 规范, 配备了业界领先的 Web Terminal 解决方案, 交互界面美观、用户体验好。
  • JumpServer 采纳分布式架构, 支持多机房跨区域部署, 中心节点提供 API, 各机房部署登录节点, 可横向扩展、无并发访问限制。
  • JumpServer 现已支持管理 SSH、 Telnet、 RDP、 VNC 协议资产。

    特点

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

参考JumpServer官网

JumpServer安装

推荐使用外置 数据库 和 Redis, 方便日后扩展升级

服务器名 操作系统 IP
JumpServer CentOS 7 192.168.0.36
MariaDB CentOS 7 192.168.0.63
Redis CentOS 7 192.168.0.64
  • Redis >= 5.0.0
  • MySQL >= 5.7
  • MariaDB >= 10.2

    MariaDB安装

    参考MariaDB官网
    [root@mariadb ~]# vim /etc/yum.repos.d/MariaDB.repo 
    [mariadb]
    名称= MariaDB
    baseurl = http://yum.mariadb.org/10.5/centos7-amd64
    gpgkey = https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
    gpgcheck = 1
    [root@mariadb ~]# yum install MariaDB-server MariaDB-client -y
    [root@mariadb ~]# systemctl start mariadb
    [root@mariadb ~]# mysql -u root -p
    Enter password:
    Welcome to the MariaDB monitor. Commands end with ; or \g.
    Your MariaDB connection id is 3
    Server version: 10.5.8-MariaDB MariaDB Server

    Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

    MariaDB [(none)]> alter user 'root'@'localhost' identified by 'password';
    Query OK, 0 rows affected (0.001 sec)
    # 设个密码
    MariaDB [(none)]> create database jumpserver default charset 'utf8';
    Query OK, 1 row affected (0.000 sec)

    MariaDB [(none)]> grant all on jumpserver.* to 'jumpserver'@'%'identified by 'password';
    Query OK, 0 rows affected (0.001 sec)

    MariaDB [(none)]> flush privileges;
    Query OK, 0 rows affected (0.000 sec)

    Redis安装

    参考Redis官网
    之前的文章有说过Redis的安装,此次略
    [root@redis ~]# vim /usr/local/redis-6.0.9/conf/redis.conf
    ···
    requirepass password
    ···
    # 设置密码后无密码可以登陆,但是无法操作

    JumpServer安装

    [root@jumpserver ~]# cd /opt
    [root@jumpserver opt]# wget https://github.com/jumpserver/installer/releases/download/v2.7.0/jumpserver-installer-v2.7.0.tar.gz
    [root@jumpserver opt]# tar -xf jumpserver-installer-v2.7.0.tar.gz
    [root@jumpserver opt]# cd jumpserver-installer-v2.7.0
    [root@jumpserver jumpserver-installer-v2.7.0]# export DOCKER_IMAGE_PREFIX=docker.mirrors.ustc.edu.cn
    [root@jumpserver jumpserver-installer-v2.7.0]# cat config-example.txt
    # 说明
    #### 这是项目总的配置文件, 会作为环境变量加载到各个容器中
    #### 格式必须是 KEY=VALUE 不能有空格等

    # 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

    ### 持久化目录, 安装启动后不能再修改, 除非移动原来的持久化到新的位置
    VOLUME_DIR=/opt/jumpserver

    ## 是否使用外部MYSQLREDIS
    USE_EXTERNAL_MYSQL=0
    USE_EXTERNAL_REDIS=0

    ## Nginx 配置,这个Nginx是用来分发路径到不同的服务
    HTTP_PORT=8080
    HTTPS_PORT=8443
    SSH_PORT=2222

    ## LB 配置, 这个NginxHA时可以启动负载均衡到不同的主机
    USE_LB=0
    LB_HTTP_PORT=80
    LB_HTTPS_PORT=443
    LB_SSH_PORT=2223

    ## Task 配置
    USE_TASK=1

    ## XPack
    USE_XPACK=0

    # Koko配置
    CORE_HOST=http://core:8080
    ENABLE_PROXY_PROTOCOL=true

    # Core 配置
    ### 启动后不能再修改,否则密码等等信息无法解密
    SECRET_KEY=
    BOOTSTRAP_TOKEN=
    LOG_LEVEL=INFO
    # SESSION_COOKIE_AGE=86400
    # SESSION_EXPIRE_AT_BROWSER_CLOSE=false

    ## MySQL数据库配置
    DB_ENGINE=mysql
    DB_HOST=mysql
    DB_PORT=3306
    DB_USER=root
    DB_PASSWORD=
    DB_NAME=jumpserver

    ## Redis配置
    REDIS_HOST=redis
    REDIS_PORT=6379
    REDIS_PASSWORD=

    ### Keycloak 配置方式
    ### AUTH_OPENID=true
    ### BASE_SITE_URL=https://jumpserver.company.com/
    ### AUTH_OPENID_SERVER_URL=https://keycloak.company.com/auth
    ### AUTH_OPENID_REALM_NAME=cmp
    ### AUTH_OPENID_CLIENT_ID=jumpserver
    ### AUTH_OPENID_CLIENT_SECRET=
    ### AUTH_OPENID_SHARE_SESSION=true
    ### AUTH_OPENID_IGNORE_SSL_VERIFICATION=true

    # Guacamole 配置
    JUMPSERVER_SERVER=http://core:8080
    JUMPSERVER_KEY_DIR=/config/guacamole/data/key/
    JUMPSERVER_RECORD_PATH=/config/guacamole/data/record/
    JUMPSERVER_DRIVE_PATH=/config/guacamole/data/drive/
    JUMPSERVER_ENABLE_DRIVE=true
    JUMPSERVER_CLEAR_DRIVE_SESSION=true
    JUMPSERVER_CLEAR_DRIVE_SCHEDULE=24

    # Mysql 容器配置
    MYSQL_ROOT_PASSWORD=
    MYSQL_DATABASE=jumpserver

    [root@jumpserver jumpserver-installer-v2.7.0]# ./jmsctl.sh install
    ···
    7. 配置 MySQL
    是否使用外部 MySQL? (y/n) (默认为 n): y
    请输入 mysql 的主机地址 (无默认值): 192.168.0.63
    请输入 mysql 的端口 (默认为 3306):
    请输入 mysql 的数据库 (默认为 jumpserver): jumpserver
    请输入 mysql 的用户名 (无默认值): jumpserver
    请输入 mysql 的密码 (无默认值): password
    完成

    8. 配置 Redis
    是否使用外部 Redis? (y/n) (默认为 n): y
    请输入 Redis 的主机地址 (无默认值): 192.168.0.64
    请输入 Redis 的端口 (默认为 6379): 6379
    请输入 Redis 的密码 (无默认值): password
    完成
    ···
    访问 http://localhost:8080/

    可以看到基本搭建成功
    默认用户: admin 默认密码: admin

    未完待续。。。