JumpServer介绍及v4版本单机部署

打印 上一主题 下一主题

主题 1962|帖子 1962|积分 5886

概述

JumpServer官网:https://www.jumpserver.org/
JumpServer官网文档:https://docs.jumpserver.org/zh/v4/
GitHub地址:https://github.com/jumpserver/jumpserver
JumpServer 是一款由开源中国(OSCHINA)旗下团队使用python开发的开源堡垒机体系,遵照 Apache 2.0 开源协议。作为企业级的运维安全审计解决方案,它紧张用于解决复杂环境下的服务器、网络设备、云资源等资产的集中管理、权限控制、操纵审计等问题,资助企业实现合规性管理并降低运维风险。
JumpServer分为开源版和企业版,开源版仅提供底子功能,得当中小企业或技能团队自主搭建,而企业版则支持集群部署,高可用(HA),多云管理,定制化开发等高级功能,得当企业和复杂场景(钱的好处-.-,还是有钱好哇)
JumpServer作用


  • 同一资产管理

    • 支持管理多种类型资产,包罗 Linux/Windows 服务器、网络设备(如交换机、路由器)、数据库、云主机(如 AWS、阿里云、腾讯云等) 等。
    • 资产可按部分、环境(生产 / 测试)、标签等维度分组管理,方便权限分配和审计。

  • 细粒度权限控制

    • 基于 RBAC(角色访问控制) 模型,可灵活创建用户、角色、资产组的关联关系。
    • 支持动态授权,例如按时间段、协议(SSH/RDP/Telnet/MySQL 等)、IP 来源限制访问权限。

  • 多协议支持与会话管理

    • 支持 SSH、RDP、Telnet、VNC、MySQL、Redis 等主流协议的远程连接。
    • 提供 会话录制与及时监控,管理员可及时检察用户操纵,或通过录像回放追溯历史操纵,满足审计需求。

  • 审计与日记管理

    • 主动记录所有效户操纵日记,包罗登录日记、命令执行记录、文件传输记录等。
    • 支持日记检索、统计分析,可导出日记用于合规性查抄(如等保、分保要求)。

  • 双因子认证(2FA)

    • 支持 Google Authenticator、RSA 令牌、短信验证等二次认证方式,增强登录安全性。

  • 插件扩展与 API 接口

    • 提供丰富的插件机制(如 LDAP/AD 集成、Sentry 监控、K8s 管理等),支持与企业现有体系对接。
    • 开放 RESTful API,方便与 ITSM、CMDB 等平台集成,实现主动化运维流程。

JumpServer单机部署

这里部署v4版本的JumpServer
环境信息

我这里仅使用一台呆板作为安装,仅当做示例,生产环境必要将MySQL和JumpServer分开。
IP体系描述10.0.0.10Ubuntu22.04用于安装MySQL10.0.0.10Ubuntu22.04用于安装JumpServer安装MySQL

MySQL版本必要5.7版本及以上,这里保举参考这篇文章进行搭建MySQL:Linux体系搭建单机MySQL8.0.26版本
搭建完成数据库之后,必要执行下面的sql
  1. create database jumpserver default charset 'utf8';
复制代码
示例:
  1. mysql> create database jumpserver default charset 'utf8';
  2. Query OK, 1 row affected, 1 warning (0.01 sec)
  3. mysql> show databases;
  4. +--------------------+
  5. | Database           |
  6. +--------------------+
  7. | information_schema |
  8. | jumpserver         | # 创建的数据库
  9. | mysql              |
  10. | performance_schema |
  11. | sys                |
  12. +--------------------+
  13. 5 rows in set (0.03 sec)
复制代码
安装Redis

Redis必要6.0版本以上,安装方式可以参考这篇文章:Redis介绍及6.2.x版本安装
安装Docker

JumpServer启动依赖Docker,这里你可以选择安装或者不安装(不安装的话,安装jumpserver时会主动帮你安装)。
我们可以自己安装好对应的Docker服务,可以参考这篇文章:https://www.cnblogs.com/huangSir-devops/p/18822041#_label2
安装JumpServer

下载前置工具
  1. apt-get update
  2. apt-get install -y wget curl tar gettext iptables
复制代码
在线安装

参考这篇文章:https://docs.jumpserver.org/zh/v4/installation/setup_linux_standalone/online_install/#1
离线安装:

