首页 > 其他分享 >企业级堡垒机 JumpServer

企业级堡垒机 JumpServer

时间:2024-09-23 21:24:45浏览次数:7  
标签:企业级 账号 root JumpServer 堡垒 mysql docker jumpserver data

1 堡垒机和 JumpServer

生产应用场景

2 JumpServer 安装

2.1 基于 Docker 部署

官方说明
https://docs.jumpserver.org/zh/master/install/setup_by_fast/

JumpServer 环境要求:
硬件配置: 2个CPU核心, 4G 内存, 50G 硬盘(最低)

 

案例:基于自定义网络利用Docker部署 JumpServer

自定义网络可以通过容器名称通讯,不需要绑定ip地址

#机器需要至少4g内存

#创建自定义网络
[root@ubuntu2204 ~]#apt update && apt -y install docker.io
[root@ubuntu2204 ~]#docker network create jumpserver-net
#查看网络
[root@ubuntu ~]#docker network ls
NETWORK ID     NAME             DRIVER    SCOPE
...
135453a87c5f   jumpserver-net   bridge    local
#查看网络ip
[root@ubuntu ~]#ip a
[root@ubuntu ~]#docker inspect jumpserver-net

#MySQL8.0需要修改验证插件(创建一个文件)
[root@ubuntu2204 ~]#cat > mysqld.cnf 
[mysqld]
default_authentication_plugin=mysql_native_password

#启动MySQL容器(引入上面的配置文件)
[root@ubuntu2204 ~]#docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=jumpserver -e MYSQL_USER=jumpserver -e MYSQL_PASSWORD=123456 -d -v ./mysqld.cnf:/etc/mysql/conf.d/mysqld.cnf --restart always --network jumpserver-net mysql:8.0.29-oracle

#查看mysql里面是不是创建好了
[root@ubuntu ~]#docker exec -it mysql sh
sh-4.4# mysql -uroot -p123456
mysql> show databases;
mysql> select user,host from mysql.user;
mysql> show grants for jumpserver@'%';

#启动Redis容器
[root@ubuntu2204 ~]#docker run -d --name redis --restart always --network jumpserver-net redis:6.2.14
#进入redis容器(加个密码安全)
[root@ubuntu ~]#docker exec -it redis sh
# redis-cli   
127.0.0.1:6379> CONFIG get requirepass    #查看密码
127.0.0.1:6379> CONFIG set requirepass 123456    #设置密码(临时,重启就没了)
#下次登录
# redis-cli   
127.0.0.1:6379> auth 123456

#启动并修改密码(这样就不用像上面修改密码了)
#[root@ubuntu2204 ~]#docker run -d --name redis --restart always --network jumpserver-net redis:6.2.14 redis-server --requirepass 123456


#生成jumpserver所需相关key和token(自己存下来,以后有用)
[root@ubuntu2204 ~]#cat /dev/urandom | tr -dc '[:alnum:]' | head -c50
jdjpxwttxSTRSuQYWRilsCV8eZWEAFyE239wERZL1LjOJwqX1K
[root@ubuntu2204 ~]#cat /dev/urandom | tr -dc '[:alnum:]' | head -c30
vWD4bJCCYocvqM7CF6CAA3neJciW2u

#启动JumpServer容器 (替换上面的key和token)
#jms_all:v3.10.3
[root@ubuntu2204 ~]#docker run --name jms_all -d \
  -p 80:80 \
  -p 2222:2222 \
  -p 30000-30100:30000-30100 \
  -e SECRET_KEY=jdjpxwttxSTRSuQYWRilsCV8eZWEAFyE239wERZL1LjOJwqX1K \
  -e BOOTSTRAP_TOKEN=vWD4bJCCYocvqM7CF6CAA3neJciW2u \
  -e LOG_LEVEL=ERROR \
  -e DB_HOST=mysql \
  -e DB_PORT=3306 \
  -e DB_USER=jumpserver \
  -e DB_PASSWORD=123456 \
  -e DB_NAME=jumpserver \
  -e REDIS_HOST=redis \
  -e REDIS_PORT=6379 \
  -e REDIS_PASSWORD='123456' \
  --privileged=true \
  -v /opt/jumpserver/core/data:/opt/jumpserver/data \
  -v /opt/jumpserver/koko/data:/opt/koko/data \
  -v /opt/jumpserver/lion/data:/opt/lion/data \
  -v /opt/jumpserver/magnus/data:/opt/magnus/data \
  -v /opt/jumpserver/kael/data:/opt/kael/data \
  -v /opt/jumpserver/chen/data:/opt/chen/data \
  -v /opt/jumpserver/web/log:/var/log/nginx \
  --network jumpserver-net \
  --restart always         \
 jumpserver/jms_all:v3.10.3

