项目拓扑图
一 JumpServer
1 概述
JumpServer是一款开源的堡垒机,可使系统的管理员和开发人员安全的连接到企业内部服务器上执行操作,并且支持大部分操作系统,是一款非常安全的远程连接工具
2 常见支持系统
CentOS、RedHat、Fedora,、Amazon LinuxDebianSUSE、UbuntuFreeBSD其他ssh协议硬件设备
3 优势
开源:零门槛,线上快速获取和安装、
无插件:仅需浏览器,极致 Web Terminal 使用体验
多云支持:一套系统,同时管理不同云上资产
分布式:轻松支持大规模并发访问
云端存储:审计录像存放在云端,永不丢失
多租户:一套系统,多个子公司和部门同时使用
安全审计 4A 规范
身份验证/Authentication:防止身份冒用和复用
授权控制/Authorization:防止内部误操作和权限滥用
账号管理/Accounting:人员和资产的管理
安全审计/Auditing:追溯的保障和事故分析的依据
4 安装部署
配置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
完成
3. 启动 Docker
完成
>>> 加载 Docker 镜像
...
完成
>>> 安装配置 JumpServer
1. 配置加密密钥
SECRETE_KEY: YjYxYWMyZmUtMzI4NS00YmZhLTg1NWUtN2MwZjY1MWZhMTMw
BOOTSTRAP_TOKEN: YjYxYWMyZmUtMzI4NS00YmZh
完成
2. 配置持久化目录
是否需要自定义持久化存储, 默认将使用目录 /data/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
http://192.168.88.7:81
访问页面如下:用户名admin,密码admin登录,会让修改密码,使用新密码登录即可
2 jumpserver配置用户
在jumpserver里面两种用户:
1、用户管理里面的用户:这个用户指堡垒机账号, 就是你能用这个账号登录web页面, 登录跳板机服务器的用户
2、资产管理里面的系统用户:
它又分为 特权用户 和 普通用户
特权用户: 是资产已存在的, 并且拥有 高级权限 的系统用户,如root用户, JumpServer 使用该用户来 `推送系统用户`、`获取资产硬件信息` 等;
普通用户:可以在资产上预先存在,也可以由 特权用户 来自动创建
系统用户:是JumpServer 登录资产时使用的账号
创建登录jumpserver的用户weiwei
用户创建好之后,需要使用这个用户进行资产的管理
找到资产管理,点击系统用户
系统用户中的特权用户是资产(被控服务器)上的 root,或拥有 NOPASSWD: ALL sudo 权限的用户, JumpServer 使用该用户来 `推送系统用户`、`获取资产硬件信息` 等
系统用户中的普通用户是 JumpServer 跳转登录资产时使用的用户,可以理解为登录资产的系统用户,创建普通用户vv,使用密码登录,自动推送选择所有权限ALL
系统用户创建完成之后,还没有资产,现在需要添加资产(此资产就是后面需要使用jumpserver管理的机器)
资产创建完成之后,需要授权给哪个用户登录进行管理
3、测试
此时退出admin管理用户,使用weiwei用户登录,测试web用户的资产
点击web终端,可以正常登陆资产,使用sudo -s切换到root用户,也可以使用sudo提权执行命令
如果jumpserver有多个用户,且授权不同的用户管理不同的资产,此时每个用户只能看到自己的资产,别人的资产是看不到的
配置完成后,jumpserver使用命令行通过weiwei用户连接,可以看到资产,此时也可以在jumpserver主机通过命令行连接
[root@fortress ~]# ssh -p2222 weiwei@192.168.88.7
weiwei@192.168.88.7's password:
运维人员, 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>
Opt> p
ID | 主机名 | IP | 平台 | 组织 | 备注
--------+----------------------------------------------------+-------------------------+--------------------+-------------------+------------------
1 | zabbix | 192.168.88.21 | Linux | Default |
页码:1,每页行数:41,总页数:1,总数量:1
提示:输入资产ID直接登录,二级搜索使用 // + 字段,如://192 上一页:b 下一页:n
搜索:
[Host]>
输入对应id,可以直接进入到资产里面,sudo -s切换到root用户,直接进行配置即可
[Host]> 1
复用SSH连接(zabbix-test特权用户@192.168.88.21)[连接数量: 3]
Last login: Thu Nov 9 11:17:43 2023 from 192.168.88.7
[root@zabbix ~]#