前去JumpServer官网下载安装包:https://community.fit2cloud.com/#/download/jumpserver/v4-10-0-lts
下载完成之后上传至服务器中解压即可,我们这里使用离线安装
  1. # 我这里已经上传至服务器中了
  2. [root@lb ~]# ll jumpserver-ce-v4.10.0-x86_64.tar.gz
  3. -rw-r--r-- 1 root root 1097249413 May  1 21:51 jumpserver-ce-v4.10.0-x86_64.tar.gz
  4. # 解压
  5. [root@lb ~]# tar -xvf jumpserver-ce-v4.10.0-x86_64.tar.gz
  6. # 创建软连接
  7. [root@lb ~]# ln -s jumpserver-ce-v4.10.0-x86_64 jumpserver
复制代码
修改设置文件
  1. # 修改配置文件
  2. [root@lb ~/jumpserver]# vim config-example.txt
  3. # 主要修改以下基本内容
  4. VOLUME_DIR=/data00/data/jumpserver
  5. # 可以用cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 50 | head -n 1 该命令生成
  6. SECRET_KEY=k1Vx3xZScIbbbNamemXvZvtOmPJ4fJ3txO3ZLCXASEXvLyFK7K
  7. # 可以用cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 16 | head -n 1 该命令生产
  8. BOOTSTRAP_TOKEN=aYoYCQKqta2SdAyF
  9. LOG_LEVEL=WARN
  10. # 数据库的配置
  11. DB_ENGINE=mysql
  12. DB_HOST=10.0.0.10
  13. DB_PORT=3306
  14. DB_USER=root
  15. DB_PASSWORD=huangsir
  16. DB_NAME=jumpserver
  17. # redis的配置
  18. REDIS_HOST=10.0.0.10
  19. REDIS_PORT=6379
  20. REDIS_PASSWORD=123456
  21. # 启动后的http端口号
  22. HTTP_PORT=1180
  23. #指定 Jumpserver 可访问的域名或 IP 地址及端口,该值可以写多个,也可以配置你的域名
  24. DOMAINS=10.0.0.10:1180
  25. # 配置https请求,我这里没有配置
  26. # HTTPS_PORT=443
  27. # SERVER_NAME=your_domain_name
  28. # SSL_CERTIFICATE=your_cert
  29. # SSL_CERTIFICATE_KEY=your_cert_key
复制代码
创建jumpserver默认的目录,并将设置文件移动过去
  1. [root@lb ~/jumpserver]# mkdir -p /opt/jumpserver/config && cp /root/jumpserver/config-example.txt /opt/jumpserver/config/config.txt
复制代码
执行安装,会让你输入一些执行的参数
  1. [root@lb ~/jumpserver]# ./jmsctl.sh install
  2. 2. Configure Persistent Directory
  3. # 这里输入y
  4. Do you need custom persistent store, will use the default directory /data00/data/jumpserver? (y/n)  (default n): y
  5. To modify the persistent directory such as logs video, you can select your largest disk and create a directory in it, such as /data/jumpserver
  6. Note: you can not change it after installation, otherwise the database may be lost
  7. Filesystem                         Size  Used Avail Use% Mounted on
  8. /dev/mapper/ubuntu--vg-ubuntu--lv   47G   24G   21G  54% /
  9. # 直接回车
  10. Persistent storage directory (default /data00/data/jumpserver):
  11. complete
  12. 3. Configure DB
  13. # 这里输入y
  14. Do you want to use external MySQL? (y/n)  (default y): y
  15. # 这里可能会让你输入IP,你就输入配置文件中的IP即可,如果和我的一样,则直接回车
  16. Please enter DB server IP (default 10.0.0.10):
  17. # 下面的四步直接回车
  18. Please enter DB server port (default 3306):
  19. Please enter DB database name (default jumpserver):
  20. Please enter DB username (default root):
  21. Please enter DB password (default huangsir):
  22. complete
  23. 4. Configure Redis
  24. # 这里可以直接回车
  25. Please enter Redis Engine? (redis/sentinel)  (default redis): redis
  26. # 这里输入y
  27. Do you want to use external Redis? (y/n)  (default y): y
  28. # 这里可能会让你输入IP,你就输入配置文件中的IP即可,如果和我的一样,则直接回车
  29. Please enter Redis server IP (default 10.0.0.10):
  30. # 下面的两步直接回车
  31. Please enter Redis server port (default 6379):
  32. Please enter Redis password (default 123456):
  33. complete
  34. 5. Configure External Access
  35. # 这里输入y
  36. Do you need to customize the JumpServer external port? (y/n)  (default n): y
  37. # 直接回车即可
  38. JumpServer web port (default 1180):
  39. complete
复制代码
最终没有报错,和我的截图一致,代表安装成功,如果有问题,可以参考文章末了的安装故障解决