登录jumpserver

#浏览器输入
http://10.0.0.151/
默认用户admin
密码admin    #设置密码123456

 

2.2 Docker-Compose 部署

范例:基于Jumpserver-v3.10.3修改官方的docker-compose.yaml

[root@ubuntu2204 jumpserver]#cat docker-compose.yaml
version: '3.8'
services:
  mysql:
    image: mariadb:10.6
    container_name: jms_mysql
    restart: always
    environment:
      MARIADB_ROOT_PASSWORD: ${DB_PASSWORD:-123456}
      MARIADB_DATABASE: ${DB_NAME:-jumpserver}
    healthcheck:
      test: "mysql -h127.0.0.1 -uroot -p$$MARIADB_ROOT_PASSWORD -e 'SHOW DATABASES;'"
      interval: 10s
      timeout: 5s
      retries: 3
      start_period: 30s
    volumes:
      - ${VOLUME_DIR:-./data}/mariadb/data:/var/lib/mysql
    networks:
      - net

  redis:
    image: redis:7.0
    container_name: jms_redis
    restart: always
    command: redis-server --requirepass ${REDIS_PASSWORD:-123456}
    environment:
      REDIS_PASSWORD: ${REDIS_PASSWORD:-123456}
    healthcheck:
      test: "redis-cli -h 127.0.0.1 -a $$REDIS_PASSWORD info Replication"
      interval: 10s
      timeout: 5s
      retries: 3
      start_period: 10s
    volumes:
      - ${VOLUME_DIR:-./data}/redis/data:/data
    networks:
      - net

  jumpserver:
    image: jumpserver/jms_all:v3.10.3
    #build:
    #  context: .
    #  dockerfile: Dockerfile
    container_name: jms_all
    privileged: true
    restart: always
    environment:
      SECRET_KEY: ${SECRET_KEY:-SYmfImNk3TfMCmKmb7h3SYZjfTR6e2jVAjfLZxHAQqIxOdAWLv}
      BOOTSTRAP_TOKEN: ${BOOTSTRAP_TOKEN:-9Gd3SM0tR6gmbirptLYdkqXN82ZrQh}
      LOG_LEVEL: ${LOG_LEVEL:-ERROR}
      DB_HOST: ${DB_HOST:-mysql}
      DB_PORT: ${DB_PORT:-3306}
      DB_USER: ${DB_USER:-root}
      DB_PASSWORD: ${DB_PASSWORD:-123456}
      DB_NAME: ${DB_NAME:-jumpserver}
      REDIS_HOST: ${REDIS_HOST:-redis}
      REDIS_PORT: ${REDIS_PORT:-6379}
      REDIS_PASSWORD: ${REDIS_PASSWORD:-123456}
      DOMAINS: ${DOMAINS:-}
    ports:
      - ${HTTP_PORT:-80}:80/tcp
      - ${SSH_PORT:-2222}:2222/tcp
    depends_on:
      mysql:
        condition: service_healthy
      redis:
        condition: service_healthy
    healthcheck:
      test: "curl -fsL http://localhost/api/health/ > /dev/null"
      interval: 10s
      timeout: 5s
      retries: 3
      start_period: 90s
    volumes:
      - ${VOLUME_DIR:-./data}/core/data:/opt/jumpserver/core/data
      - ${VOLUME_DIR:-./data}/koko/data:/opt/jumpserver/koko/data
      - ${VOLUME_DIR:-./data}/lion/data:/opt/jumpserver/lion/data
      - ${VOLUME_DIR:-./data}/chen/data:/opt/jumpserver/chen/data
      - ${VOLUME_DIR:-./data}/kael/data:/opt/jumpserver/kael/data
      - ${VOLUME_DIR:-./data}/nginx/data:/var/log/nginx
    networks:
      - net

networks:
  net:


#安装docker-compose
[root@ubuntu ~]#apt update && apt -y install docker-compose
[root@ubuntu ~]#mkdir jumperserver    #最好建个独立目录放compose文件
#把上面的内容写入
[root@ubuntu ~]#vim docker-compose.yaml
#语法检查
[root@ubuntu jumperserver]#docker-compose config -q

