飞致云旗下的jumpserver开源堡垒机的部署学习

硬件配置: 2核,4G内存,50G磁盘(最低配置要求)

 

准备三台可以访问互联网的 64 位 Linux 主机 一个master 两个node(node节点内存可适当的放宽)#可以集群配置

基本配置: 最小化配置,ssh ,ntp 

|  jumpserver-master   |   192.168.197.213   | 主管理节点(运维使用) |
| :------------------: | :-----------------: | :--------------------: |
| **jumpserver-node1** | **192.168.197.214** | **被管理节点(开发)** |
| **jumpserver-node2** | **192.168.197.215** | **被管理节点(测试)** |

堡垒机的部署分为两种方式:

在线安装

curl -sSL https://resource.fit2cloud.com/jumpserver/jumpserver/releases/latest/download/quick_start.sh | bash

离线安装

我们以v3版本来进行:

cd /opt
wget https://resource.fit2cloud.com/jumpserver/installer/releases/download/v3.4.1/jumpserver-installer-v3.4.1.tar.gz
tar -xf jumpserver-offline-installer-v3.4.1-amd64.tar.gz
cd jumpserver-offline-installer-v3.4.1-amd64

# 根据需要修改配置文件模板, 如果不清楚用途可以跳过修改
cat config-example.txt   #可以尝试直接执行脚本的方式自动的进行配置
# JumpServer configuration file example.
#
# 如果不了解用途可以跳过修改此配置文件, 系统会自动填入
# 完整参数文档 https://docs.jumpserver.org/zh/master/admin-guide/env/
​
################################## 镜像配置 ###################################
#
# 国内连接 docker.io 会超时或下载速度较慢, 开启此选项使用华为云镜像加速
# 取代旧版本 DOCKER_IMAGE_PREFIX
#
# DOCKER_IMAGE_MIRROR=1
​
################################## 安装配置 ###################################
#
# JumpServer 数据库持久化目录, 默认情况下录像、任务日志都在此目录
# 请根据实际情况修改, 升级时备份的数据库文件(.sql)和配置文件也会保存到该目录
#
VOLUME_DIR=/data/jumpserver
​
# 加密密钥, 迁移请保证 SECRET_KEY 与旧环境一致, 请勿使用特殊字符串
# (*) Warning: Keep this value secret.
# (*) 勿向任何人泄露 SECRET_KEY
#
SECRET_KEY=
​
# 组件向 core 注册使用的 token, 迁移请保持 BOOTSTRAP_TOKEN 与旧环境一致,
# 请勿使用特殊字符串
# (*) Warning: Keep this value secret.
# (*) 勿向任何人泄露 BOOTSTRAP_TOKEN
#
BOOTSTRAP_TOKEN=
​
# 日志等级 INFO, WARN, ERROR
#
LOG_LEVEL=ERROR
​
# JumpServer 容器使用的网段, 请勿与现有的网络冲突, 根据实际情况自行修改
#
DOCKER_SUBNET=192.168.250.0/24
​
# ipv6 nat, 正常情况下无需开启
# 如果宿主不支持 ipv6 开启此选项将会导致无法获取真实的客户端 ip 地址
#
USE_IPV6=0
DOCKER_SUBNET_IPV6=fc00:1010:1111:200::/64
​
################################# MySQL 配置 ##################################
# 外置 MySQL 需要输入正确的 MySQL 信息, 内置 MySQL 系统会自动处理
#
DB_HOST=mysql
DB_PORT=3306
DB_USER=root
DB_PASSWORD=
DB_NAME=jumpserver
​
# 如果外置 MySQL 需要开启 TLS/SSL 连接, 参考 https://docs.jumpserver.org/zh/master/install/install_security/#ssl
#
# DB_USE_SSL=True
​
################################# Redis 配置 ##################################
# 外置 Redis 需要请输入正确的 Redis 信息, 内置 Redis 系统会自动处理
#
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=
​
# 如果使用外置 Redis Sentinel, 请手动填写下面内容
#
# REDIS_SENTINEL_HOSTS=mymaster/192.168.100.1:26379,192.168.100.1:26380,192.168.100.1:26381
# REDIS_SENTINEL_PASSWORD=your_sentinel_password
# REDIS_PASSWORD=your_redis_password
# REDIS_SENTINEL_SOCKET_TIMEOUT=5
​
# 如果外置 Redis 需要开启 TLS/SSL 连接, 参考 https://docs.jumpserver.org/zh/master/install/install_security/#redis-ssl
#
# REDIS_USE_SSL=True
​
################################## 访问配置 ###################################
# 对外提供服务端口, 如果与现有服务冲突请自行修改
#
HTTP_PORT=80
SSH_PORT=2222
MAGNUS_MYSQL_PORT=33061
MAGNUS_MARIADB_PORT=33062
MAGNUS_REDIS_PORT=63790
​
################################# HTTPS 配置 #################################
# 参考 https://docs.jumpserver.org/zh/master/admin-guide/proxy/ 配置
#
# HTTPS_PORT=443
# SERVER_NAME=your_domain_name
# SSL_CERTIFICATE=your_cert
# SSL_CERTIFICATE_KEY=your_cert_key
#
​
# Nginx 文件上传下载大小限制
#
CLIENT_MAX_BODY_SIZE=4096m
​
################################## 组件配置 ###################################
# 组件注册使用, 默认情况下向 core 容器注册, 集群环境需要修改为集群 vip 地址
#
CORE_HOST=http://core:8080
PERIOD_TASK_ENABLED=True
​
# Core Session 定义,
# SESSION_COOKIE_AGE 表示闲置多少秒后 session 过期,
# SESSION_EXPIRE_AT_BROWSER_CLOSE=true 表示关闭浏览器即 session 过期
#
# SESSION_COOKIE_AGE=86400
SESSION_EXPIRE_AT_BROWSER_CLOSE=True
​
# Lion 开启字体平滑, 优化体验
#
JUMPSERVER_ENABLE_FONT_SMOOTHING=True
​
################################# XPack 配置 #################################
# XPack 包, 开源版本设置无效
#
RDP_PORT=3389
MAGNUS_POSTGRESQL_PORT=54320
MAGNUS_ORACLE_PORTS=30000-30030
​
################################## 其他配置 ##################################
# 终端使用宿主 HOSTNAME 标识, 首次安装自动生成
#
SERVER_HOSTNAME=${HOSTNAME}
​
# 当前运行的 JumpServer 版本号, 安装和升级完成后自动生成
#
CURRENT_VERSION=
# 安装
./jmsctl.sh install
​
# 启动
./jmsctl.sh start
cd jumpserver-offline-release-v3.4.1-amd64
​
# 启动
./jmsctl.sh start
​
# 停止
./jmsctl.sh down
​
# 卸载
./jmsctl.sh uninstall
​
# 帮助
./jmsctl.sh -h