启动JumpServer
  1. # 没有报错代表启动成功
  2. [root@lb ~/jumpserver]# ./jmsctl.sh start
  3. [+] Running 6/6
  4. ✔ Container jms_lion    Started                                                                                                                                                                         11.7s
  5. ✔ Container jms_chen    Started                                                                                                                                                                         11.7s
  6. ✔ Container jms_web     Started                                                                                                                                                                         11.8s
  7. ✔ Container jms_core    Started                                                                                                                                                                         11.8s
  8. ✔ Container jms_celery  Started                                                                                                                                                                         12.0s
  9. ✔ Container jms_koko    Started   
  10. # 验证一下容器的启动状态,这里需要等待几分钟之后,等待health: starting转为healthy
  11. [root@lb ~/jumpserver]# docker ps -a
  12. CONTAINER ID   IMAGE                                 COMMAND                  CREATED          STATUS                             PORTS                                                 NAMES
  13. 93f7bbf1751d   jumpserver/core:v4.10.0-ce            "./entrypoint.sh sta…"   33 seconds ago   Up 21 seconds (health: starting)   8080/tcp                                              jms_celery
  14. 0441f6f225b0   jumpserver/web:v4.10.0-ce             "/docker-entrypoint.…"   33 seconds ago   Up 21 seconds (health: starting)   80/tcp, 0.0.0.0:1180->1180/tcp, [::]:1180->1180/tcp   jms_web
  15. b0f855665246   jumpserver/core:v4.10.0-ce            "./entrypoint.sh sta…"   33 seconds ago   Up 21 seconds (health: starting)   8080/tcp                                              jms_core
  16. 2b3d1ab4c968   jumpserver/koko:v4.10.0-ce            "./entrypoint.sh ./k…"   33 seconds ago   Up 21 seconds (health: starting)   0.0.0.0:2222->2222/tcp, [::]:2222->2222/tcp           jms_koko
  17. c845d9807738   jumpserver/chen:v4.10.0-ce            "./entrypoint.sh wisp"   33 seconds ago   Up 21 seconds (health: starting)   8082/tcp                                              jms_chen
  18. 4e8fba121f0e   jumpserver/lion:v4.10.0-ce            "./entrypoint.sh sup…"   33 seconds ago   Up 21 seconds (health: starting)   8081/tcp                                              jms_lion
复制代码
访问并设置JumpServer


  • 地址: http://:
  • 默认用户名: admin
  • 默认密码: ChangeMe
示例:http://10.0.0.10:1180/

登录之后必要重置密码,我这里修改为huangsir

然后会跳转到重新登录

末了我们就登录上来了

安装JumpServer故障解决

问题一:报连接数据库权限拒绝
  1. File "/opt/py3/lib/python3.11/site-packages/MySQLdb/__init__.py", line 121, in Connect
  2.     return Connection(*args, **kwargs)
  3.            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  4.   File "/opt/py3/lib/python3.11/site-packages/MySQLdb/connections.py", line 195, in __init__
  5.     super().__init__(*args, **kwargs2)
  6. django.db.utils.OperationalError: (1045, "Access denied for user 'root'@'192.168.250.2' (using password: YES)")
  7. [ERROR] Failed to change the table structure!
复制代码

解决方式:连接数据库,创建用户
  1. # 登录MySQL,使用root账号
  2. [root@lb ~/jumpserver]# mysql -uroot -phuangsir
  3. # 创建用户,192.168.250.0/24代表jumpserver的网段,只有在这个网段之内的IP才能连接数据库,密码设置为huangsir
  4. mysql> CREATE USER 'root'@'192.168.250.0/24' IDENTIFIED BY 'huangsir';
  5. Query OK, 0 rows affected (0.01 sec)
  6. # 授权,*.*代表jumpserver库和其中所有的表
  7. mysql> GRANT ALL PRIVILEGES ON jumpserver.* TO 'root'@'192.168.250.0/24' WITH GRANT OPTION;
  8. Query OK, 0 rows affected (0.00 sec)
  9. # 刷新权限
  10. mysql> FLUSH PRIVILEGES;
  11. Query OK, 0 rows affected (0.00 sec)
复制代码
末了重新执行./jmsctl.sh install
补充-JumpServer的相关命令
  1. cd jumpserver
  2. # 启动
  3. ./jmsctl.sh start
  4. # 重启
  5. ./jmsctl.sh restart
  6. # 停止
  7. ./jmsctl.sh down
  8. # 卸载
  9. ./jmsctl.sh uninstall
  10. # 帮助
  11. ./jmsctl.sh -h
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

南飓风

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表