#启动(这里看效果,前端执行)
[root@ubuntu jumperserver]#docker-compose up
#后端执行
#[root@ubuntu jumperserver]#docker-compose up -d
#查看容器
[root@ubuntu jumperserver]#docker-compose ps

 

2.3 官方脚本一键安装

官网:
https://docs.jumpserver.org/zh/v3/installation/setup_linux_standalone/online_install/
#最新安装基于jumpserver-v3.6.2 (会根据版本自动安装docker,以微服务方式安装启动)
[root@ubuntu2204 ~]#curl -sSL https://resource.fit2cloud.com/jumpserver/jumpserver/releases/latest/download/quick_start.sh | bash
#安装中途卡住了,我按了ctrl+c又继续下去了...

[root@ubuntu2204 ~]#docker images
REPOSITORY           TAG       IMAGE ID       CREATED       SIZE
jumpserver/web       v3.10.3   0ee78cf967db   4 days ago    1.52GB
jumpserver/core-ce   v3.10.3   63c4dd51406b   4 days ago    1.56GB
jumpserver/koko     v3.10.3   076f77b0aa4b   4 days ago    1.06GB
jumpserver/lion     v3.10.3   c82cbcccb148   4 days ago   255MB
jumpserver/kael     v3.10.3   ff371a084eae   4 days ago   269MB
jumpserver/chen     v3.10.3   a8990c6cf53e   4 days ago   572MB
jumpserver/magnus   v3.10.3   ff5c80e9d2b2   4 days ago   147MB
jumpserver/mariadb   10.6     9ee9424356c4   2 weeks ago   392MB
jumpserver/redis     6.2       c6b27afb23d5   2 weeks ago   113MB

#安装完成后,直接访问即可,默认用户名和密码是admin/admin,首次登录需要修改密码,但不能使用原密码
http://jumpserver_ip/

1. 可以使用如下命令启动, 然后访问
cd /opt/jumpserver-installer-v3.0.4
./jmsctl.sh start

 

3 JumpServer 常见功能

创建用户和组

MFA: 多因子验证(谷歌app验证码)
#MFA级别: 启用(本人可以选禁用)  强制启用(本人不可禁用)
#手机如果丢了就麻烦了,所以选择自己可以禁用(个人信息里设置)

3.1 创建资产并关联特权用户

通过帐号模版创建系统用户中特权用户(管理用户)

通过模板,后续创建管理机中引用特权用户直接更方便

左侧账号管理下账号模板创建
#名称是注释   特权账号就是管理员账号(这里用root)   密码(被管理机root密码)

创建资产

左侧资产管理下资产列表,资产树下右键创建节点(就是文件夹),创开发组,测试组
点击创建,把资产添加到组里,在账号这添加模板,选上面添加的特权用户

3.2 授权用户使用资产

通过帐号模版创建系统普通用户(系统用户中普通用户)

创建模板,用于被管理机普通用户

左侧账号管理下账号模板创建
#名称是注释   这里不是特权账号,不勾   密码策略随机生成(jumpserver自己连接用)
#点自动推送(jumpserver通过管理用户自动在所有资产机器创用户)  推送参数不用改

创建资产授权规则并在后端主机自动创建普通用户

左侧权限管理下资产授权点创建
#用户栏直接填入用户组   资产栏可以直接选择节点   账号点指定账号(选前面创建的普通用户)
#(这里因为每个资产前面已经关联了被管理机器的管理员账号,所以会通过管理员账号去创建普通用户)
#点击提交

#这是,在任一一台开发机器上,能查到对应的普通用户被创建
[root@ubuntu ~]#id dev
uid=1001(dev) gid=1001(dev) groups=1001(dev)

可以文件传输

#上传的文件在/tmp目录下
#右键文件可以下载

审计员可以审计

用审计权限的用户登录,并进入审计台
#左侧能看在线用户,可以让在线用户下线
#会话审计下可以看会话记录,可以点击监控对方命令界面,命令记录看之前的命令

 

3.3 数据库授权

在后端服务器安装MySQL并创建数据库和用户

#在被控机上安装mysql
[root@ubuntu ~]#apt install mysql-server
#注释掉127行
[root@ubuntu ~]#sed -i '/127.0.0.1/s/^/#/' /etc/mysql/mysql.conf.d/mysqld.cnf
[root@ubuntu2204 ~]#systemctl restart mysql
#查看端口
[root@ubuntu ~]#ss -ntl

