一、jumpserver 安装部署
1、项目架构
2、jumpserver概述
Jumpserver是一款开源的堡垒机,可使系统的管理员和开发人员安全的连接到企业内部服务器上执行操作,并且支持大部分操作系统,是一款非常安全的远程连接工具
3、常见支持的系统
CentOS, RedHat, Fedora, Amazon LinuxDebianSUSE, UbuntuFreeBSD其他ssh协议硬件设备
4、配置清单
主机名称 IP地址 最低配置 角色
jumpserver(ecs-proxy) 192.168.1.252 2CPU/4G内存 堡垒机
harbor 192.168.1.30 2CPU/4G内存 资产
test 192.168.1.101 2CPU/4G内存 资产
nacos 192.168.1.13 2CPU/4G内存 资产
rocketmq 192.168.1.14 2CPU/4G内存 资产
5、安装部署
在跳板机1.252安装 jumpserver
[root@ecs-proxy ~]# echo jumpserver > /etc/hostname
[root@ecs-proxy ~]# hostname jumpserver #退出重新登录
配置docker的yum源, 安装docker
[root@jumpserver ~]# cp -r s4/docker/ /var/localrepo/
[root@jumpserver ~]# createrepo --update /var/localrepo/
[root@jumpserver ~]# vim /etc/yum.repos.d/local.repo
[local]
name=local
baseurl=http://192.168.1.252/localrepo/
enabled=1
gpgcheck=0
[root@jumpserver ~]# yum -y install docker-ce
[root@jumpserver ~]# systemctl enable --now docker
安装jumpserver
[root@jumpserver ~]# cd s4/
[root@jumpserver s4]# tar -xf project.tar.xz
[root@jumpserver s4]# cd project/
[root@jumpserver project]# tar -xf jumpserver-offline-installer-v2.28.6-amd64-179.tar.gz
[root@jumpserver project]# mv jumpserver-offline-installer-v2.28.6-amd64-179 /usr/local/jumpserver
[root@jumpserver project]# cd /usr/local/jumpserver/
[root@jumpserver jumpserver]# ./jmsctl.sh install #一路回车,只需要更改端口
1. 检查配置文件
配置文件位置: /opt/jumpserver/config
/opt/jumpserver/config/config.txt [ √ ]
/opt/jumpserver/config/nginx/cert/server.crt [ √ ]
/opt/jumpserver/config/nginx/cert/server.key [ √ ]
完成
>>> 安装配置 Docker
1. 安装 Docker
完成
2. 配置 Docker
是否需要支持 IPv6? (y/n) (默认为 n):
完成
3. 启动 Docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
完成
>>> 加载 Docker 镜像
...
完成
>>> 安装配置 JumpServer
1. 配置加密密钥
SECRETE_KEY: YjYxYWMyZmUtMzI4NS00YmZhLTg1NWUtN2MwZjY1MWZhMTMw
BOOTSTRAP_TOKEN: YjYxYWMyZmUtMzI4NS00YmZh
完成
2. 配置持久化目录
是否需要自定义持久化存储, 默认将使用目录 /opt/jumpserver? (y/n) (默认为 n):
完成
3. 配置 MySQL
是否使用外部 MySQL? (y/n) (默认为 n):
完成
4. 配置 Redis
是否使用外部 Redis? (y/n) (默认为 n):
完成
5. 配置对外端口
是否需要配置 JumpServer 对外访问端口? (y/n) (默认为 n): y
JumpServer web port (default 80): 81
JumpServer ssh port (default 2222):
完成
6. 初始化数据库
[+] Running 4/4
⠿ Network jms_net Created 0.1s
⠿ Container jms_redis Healthy 11.0s
⠿ Container jms_mysql Healthy 11.0s
⠿ Container jms_core Started 11.2s
2023-07-04 01:52:27 Collect static files
2023-07-04 01:52:27 Collect static files done
2023-07-04 01:52:27 Check database structure change ...
2023-07-04 01:52:27 Migrate model change to database ...
...
Applying users.0040_alter_user_source... OK
After migration, update builtin role permissions
完成
>>> 安装完成了
1. 可以使用如下命令启动, 然后访问
cd /usr/local/jumpserver
./jmsctl.sh start
2. 其它一些管理命令
./jmsctl.sh stop
./jmsctl.sh restart
./jmsctl.sh backup
./jmsctl.sh upgrade
更多还有一些命令, 你可以 ./jmsctl.sh --help 来了解
3. Web 访问
http://192.168.1.252:81
默认用户: admin 默认密码: admin
4. SSH/SFTP 访问
ssh -p2222 admin@192.168.1.252
sftp -P2222 admin@192.168.1.252
5. 更多信息
我们的官网: https://www.jumpserver.org/
我们的文档: https://docs.jumpserver.org/
[root@jumpserver jumpserver]# ./jmsctl.sh start #启动jumpserver
[+] Running 8/8
⠿ Container jms_mysql Healthy 0.6s
⠿ Container jms_redis Healthy 0.6s
⠿ Container jms_core Healthy 14.3s
⠿ Container jms_web Started 15.6s
⠿ Container jms_koko Started 15.5s
⠿ Container jms_lion Started 15.3s
⠿ Container jms_celery Started 15.1s
⠿ Container jms_magnus Started 17.8s
[root@jumpserver jumpserver]# ./jmsctl.sh status #查看状态
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
jms_celery jumpserver/core:v2.28.6 "./entrypoint.sh sta…" celery 26 seconds ago Up 12 seconds (healthy) 8070/tcp, 8080/tcp
jms_core jumpserver/core:v2.28.6 "./entrypoint.sh sta…" core 26 seconds ago Up 25 seconds (healthy) 8070/tcp, 8080/tcp
jms_koko jumpserver/koko:v2.28.6 "./entrypoint.sh" koko 26 seconds ago Up 12 seconds (healthy) 0.0.0.0:2222->2222/tcp, :::2222->2222/tcp, 5000/tcp
jms_lion jumpserver/lion:v2.28.6 "./entrypoint.sh" lion 26 seconds ago Up 12 seconds (healthy) 4822/tcp, 8081/tcp
jms_magnus jumpserver/magnus:v2.28.6 "./entrypoint.sh" magnus 26 seconds ago Up 9 seconds (health: starting) 0.0.0.0:30000-30100->30000-30100/tcp, :::30000-30100->30000-30100/tcp
jms_mysql jumpserver/mariadb:10.6 "docker-entrypoint.s…" mysql 2 minutes ago Up 2 minutes (healthy) 3306/tcp
jms_redis jumpserver/redis:6.2 "docker-entrypoint.s…" redis 2 minutes ago Up 2 minutes (healthy) 6379/tcp
jms_web jumpserver/web:v2.28.6 "/docker-entrypoint.…" web 26 seconds ago Up 12 seconds (healthy) 80/tcp, 0.0.0.0:81->81/tcp, :::81->81/tcp
二、jumpserver使用
1、访问jumpserver
没有公网IP需要购买,并进行绑定才能正常访问
http://122.9.105.65:81
访问页面如下:用户名admin,密码admin登录,会让修改密码,使用新密码登录即可
2、jumpserver配置用户
在jumpserver里面两种用户:
1、用户管理里面的用户:这个用户指堡垒机账号, 就是你能用这个账号登录web页面, 登录跳板机服务器的用户
2、资产管理里面的系统用户:
它又分为 特权用户 和 普通用户
特权用户: 是资产已存在的, 并且拥有 高级权限 的系统用户,如root用户, JumpServer 使用该用户来 `推送系统用户`、`获取资产硬件信息` 等;
普通用户:可以在资产上预先存在,也可以由 特权用户 来自动创建
系统用户:是JumpServer 登录资产时使用的账号
创建登录jumpserver的用户operation
用户创建好之后,需要使用这个用户进行资产的管理,但是我们还没有资产。资产已经创建好harbor,test,nacos,rocketmq
找到资产管理,点击系统用户
系统用户中的特权用户是资产(被控服务器)上的 root,或拥有 NOPASSWD: ALL sudo 权限的用户, JumpServer 使用该用户来 `推送系统用户`、`获取资产硬件信息` 等
系统用户中的普通用户是 JumpServer 跳转登录资产时使用的用户,可以理解为登录资产的系统用户,创建普通用户op,使用密码登录,自动推送选择所有权限ALL
系统用户创建完成之后,还没有资产,现在需要添加资产(此资产就是后面需要使用jumpserver管理的机器)
3、测试
此时退出admin管理用户,使用operation用户登录,测试web用户的资产
点击web终端,可以正常登陆资产,使用sudo -s切换到root用户,也可以使用sudo提权执行命令
如果jumpserver有多个用户,且授权不同的用户管理不同的资产,此时每个用户只能看到自己的资产,别人的资产是看不到的
4、文件上传下载
配置完成后,jumpserver使用命令行通过operation用户连接,可以看到资产,此时也可以在jumpserver主机通过命令行连接
[root@jumpserver ~]# ssh -p2222 operation@192.168.1.252
运维人员, JumpServer 开源堡垒机
1) 输入 部分IP,主机名,备注 进行搜索登录(如果唯一).
2) 输入 / + IP,主机名,备注 进行搜索,如:/192.168.
3) 输入 p 进行显示您有权限的主机.
4) 输入 g 进行显示您有权限的节点.
5) 输入 d 进行显示您有权限的数据库.
6) 输入 k 进行显示您有权限的Kubernetes.
7) 输入 r 进行刷新最新的机器和节点信息.
8) 输入 s 进行中英日语言切换.
9) 输入 h 进行显示帮助.
10) 输入 q 进行退出.
Opt> p
输入p,可以看到operation用户管理的资产
输入对应id,可以直接进入到资产里面,sudo -s切换到root用户,直接进行配置即可
[Host]> 2
开始连接到 普通用户op@192.168.1.101 0.1
Welcome to Huawei Cloud Service
[op@test ~]$ sudo -s
[root@test op]#
实验要求
按照添加harbor和test 主机的方式,同样把nacos 和 rocketmq主机通过operation堡垒机用户连接可以看到这两个资产,使用op系统用户(创建的普通用户)连接这两台主机