
主机安全防护之JumpServer
主机安全防护之JumpServer
1、什么是跳板机和堡垒机?
1.1 跳板机和堡垒机
1)跳板机
属于内控堡垒机范畴,是一种用于单点登陆的主机应用系统。跳板机就是一台服务器,维护人员在维护过程中,首先要统一登录到这台服务器上,然后从这台服务器再登录到目标设备进行维护。但跳板机没有实现对运维人员操作行为的控制和审计,此外,跳板机存在严重的安全风险,一旦跳板机系统被攻入,则将后端资源风险完全暴露无遗。
跳板机应用软件:OpenVPN服务器,一旦通过OpenVPN连接公司内网服务器,可以对内网服务器做任何操作
2)堡垒机
在之前的发展过程中,人们逐渐认识到跳板机的不足,需要更新,更好的安全技术理念来实现运维操作管理。 堡垒机开始以独立的产品形态被广泛部署,有效降低了运维操作风险,使得运维操作管理变得更简单、更安全。能满足角色管理与授权审批、信息资源访问控制、操作记录和审计、系统变更和维护控制要求,并生成一 些统计报表配合管理规范,来不断提升IT内控的合规性的产品
堡垒机4A功能:身份鉴别,账号管理,权限控制,安全审计
1.2 JumpServer 简介
JumpServer 是全球首款完全开源的堡垒机, 使用 GNU GPL v2.0 开源协议, 是符合 4A 的专业运维审计 系统。为互联网企业提供了认证,授权,审计,自动化运维等功能
JumpServer 使用 Python / Django 进行开发,遵循 Web 2.0 规范, 配备了业界领先的 Web Terminal 解决方案,,交互界面美观,用户体验好
JumpServer 采纳分布式架构, 支持多机房跨区域部署,中心节点提供 API,各机房部署登录节点,,可横向扩展,无并发访问限制。
JumpServer 现已支持管理 SSH、 Telnet、 RDP、 VNC 协议资产
官方地址: http://www.jumpserver.org/
github项目: https://github.com/jumpserver
JumpServer项目演示:https://demo.jumpserver.org/core/auth/login/
1.3 JumpServer 特点
官方介绍:https://docs.jumpserver.org/zh/master/
- 开源:零门槛,线上快速获取和安装;
- 分布式:轻松支持大规模并发访问;
- 无插件:仅需浏览器,极致的 Web Terminal 使用体验;
- 多云支持:一套系统,同时管理不同云上面的资产;
- 云端存储:审计录像云端存储,永不丢失;
- 多租户:一套系统,多个子公司和部门同时使用;
- 多应用支持:数据库,Windows远程应用,Kubernetes。
2 安装 JumpServer
2.1 安装环境说明
JumpServer 环境要求:
- 硬件配置:2个CPU核心,4G 内存,50G 硬盘(最低)
- 操作系统:Linux 发行版 x86_64
- python:3.6+
- 数据库:MySQL >=5.7 或者 mariadb >= 10.2,==数据库编码要求 uft8==
- 缓存数据库:redis >= 6.0
2.2 安装方法介绍
官方提供了多种安装方法
- 手动部署:一步一步实现
- 极速部署:资产数量不多,或者测试体验的用户请使用本脚本快速部署
- 编码部署:https://jumpserver.readthedocs.io/zh/master/dev/build/
- 容器部署: 基于docker 实现
- 分布式部署: 适用大型环境
JumpServer新版本部署官方文档:
jumpserver 1.4.8版本部署官方文档
2.3 基于容器部署JumpServer
2.3.1 Ubuntu部署docker
# step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安装GPG证书
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# Step 3: 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
# Step 4: 更新并安装Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce
# Step 5: 申请阿里云镜像加速地址,加入docker配置仓库文件
cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": ["https://n0g7070z.mirror.aliyuncs.com"]
}
EOF
# Step 6: ubuntu安装docker默认自动启动,加速配置生效需重启docker
systemctl restart docker
2.3.2 部署 MySQL服务
2.3.2.1 下载 MySQL 镜像查看默认配置
下载MySQL镜像并运行, 查看当前默认配置不符合JumpServer安装要求
#拉取mysql5.7.30镜像启动
docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=jumpserver -e MYSQL_USER=jumpserver -e MYSQL_PASSWORD=123456 -d -p 3306:3306 mysql:5.7.30
MYSQL_ROOT_PASSWORD=123456 #设置数据库root用户密码
MYSQL_DATABASE=jumpserver #创建JumpServer数据库
MYSQL_USER=jumpserver #创建JumpServer数据库用户
MYSQL_PASSWORD=123456 #设置JumpServer用户的密码
#查看默认的MySQL容器配置不符合jumpserver要求
[root@ubuntu ~ ]# docker exec -it mysql bash
root@14454b2f5c18:/# mysql -uroot -p123456
#进入数据库,查看创建的JumpServer数据库使用的latin1字符集
mysql> show create database jumpserver;
+------------+-----------------------------------------------------------------------+
| Database | Create Database |
+------------+-----------------------------------------------------------------------+
| jumpserver | CREATE DATABASE `jumpserver` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+------------+-----------------------------------------------------------------------+
1 row in set (0.00 sec)
#查看默认mysql数据库配置文件信息
root@14454b2f5c18:/# cat /etc/mysql/my.cnf
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
#mysql客户端配置文件
root@14454b2f5c18:/# cat /etc/mysql/conf.d/mysql.cnf
[mysql]
#mysql服务端配置文件
root@14454b2f5c18:/# grep '^[^#]' /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
symbolic-links=0
#删除默认配置mysql容器
[root@ubuntu ~ ]# docker rm mysql
mysql
[root@ubuntu ~ ]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2.3.2.2 宿主机准备MySQL配置文件
#创建相关配置目录
mkdir -p /etc/mysql/conf.d/
mkdir -p /etc/mysql/mysql.conf.d/
#准备mysql服务端配置文件
tee /etc/mysql/mysql.conf.d/mysqld.cnf <<EOF
[mysqld]
pid-file= /var/run/mysqld/mysqld.pid
socket= /var/run/mysqld/mysqld.sock
datadir= /var/lib/mysql
symbolic-links=0
#添加此行,指定字符集
character-set-server=utf8
EOF
#准备mysql客户端配置文件
tee /etc/mysql/conf.d/mysql.cnf <<EOF
[mysql]
#添加此行,指定字符集
default-character-set=utf8
EOF
#mysql配置目录结构
[root@ubuntu ~ ]# tree /etc/mysql/
/etc/mysql/
├── conf.d
│ └── mysql.cnf
└── mysql.conf.d
└── mysqld.cnf
2 directories, 2 files
2.3.2.3 启动 MySQL 容器
docker run -d -p 3306:3306 --name mysql --restart always \
-e MYSQL_ROOT_PASSWORD=123456 \
-e MYSQL_DATABASE=jumpserver \
-e MYSQL_USER=jumpserver \
-e MYSQL_PASSWORD=123456 \
-v /data/mysql:/var/lib/mysql \
-v /etc/mysql/mysql.conf.d/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf \
-v /etc/mysql/conf.d/mysql.cnf:/etc/mysql/conf.d/mysql.cnf mysql:5.7.30
2.3.2.4 验证数据库字符集
[root@ubuntu ~ ]# docker exec -it mysql bash
root@728e249bef69:/# mysql -uroot -p123456
mysql> status;
--------------
mysql Ver 14.14 Distrib 5.7.30, for Linux (x86_64) using EditLine wrapper
Connection id: 3
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.7.30 MySQL Community Server (GPL)
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8 #mysql数据库服务默认字符集
Db characterset: utf8 #mysql数据库默认字符集
Client characterset: utf8 #mysql数据库客户端默认字符集
Conn. characterset: utf8
UNIX socket: /var/run/mysqld/mysqld.sock
Uptime: 2 min 0 sec
Threads: 1 Questions: 9 Slow queries: 0 Opens: 105 Flush tables: 1 Open tables: 98 Queries per second avg: 0.075
--------------
mysql> show create database jumpserver;
+------------+---------------------------------------------------------------------+
| Database | Create Database |
+------------+---------------------------------------------------------------------+
| jumpserver | CREATE DATABASE `jumpserver` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+------------+---------------------------------------------------------------------+
1 row in set (0.00 sec)
2.3.3 部署redis 服务
2.3.3.1 启动redis服务
docker run -d -p 6379:6379 --name redis --restart always redis:6.2.5
2.3.3.2 验证redis服务
[root@ubuntu ~ ]# apt -y install redis
[root@ubuntu ~ ]# redis-cli -h 10.0.0.20
10.0.0.20:6379> info server
# Server
redis_version:6.2.5
2.2.4 部署 JumpServer
2.2.4.1 生成安全加密秘钥
JumpServer老版本文档有所说明:https://jumpserver.readthedocs.io/zh/1.4.8/dockerinstall.html
- 使用 root 身份输入
- 环境迁移和更新升级请检查 SECRET_KEY 是否与之前设置一致, 不能随机生成, 否则数据库所有加密的字段均无法解密
[root@ubuntu ~ ]# cat key.sh
#!/bin/bash
if [ ! "$SECRET_KEY" ]; then
SECRET_KEY=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 50`;
echo "SECRET_KEY=$SECRET_KEY" >> ~/.bashrc;
echo "SECRET_KEY=$SECRET_KEY";
else
echo "SECRET_KEY=$SECRET_KEY";
fi
if [ ! "$BOOTSTRAP_TOKEN" ]; then
BOOTSTRAP_TOKEN=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16`;
echo "BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN" >> ~/.bashrc;
echo "BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN";
else
echo "BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN";
fi
#执行key脚本
[root@ubuntu ~ ]# bash key.sh
SECRET_KEY=bN5LHNTajIExpNK6V2tiKUEDuwRyk7zNbq2Q8BP7RlR6hjYDhF
BOOTSTRAP_TOKEN=msMDu06JNTyD0Cj3
#保存到root家目录环境文件中
[root@ubuntu ~ ]# tail -n2 .bashrc
SECRET_KEY=bN5LHNTajIExpNK6V2tiKUEDuwRyk7zNbq2Q8BP7RlR6hjYDhF
BOOTSTRAP_TOKEN=msMDu06JNTyD0Cj3
2.2.4.2 启动 JumpServer容器
启动JumpServer容器参数说明
docker run --name jms_all -d \
-v /opt/jumpserver/core/data:/opt/jumpserver/data \
-v /opt/jumpserver/koko/data:/opt/koko/data \
-v /opt/jumpserver/lion/data:/opt/lion/data \
-p 80:80 \
-p 2222:2222 \
-e SECRET_KEY=xxxxxx \ #2.2.4.1步骤生成的SECRET_KEY
-e BOOTSTRAP_TOKEN=xxxxxx \ #2.2.4.1步骤生成的BOOTSTRAP_TOKEN
-e LOG_LEVEL=ERROR \ #日志记录级别
-e DB_HOST=192.168.x.x \ #连接mysql数据库地址 127.0.0.1默认以root用户连接
-e DB_PORT=3306 \ #连接mysql数据库端口
-e DB_USER=jumpserver \ #登录数据库用户
-e DB_PASSWORD=weakPassword \ #登录数据库用户的密码
-e DB_NAME=jumpserver \ #访问的数据库
-e REDIS_HOST=192.168.x.x \ #连接redis地址
-e REDIS_PORT=6379 \ #连接redis端口
-e REDIS_PASSWORD=weakPassword \ #连接redis密码
--privileged=true \
--restart always \
jumpserver/jms_all:v2.13.0 #拉取JumpServer版本
范例:拉取JumpServer v2.13.0
docker run --name jms_all -d \
-v /opt/jumpserver/core/data:/opt/jumpserver/data \
-v /opt/jumpserver/koko/data:/opt/koko/data \
-v /opt/jumpserver/lion/data:/opt/lion/data \
-p 80:80 \
-p 2222:2222 \
-e SECRET_KEY=bN5LHNTajIExpNK6V2tiKUEDuwRyk7zNbq2Q8BP7RlR6hjYDhF \
-e BOOTSTRAP_TOKEN=msMDu06JNTyD0Cj3 \
-e LOG_LEVEL=ERROR \
-e DB_HOST=10.0.0.20 \
-e DB_PORT=3306 \
-e DB_USER=jumpserver \
-e DB_PASSWORD=123456 \
-e DB_NAME=jumpserver \
-e REDIS_HOST=10.0.0.20 \
-e REDIS_PORT=6379 \
-e REDIS_PASSWORD='' \
--privileged=true \
jumpserver/jms_all:v2.13.0
范例:拉取JumpServer v2.5.3
docker run --name jms_all -d \
-v /opt/jumpserver/data:/opt/jumpserver/data \
-p 80:80 \
-p 2222:2222 \
--restart always \
-e SECRET_KEY=bN5LHNTajIExpNK6V2tiKUEDuwRyk7zNbq2Q8BP7RlR6hjYDhF \
-e BOOTSTRAP_TOKEN=msMDu06JNTyD0Cj3 \
-e DB_HOST=10.0.0.20 \
-e DB_PORT=3306 \
-e DB_USER=root \
-e DB_PASSWORD=123456 \
-e DB_NAME=jumpserver \
-e REDIS_HOST=10.0.0.20 \
-e REDIS_PORT=6379 \
-e REDIS_PASSWORD='' \
--privileged=true \
jumpserver/jms_all:v2.5.3
2.2.4.3 查看JumpServer日志
[root@ubuntu ~ ]# docker logs -f jms_all
2021-08-22 17:49:29 Check database connection ...
.........
Starting supervisor: supervisord.
Jumpserver ALL v2.13.0
官网 http://www.jumpserver.org
文档 http://docs.jumpserver.org
进入容器命令 docker exec -it jms_all /bin/bash
2.2.4.4 查看JumpServer数据库
#安装连接mysql客户端工具
apt install -y mariadb-client
[root@ubuntu ~ ]# docker exec -it mysql bash
root@728e249bef69:/# mysql -ujumpserver -p123456
mysql> use jumpserver;
mysql> show tables;
+----------------------------------------------+
| Tables_in_jumpserver |
+----------------------------------------------+
| acls_loginacl |
| acls_loginassetacl |
| acls_loginassetacl_reviewers |
| applications_application |
................
.................
| users_usergroup |
| users_userpasswordhistory |
+----------------------------------------------+
97 rows in set (0.00 sec)
2.2.4.5 查看服务端口
[root@ubuntu ~ ]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
95849afac25d jumpserver/jms_all:v2.13.0 "./entrypoint.sh" 9 minutes ago Up 9 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:2222->2222/tcp, :::2222->2222/tcp jms_all
83d39ad18955 redis:6.2.5 "docker-entrypoint.s…" About an hour ago Up About an hour 0.0.0.0:6379->6379/tcp, :::6379->6379/tcp redis
728e249bef69 mysql:5.7.30 "docker-entrypoint.s…" About an hour ago Up About an hour 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp mysql
[root@ubuntu ~ ]# netstat -lnt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:2222 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
2.2.4.6 浏览器访问JumpServer页面
http:<JumpServerIP>/ui/#
用户: admin
初始密码: admin, 登录成功需要修改密码
3 JumpServer 基本使用
3.1 ssh连接
可以用admin用户和修改过的新密码,,连接jumpserver的ssh端口2222/tcp进行连接访问
ssh admin@10.0.0.20 -p2222
3.2 修改JumpServer管理员密码
3.3 邮件设置
smtp主机: smtp.qq.com
smtp端口: 25(不加密); 465(SSL加密); 587(TLS加密)
smtp账户: 2724911443@qq.com
smtp密码: absfxbtjfmwfddfh(QQ邮箱授权码)
如果不能正常发送邮件,可能是redis缓存问题,重启redis容器即可
3.4 管理用户和用户组
3.4.1 创建用户
JumpServer 支持三种用户
- JumpServer管理员用户:用于管理JumpServer全部设置和资产
- JumpServer用户:用于登录JumpServer服务器,管理后端服务器
- JumpServer系统审计员:专门审查JumpServer用户操作
由于我们搭建JumpServer服务器内网地址,设置密码连接需要设置
http://localhost:8080/core/auth/password/reset/?token=2qUYm5xkCBhLzqPxNxVzrZ6THZPw64GFgvw6xfVwYoiGoHs0V1
#修改为JumpServer服务地址
http://10.0.0.20/core/auth/password/reset/?token=2qUYm5xkCBhLzqPxNxVzrZ6THZPw64GFgvw6xfVwYoiGoHs0V1
解决方法:修改JumpServer默认地址
相同方式再创建``xiaowang 和
tom`用户
JumpServer服务用户存放在数据库的 users_user
表中
mysql -ujumpserver -p123456 -h10.0.0.20
MySQL [(none)]> use jumpserver;
MySQL [jumpserver]> select username,name,email,role from users_user;
+-----------------------+-----------------------+--------------------------------------------+-------+
| username | name | email | role |
+-----------------------+-----------------------+--------------------------------------------+-------+
| [Lion]6600b91093bb | [Lion]6600b91093bb | [Lion]6600b91093bb@serviceaccount.local | App |
| xiaoxuan | xiaoxuan | 2724911443@qq.com | User |
| [Core] 4d66546ba071 | [Core] 4d66546ba071 | [Core] 4d66546ba071@serviceaccount.local | App |
| [KoKo]35327fe71acd | [KoKo]35327fe71acd | [KoKo]35327fe71acd@serviceaccount.local | App |
| xiaowang | xiaowang | xiaowang@qq.com | User |
| [KoKo]6600b91093bb | [KoKo]6600b91093bb | [KoKo]6600b91093bb@serviceaccount.local | App |
| tom | tom | tom@qq.com | User |
| [Gua]35327fe71acd | [Gua]35327fe71acd | [Gua]35327fe71acd@serviceaccount.local | App |
| [Core] 6600b91093bb | [Core] 6600b91093bb | [Core] 6600b91093bb@serviceaccount.local | App |
| [Celery] 6600b91093bb | [Celery] 6600b91093bb | [Celery] 6600b91093bb@serviceaccount.local | App |
| [Celery] 4d66546ba071 | [Celery] 4d66546ba071 | [Celery] 4d66546ba071@serviceaccount.local | App |
| admin | Administrator | admin@mycomany.com | Admin |
+-----------------------+-----------------------+--------------------------------------------+-------+
3.4.2 创建用户组
创建俩个用户组:运维组dev 和 测试组test
- 运维组成员:xiaoxuan,xiaowang
- 测试组成员:xiaowang,tom
==用户组信息查看==
MySQL [jumpserver]> select * from users_usergroup\G
*************************** 1. row ***************************
id: 4d535d5ef2974ba998bfabd385ab671f
name: dev
comment: Linux云计算高级工程师组
date_created: 2021-08-22 14:20:26.117013
created_by: Administrator
org_id: 00000000-0000-0000-0000-000000000002
*************************** 2. row ***************************
id: 7cf90814574d470fb0d4d6bfe10211e8
name: test
comment: 测试组
date_created: 2021-08-22 14:20:47.613088
created_by: Administrator
org_id: 00000000-0000-0000-0000-000000000002
*************************** 3. row ***************************
id: b0808e5234b2426a94fb365c11de31dd
name: Default
comment:
date_created: 2021-08-22 10:49:54.368637
created_by:
org_id: 00000000-0000-0000-0000-000000000002
==用户和用户组绑定情况信息==
MySQL [jumpserver]> select * from users_user_groups;
+----+----------------------------------+----------------------------------+
| id | user_id | usergroup_id |
+----+----------------------------------+----------------------------------+
| 3 | 36e5850cfa54405f94268dae73a23e7d | 4d535d5ef2974ba998bfabd385ab671f |
| 2 | b91ffc48f86447c08ec525c9b0a1c1a4 | 4d535d5ef2974ba998bfabd385ab671f |
| 5 | b91ffc48f86447c08ec525c9b0a1c1a4 | 7cf90814574d470fb0d4d6bfe10211e8 |
| 4 | c20e2c310b4947c6aa6c6395d8905efb | 7cf90814574d470fb0d4d6bfe10211e8 |
| 1 | f8d9ea65144044a887acced2034e3754 | b0808e5234b2426a94fb365c11de31dd |
+----+----------------------------------+----------------------------------+
3.4.3 禁止用户登录
假如 xiaowang
员工突然离职,离职审批未下来,但是我们需要先把 xiaowang
员工的JumpServer账号禁止登录,以防删跟跑路
==禁止用户操作==
==查看禁止的用户显示==
==禁用的用户将无法登录JumpServer服务==
3.4.4 启用用户多因子认证功能
多因子认证Multi-Factor Authentication (MFA) 是一种简单有效的最佳安全实践方法,用户要通过两种以上的认证机制之后,才能得到授权,使用计算机资源 。JumpServer 启用 MFA 后,用户登录网站时,系统将要求输入用户名和密码(第一安全要素),然后要求输入来自其 MFA 设备的动态验证码(第二安全要素),双因素的安全认证将为您的账户提供更高的安全保护
==开启xiaoxuan用户的双因子验证模式==
启用:用户双因子验证完成登录,该用户可以自行关闭验证
强制启用:只要JumpServer管理员才可以管理验证
==用户登录双因子验证步骤==
==重新登录==
3.4.5 创建系统审计员
==JumpServer系统审计员提供俩种界面:审计管理界面,用户界面==
3.5 资产管理
JumpServer 可以管理各种类型的资产
3.5.1 特权用户
- 系统用户 是JumpServer 登录资产时使用的账号,如 root
ssh root@host
,而不是使用该用户名登录资产(ssh admin@host)
; - 特权用户 是资产已存在的, 并且拥有 高级权限 的系统用户, 如 root 或 拥有
NOPASSWD: ALL
sudo 权限的用户。 JumpServer 使用该用户来推送系统用户
、获取资产硬件信息
等。 - 普通用户 可以在资产上预先存在,也可以由 特权用户 来自动创建。
==创建俩个资产管理用户==
Ubuntu系统资产用户
CentOS系统资产用户
3.5.2 创建资产
创建可以被jumpServer用户访问的后端服务器,数据库,路由器,交换机等资产
创建资产规划
Ubuntu系统后端服务IP地址: 10.0.0.21 10.0.0.22
CentOS系统后端服务IP地址: 10.0.0.7 10.0.0.8
==JumpServer通过特效用户登录后端服务器,获取后端服务器各种资产信息==
==如果后端服务器资源更新,比如:内存增加,磁盘容量增加,JumpServer服务不会实时监控更新资产信息,需要手动刷写资产信息,其中JumpServer通过ansible获取后端服务器信息==
==把其余后端服务器添加到JumpServer资产中==
3.5.3 创建节点实现资产分类
3.6 授权资产
3.6.1 创建系统用户
系统用户是通过JumpServer登录到后端服务器上操作的用户
3.6.2 系统用户关联资产
将前面创建的系统用户利用ansible推送到后端服务器并自动创建
==当测试资产服务器连接性,以特性用户通过ansible将系统用户推送到资产服务器上创建;如果关联资产时,资产服务器关机状态,无法及时推送系统用户,也可以手动推送系统用户创建==
在后端服务器验证用户创建成功
[root@centos7 ~ ]# id xuan
uid=1000(xuan) gid=1000(xuan) groups=1000(xuan)
[root@centos8 ~ ]# id xuan
uid=1000(xuan) gid=1000(xuan) groups=1000(xuan)
3.6.3 JumpServer用户授权资产
通过授权规则, 为JumpServer用户分配可以访问的资产
dev开发: xiaoxuan, tom 资产:centos节点(Centos8 centos7)
linux运维: xiaoxuan, xiaowang 资产: default节点
3.6.4 测试登录查看资产
以 tom
用户登录JumpServer的界面,查看可管理资产
以 xiaoxuan
用户登录JumpServer的界面,查看可管理资产
3.6.5 管理资产
方法一:批量管理资产主机
方法二:JumpServer提供web界面终端管理器,对每个资产单独管理
3.6.6 JumpServer资产服务器上传下载文件
==通过JumpServer对资产服务器上传文件数据,默认上传目录为/tmp目录==
3.6.7 SSH管理资产
ssh -p2222 <JumpServer_user>@<JumpServer_IP>
3.7 JumpServer资产会话管理
JumpServer服务提供以管理员和安全审计员以在线监控JumpServer用户对资产服务器上命令操作,并把管理命令过程录像恢回放查看功能
3.7.1 在线监控会话操作
会话管理界面:可以查看到此刻哪些用户连接到后端资产服务器,并且显示连接方式
==选择会话监控,监控用户对资产服务器操作命令并可以及时中断危险操作,注意:监控界面是不可以对服务器输入任何字符,只是观看==
3.7.2 在线回放
JumpServer会把用户对资产服务器上操作录制,以便审计员和管理员查看管理操作
3.7.3 离线查看录像
在线会话查看会消耗JumpServer服务器性能,可以将历史会话过程下载再播放,下载录像文件为 tar
文件后缀,需要下载相关的播放器
下载地址:https://github.com/jumpserver/VideoPlayer/releases
3.7.4 查看管理历史命令
JumpServer会用户对资产服务器管理操作命令记录,转到对应操作的历史会话录像
3.8 命令过滤器
使用命令过滤器可以禁止用户执行特定的危险命令,防止误操作或恶意行为
系统用户可以绑定一些命令过滤器,一个过滤器可以定义一些规则 当用户使用这个系统用户登录资产, 然后执行一个命令.这个命令需要被绑定过滤器的所有规则匹配,高优先级先被匹配, 当一个规则匹配到了,如果规则的动作是允许,这个命令会被放行, 如果规则的动作是禁止,命令将会被禁止执行, 否则就匹配下一个规则,如果最后没有匹配到规则,则允许执行
比如:对 xiaowang
用户授予了三个服务器器资产(10.0.0.7 ,10.0.0.8 , 10.0.0.21),但是可以通过任一台资产服务器间接通过ssh连接其他服务器
3.8.1 添加过滤规则
JumpServer管理员身份添加命令过滤规则
==过滤规则支持命令和正则匹配==
rm
ssh
bash
3.8.2 绑定系统用户
3.8.3 管理测试
新设置了命令过滤规则需要重新连接资产服务器生效
3.9 资产的批量导出和导入
当后端服务器众多时,一台一台主机手动导入效率很低,可以利用资产的导出导入功能实现批量导入
比如:将后端服务器10.0.0.22加入资产中
3.10 数据库资产管理
3.10.1 后端服务器安装MySQL并创建数据库和用户
dnf install -y mariadb-server
systemctl enable --now mariadb
[root@centos8 ~ ]# mysq
create database test;
grant all on test.* to test@'10.0.0.%' identified by '123456';
3.10.2 创建数据库资产
3.10.3 创建数据库的系统用户
==创建数据库的系统用户==
3.10.4 创建数据库授权规则
==将数据库资产授权给dev运维组和test测试组的用户==
3.10.5 web界面连接数据库
3.10.6 用ssh连接MySQL资产
- 感谢你赐予我前进的力量