#mysql的项目进行授权(这里模拟用户对某些库有权限)
[root@ubuntu ~]#mysql
mysql> create database wordpress;
mysql> create user wordpress@'10.0.0.%' identified by '123456';
mysql> grant all on wordpress.* to wordpress@'10.0.0.%' ;
mysql> use wordpress;
mysql> create table t1 (id int,name varchar(20));

创建数据库的系统用户

左侧账号管理下账号模板点击创建,把mysql的管理用户wordpress创建出来
#名称为标注,随意起   非特权账号   密码指定123456
#不点自动推送(这个账号是手动建起来的)
点提交

创建数据库应用

左侧资产管理下资产列表内,点创建,类型数据库mysql
#选节点,纳入哪个资产文件夹里   默认数据库写wordpress
账号栏点模板添加,选上面创建的账号模板
点提交

创建数据库授权规则

左侧权限管理下资产授权,点创建
#写入名称(任意),选择用户组   资产栏点击资产,精确选择mysql资产
#账号选择指定账号,wordpress   协议栏选择指定协议(MySQL)
点提交

这时登录开发账号,资产就能看到mysql,可以连接了

ssh连接JumpServer

JumpServer 还支持用户通过ssh连接其2222/tcp端口进行访问

[root@ubuntu ~]#ssh -p 2222 [email protected]
[email protected]'s password: 
        xiaoming,  JumpServer 开源堡垒机

    1) 输入 部分IP,主机名,备注 进行搜索登录(如果唯一).
    2) 输入 / + IP,主机名,备注 进行搜索,如:/192.168.
    3) 输入 p 进行显示您有权限的资产.
    4) 输入 g 进行显示您有权限的节点.
    5) 输入 h 进行显示您有权限的主机.
    6) 输入 d 进行显示您有权限的数据库.
    7) 输入 k 进行显示您有权限的Kubernetes.
    8) 输入 r 进行刷新最新的机器和节点信息.
    9) 输入 s 进行中文-English-日本語语言切换.
    10) 输入 ? 进行显示帮助.
    11) 输入 q 进行退出.
Opt> p
  ID | 名称                  | 地址       | 平台                | 组织                 | 备注
-----+-----------------------+------------+---------------------+----------------------+---
  1  | 10.0.0.152-ubuntu-dev | 10.0.0.152 | Linux               | Default              |   
  2  | MySQL-wordpress       | 10.0.0.152 | MySQL               | Default              |  
页码:1,每页行数:16,总页数:1,总数量:2
提示:输入资产ID直接登录,二级搜索使用 // + 字段,如://192 上一页:b 下一页:n
搜索:

 

3.4 命令过滤器

创建命令过滤器

左侧权限管理下命令过滤,先点击上面命令组,点击创建
#这里点击命令 rm ssh bash   点击提交

再点击上方的命令过滤,点击创建
#用户可以点击属性筛选,点添加,用户组,点任意包含,选择组
#资产点击属性过滤(本身范围在当前组范围下),点任意包含,选择节点
#命令组选上面添加的命令组
#动作选拒绝    点提交

#注意刚定义的规则对正在连接命令端的的用户是不生效的,该用户退出命令端再登录就生效了
#但是,只要写入脚本给执行权限,还是能执行脚本。并且如果脚本定义别名,那这别名后面依然可以使用

 

3.5 会话管理

审计台,会话审计下,会话记录,可以看历史会话,可以看回放,下载视频
#下载下来的视频是tar包,需要工具才能播放,播放工具如下:
https://github.com/jumpserver/VideoPlayer/releases
#jumpserver官方出的,定制版播放器,把tar包扔进去就能播放

 

3.6 资产的批量导出和导入

如果很多机器,一台台添加太慢了,这里有批量导入的方法

左侧资产管理下资产列表,右面有导入导出按钮
#导出
#选中资产,点击导出,csv格式,仅导出选择项

#导入
#点击上方资产列表下的主机栏,点导入,点击下载模板CSV,在该模板上进行修改
#里面的内容组后面有id,不知道可从上面导出的csv文件里查(也可通过网页跳转地址查看对应信息)
#把修改完的csv文件拖入导入界面,点击导入,即可

#这时候导入的资产,缺少账号需要添加
#在导入的资产点击更新,在账号位置关联,点击模板账号,加入管理账号(特权账号),普通账号
这时被导入的资产普通账号就被自动创建出来了

登录开发账号,就可以连接新加入的资产了

 

标签:企业级,账号,root,JumpServer,堡垒,mysql,docker,jumpserver,data
From: https://www.cnblogs.com/ludingchao/p/18427914