会拉取镜像,这个时间会比较长

#可以的话在拉取完成之后为了方便下次的部署,将相关的镜像全部都打包在一个tar文件中,并进行堡垒机的部署操作

注意:在使用离线安装初始化部署的时候会只启动redis和mysql等服务,并不会将所有的服务都启动起来,需要我们手动启动bash jmsctl.sh start

访问:

地址: http://服务器IP地址:<服务运行端口>
用户名: admin
密码: admin

 🈂️注意:如果说安装完成之后,或是之前想要修改一些堡垒机的参数比如说是密码,账号,端口号,挂载路径(默认是在/data/jumpserver目录)

因为我们会存储一些用户操作的录像所有需要这个目录搭载到的地方越大越好)等等可以在cat /opt/jumpserver/config/config.txt文件中进行修改,修改完成后./jmsctl.sh stop/restart

jumpserver使用

首先我们部署完成并登录堡垒机之后的第一件事,就在基本设置中设置一下当前站点URL,强烈推荐域名的方式设置URL

🈂️ 因为以后在进行资产管理给其他的用户创建账号的时候,会往对方邮箱里面发送一个当前站点的url,这个时候如果基本设置中的url是localhost的话其他人是登录不上去的

 

配置堡垒机邮箱

以网易邮箱为例子:

首先注册一个属于自己的邮箱账号,开启POP3/SMTP服务,获取授权密码

 

邮件服务器设置

 

  

用户类型以及系统用户的使用

权限划分

| 部门 | 部门分组  |  平台登录用户   | 系统用户 |
| :--: | :-------: | :-------------: | :------: |
| 研发 | dev1 dev2 | zmxdev1 zmxdev2 |   dev    |
| 测试 |   test    |     zmxtest     |   test   |
| 运维 |    ops    |     zmxops      |   ops    |

登录jumpserver用户跟系统用户是一致的在v2版本中无法实现

🈂️ 注意:平台登录用户与系统用户是不一致的,但在v3版本中是可以实现这样的一个方式,但是缺点是增加的运维的时间复杂

jumpserver支持三种登录用户
​
1. 普通用户
2. 系统审计员
3. 系统管理员

新建用户组(部门分组)

(依据上面的权限划分)

 

 

创建平台用户并加入到对应的部门分组中

 

 这边因为我们没有可以用的邮箱,所有我们配置一下密码先 🈂️ 其他内一栏信息可以不填写

点击保存填写

依据权限划分将所需要的用户创建完整

补充:这里我们不用MFA(第三方登录用户),是因为如果启用的话,要使用谷歌的工具去扫码,获取动态密码

在创建最后一个运维ops用户的时候,我们将创建用户的邮箱设置成真实可用的邮箱进行一个验证操作 !

 验证成功!

 点击设置密码,进行重置: 🈂️ 重置完成后登录查看

 

 最后的系统管理员的用户列表:

添加资产

