jumpserver(堡垒机)

一. 网站架构为什么要使用跳板机

总而言之一句话: 不想做背锅侠

二. 堡垒机的核心价值

1. 为什么要用堡垒机?

通过堡垒机控制IT系统运维的风险

2. 堡垒机有哪些好处?

管理者: 
	统一入口:登录公司的任何资源都通过堡垒机
	批量管理:批量的管理服务器,比如: 批量的执行命令
	自动运维:
	安全运营:
	身份鉴别:
	账号管理:
	权限控制:可以针对不同的用户指定访问不同的机器,还有禁用一个敏感的命令
	安全审计:执行的每一个命令都有录屏的操作

在这里插入图片描述
跳板机和堡垒机的区别:
跳板机就是一台服务器而已,运维人员在使用管理服务器的时候,必须先连接上跳板机,然后才能操作内网中的服务器,才能登录到目标设备上进行维护和操作。
跳板机的缺点就是: 仅仅实现了服务器登录安全,但是没有实现对于运维人员行为的操控和审计。而堡垒机有。

3. jumpserver总体介绍

	JumpServer 是广受欢迎的开源堡垒机,是符合 4A 规范的专业运维安全审计系统。
	JumpServer 使用 Python 开发,配备了业界领先的 Web Terminal 方案,交互界面美观、用户体验好。
	JumpServer 采纳分布式架构,支持多机房跨区域部署,支持横向扩展,无资产数量及并发限制。
改变世界,从一点点开始。

4. jumpserver的优势

分布式:轻松支持大规模并发访问;
无插件:仅需浏览器,极致的 Web Terminal 使用体验;
多云支持:一套系统,同时管理不同云上面的资产;
云端存储:审计录像云端存储,永不丢失;
多租户:一套系统,多个子公司和部门同时使用;
多应用支持:数据库,Windows远程应用,Kubernetes。

三. 堡垒机的核心作用

1. 核心系统运维和安全审计管理
2. 过滤和拦截非法请求访问,恶意攻击,拒绝不合法命令,进行审计口监控,告警和责任追踪。
3. 告警 记录 分析  处理。

四. 堡垒机的核心功能

1. 单点登录(登录堡垒机之后可以登录服务器,并且不需要输入账号密码)
2. 账号管理
3. 身份认证(认证方式:动态口令,账号密码,密钥)
4. 资源授权
5. 访问控制(可以根据不同账号对不同资产有不同的权限)
6. 操作审计(录屏)

五. jumpserver核心架构讲解

1. jumperver简单原理:

在这里插入图片描述

2. jumperver组件

	jumpserver 是组件型开发。
组件说明:
	LINA:web展示
	Luna: 终端 (敲linux命令的)
	CORE:后台代码的管理
	CoCo:提供了ssh接口
	Guacamole: 添加插件的组件


在这里插入图片描述

3. jumperver核心架构说明

用户在浏览器上输入”ip:prod/路径“ 访问nginx,nginx收到请求后根据location的规则进行匹配,所有的信息都将写到数据库中DB。

在这里插入图片描述

4. jumpserver服务器所需要的硬件配置

在这里插入图片描述

六.jumpeserver的安装部署

1. 随机生成加密密钥

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; else echo $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; else echo $BOOTSTRAP_TOKEN; fi

2. 搭建mysql数据库服务

docker run --name mysql-server -t --hostname mysql_server --restart=always \
-v /etc/localtime:/etc/localtime -v /docker/volume1/mysql/1/:/var/lib/mysql \
-e MYSQL_DATABASE="jumpserver" -e MYSQL_USER="jumpserver" -e MYSQL_PASSWORD="jumpserver" \
-e MYSQL_ROOT_PASSWORD="ming1128" -p 3306:3306 -d mysql:5.7 \
--character-set-server=utf8 --collation-server=utf8_bin

查看容器运行日志:docker logs -f mysql-server

3. 搭建redis数据库服务

 docker run --name redis-server -t \
 --hostname redis-server \
 --restart=always \
 -v /etc/localtime:/etc/localtime\
 -d redis

查看容器运行日志:docker logs -f redis-server

4. 搭建jumpserver服务

docker run --name jumpserver -t --hostname jump-server --restart=always \
-v /etc/localtime:/etc/localtime \
-p 80:80 -p 2222:2222  \
-e SECRET_KEY=$SECRET_KEY -e BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN \
-e DB_HOST="mysql-server" -e DB_PORT=3306  \
-e DB_NAME="jumpserver" -e DB_USER="jumpserver" -e DB_PASSWORD="jumpserver"\
 --link mysql-server:mysql \
 -e REDIS_HOST="redis-server" -e REDIS_PORT="6379" \
 --link redis-server:redis \
 jumpserver/jms_all:1.5.2

查看容器运行日志: docker logs -f jumpserver
出现如下信息就可以访问jumpserver
在这里插入图片描述

提供几个命令供参考:
docker ps 
docker ps -a
docker logs 
docker start name
docker stop name
docker rm name

启动完之后。我们进入数据库,验证数据库内容,看jumpserver数据是否写入到数据库中的。

[root@jumpserver-no ~]# mysql -uroot -pming1128 -h 192.168.10.2
mysql> use jumpserver;
mysql> show tables;

至此,服务部署完成,如果想看容器日志信息的话可以执行下面的命令

进入容器命令 docker exec -it jms_all /bin/bash

下面我们可以访问web界面进行使用了

5. web界面操作

忘记密码看这里:http://t.zoukankan.com/faithH-p-14339815.html

(1). 登录jumpserver(初始用户:admin,密码:admin)

在这里插入图片描述
在这里插入图片描述

3.创建相关用户,资产并进行相关授权操作

创建jumpserver登录用户
在这里插入图片描述
在这里插入图片描述
创建管理员用户(获取服务器信息)
在这里插入图片描述
创建系统用户 (登录用户(ssh))
在这里插入图片描述
在这里插入图片描述
创建资产
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
资产授权
在这里插入图片描述
在这里插入图片描述
使用xshell登录
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_53195102/article/details/128836284