相关文章

  • 开源|一款前后端分离设计的企业级快速开发平台,支持单体服务与微服务之间灵活切换
    前言当前软件开发面临诸多挑战,诸如开发效率低下、重复工作多、维护成-本高等问题,这些问题在一定程度上阻碍了项目的进展。针对这些痛点,我们迫切需要一款既能提升开发效率又能降低维护成-本的处理方案。由此,一款基于前后端分离设计的企业级快速开发平台应运而生,它不仅支持单体服务......
  • Hive企业级调优[7]——HQL语法优化之小文件合并
    目录HQL语法优化之小文件合并 优化说明 Map端输入文件合并Reduce端输出文件合并优化案例HQL语法优化之小文件合并 优化说明小文件合并优化主要分为两个方面:Map端输入的小文件合并以及Reduce端输出的小文件合并。 Map端输入文件合并合并Map端输入的小文件意味着......
  • Hive企业级调优[8]—— 其他优化
    目录 其他优化CBO优化 优化说明 优化案例 谓词下推 优化说明 优化案例 矢量化查询Fetch抓取 本地模式优化说明 优化案例并行执行 严格模式 其他优化CBO优化 优化说明CBO(CostBasedOptimizer),即基于成本的优化。在Hive中,成本模型考虑到了数据的......
  • linux运维之用户管理 堡垒机+普通用户sudo提权
    一、简介普通用户通过堡垒机登录linux服务器,不允许使用root用户登录堡垒机;普通用户登录后,限制普通用户使用一些命令,如禁止使用某些命令,仅允许使用部分命令等;普通用户不知道root密码,普通用户不能修改root密码;二、sudoers配置0.添加一个测试用户#添加用户useraddalibaby#设置密码......
  • 大模型企业级RAG应用优化(二):检索与生成阶段的8个必知技巧
    一、使用查询重写提高检索的精确性查询重写(也称为查询转换或查询分析等)已经成为RAG工作流的常见环节。当用户的查询不够明确或具体时,可以通过查询重写来分解或者细化问题,以提升检索与生成的准确性。因此,查询转换是一种“检索前”的处理步骤。一个常见的重写方案是HyDE(假设性文档嵌......
  • 大模型企业级RAG应用优化(一):数据索引阶段的8个必知技巧
    基于大模型的RAG应用,一个普遍的认识是:做原型很简单,投入生产很难为什么我的RAG应用很难按预期工作?在之前的文章中我们曾经陆续的对RAG应用优化做过零星与局部的探讨,如融合检索、查询转换、多模态处理、AgenticRAG等。接下来我们将结合之前的方法与实践,总结形成更完整的企业级RAG应......
  • 基于java手机游戏(堡垒)的设计与开发的计算机毕设源码+论文
    手机游戏(堡垒)的设计与开发摘要随着手机业务的迅速发展,手机游戏逐渐成为移动增值服务的兴奋点。本毕业设计就着眼于J2ME技术的应用,设计与开发一款探险类手机游戏(堡垒)。该堡垒游戏是基于J2ME开发的手机RPG游戏,采用midp2.0技术实现了菜单、地图、主角动作及怪物动作和AI等,主要通过精......
  • 验证从vmware企业级虚拟化迁移到pve系统
    今天已经验证了vmware企业级虚拟化迁移到pve系统中,感觉一切都非常的丝滑。比原来简单多了,步骤不繁琐,而且迁移完成后直接就可以开机。pve支棱起来了,vmware估计这次要危险了。添加esxi主机很简单这样就完事了,就可以访问esxi主机了这个按照你的esxi主机访问的用户名密码填写就可以了找......
  • 一套基于 Ant Design 和 Blazor 的开源企业级组件库
    前言今天大姚给大家分享一套基于AntDesign和Blazor的开源(MITLicense)、免费的企业级组件库(喜欢AntDesign风格的同学推荐使用):AntDesignBlazor。项目特性提炼自企业级中后台产品的交互语言和视觉风格。开箱即用的高质量Blazor组件,可在多种托管方式共享。支持基于WebAssembly......
  • Zabbix企业级应用案列
            随着业务的越发复杂,对软件系统的要求越来越高,这意味着我们需要随时掌控系统的运行情况。因此,对系统的实时监控以及可视化展示,就成了基础架构的必须能力。一、zabbix可视化1.Grafana简介        Grafana是一个开源的指标量监测和可视化工具,官方网......