在资产管理--》资产列表---》资产树中创建各个部门节点

 

 让后在各个资产树种资产节点里面添加需要管理的资产

 

添加资产

(那在v2版本的时候添加资产这边会有一个特权用户的设置 ,我们需要创建一个用于root权限的特权用户来帮助我们第一次添加资产之后,对资产进行一个初始化机器的时候需要用到,为后面的系统用户的推送提供依据)

 其他的资产节点,依据集群配置进行补充完成!

🈂️ 注意:目前还不能登录我们添加的资产,因为我们没有给对应的资产设置系统用户和授权

此时,登录运维ops用户,还没有分配任何的资产,是因为我们没有为其进行授权

创建资产授权规则

(使我们登录任何用户都有对应管理的资产)

 

 点击提交

再次登录ops用户就可以看到授权管理的资产

依次将其他部门的资产补充完整!!!

此时,虽然登录ops用户可以看到我们为其授权管理的资产,但是我们不能对资产进行登录操作

是因为我们没有为其创建系统用户

 这里的 系统用户是指我们在linux服务器中使用到的系统用户~

首先以ops运维为例子:在对应的资产里面创建一个用户并修改密码 (其他的资产可以依次进行)
[root@jumpserver-master ~]# useradd zmxops
[root@jumpserver-master ~]# echo "000000" |passwd --stdin zmxops
Changing password for user zmxops.
passwd: all authentication tokens updated successfully.

 点击添加

再次登录ops之后就可以看到系统用户了,也可以正常连接

🈂️ 如果是v2版本的话,还需要再授权上面添加新添加的系统用户才可以,v3版本可以自动识别all

 

 除了上面的一些操作,我们还需要给一些指定的资产赋予他们特权用户,帮助完成一些root权限的使用,并借助特权用户完成系统账号对对应服务的推送,让我们不需要通过跳板机进入资产内部创建系统用户

那麽怎么给资产添加一个特权用户呢?

在v3版本上:

 点击创建!

 

 特权用户的使用:

 

 

 其他的资产也可以直接使用,方便了很多

🈂️ 上面创建的dev特权用户只是一个演示作用,建议直接使用root用户进行添加,或者在每个资产的初始阶段,创建并赋予一些root的权限

添加特权用户

让后我们可以在jumpserver-wed页面直接在资产上面创建系统用户,让后借助于特权用户通过playbook的方式进行推送创建对应的用户和密码

首先以我们创建并添加到jumpserver-master的特权账号root为例:

进入对应的资产---》账号列表----》root 进行测试账号可连接性

 🈂️ 也建议在账号模板创建的特权用户,被资产添加之后就行一个连通性测试

让后创建一个随机名字的系统用户进行测试:

 

 让后进行账号推送:

 

 

 

 

资产的会话记录以及命令录像都查审计台查看

注意🈂️ 磁盘一定要大不然,审计记录就无法保存,也就无法看到结果

如果我们不想让admin管理员用户也操作审计的话,可以在用户列表中创建一个专属用户,让后将系统角色进行修改

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要连接JumpServer开源堡垒机,你需要使用Java SSH库来实现SSH连接。在Java中,有很多SSH库可供选择,例如JSch和SSHJ。 以下是使用SSHJ库连接JumpServer开源堡垒机的步骤: 1. 导入SSHJ库 你需要将SSHJ库添加到你的Java项目中。你可以从Maven Central Repository下载库的jar文件,或者使用Maven或Gradle等构建工具引入该库。 2. 创建SSH客户端 使用SSHJ库创建一个SSH客户端对象。这个对象将用于建立与远程服务器的SSH连接。 ```java SSHClient ssh = new SSHClient(); ssh.loadKnownHosts(); // 加载已知主机 ssh.connect("jumpserver-hostname"); // 连接JumpServer ``` 3. 认证登录JumpServer 在连接到JumpServer之前,你需要提供JumpServer的用户名和密码进行认证。可以使用以下代码进行身份验证: ```java ssh.authPassword("jumpserver-username", "jumpserver-password"); ``` 4. 建立到目标主机的SSH连接 使用SSHJ库建立到目标主机的SSH连接。你需要提供目标主机的IP地址、端口号、用户名和密码进行认证。 ```java SSHTarget target = new SSHTarget("target-hostname", "target-username", "target-password"); Session session = ssh.startSession(); session.allocateDefaultPTY(); // 分配默认的伪终端 session.authPassword(target.getUser(), target.getPassword()); // 认证登录目标主机 session.openForwardedTcpipChannel(target.getHost(), target.getPort()); // 建立SSH通道 ``` 5. 关闭SSH连接 最后,你需要关闭SSH连接,包括与JumpServer和目标主机之间的连接。 ```java session.close(); // 关闭与目标主机的连接 ssh.disconnect(); // 关闭与JumpServer的连接 ``` 以上是使用SSHJ库连接JumpServer开源堡垒机的基本步骤。你可以使用类似的代码在Java中连接其他SSH服务器。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值