堡垒机介绍:
官方网站:https://www.jumpserver.org/

在一个特定网络环境下,为了保障网络和数据不受外界入侵和破坏,而运用各种技术手段实时收集和监控网络环境中每一个组成部分的系统状态、安全事件、网络活动,以便集中报警、及时处理及审计定责。我们又把堡垒机叫做跳板机,简易的跳板机功能简单,主要核心功能是远程登录服务器和日志审计。
JumpServer 是全球首款开源的堡垒机,使用 GNU GPL v2.0 开源协议,并使用python/django开发

下面让我们看一下如何安装jumpserver,其实jumpserver的安装非常简单,前提条件只需要docker就可以,首先我们需要在装有docker的主机上安装部署
一、下载镜像jumpserver、mysql(要求5.7以上)、redis(6.0版本以上)

1.	docker pull jumpserver/jms_all:1.5.6
2. docker pull mysql:5.7
3. docker pull redis:5.0

二、部署mysql:

把mysql:5.7打标签上传到镜像仓库(或者直接写本地仓库的)
docker tag mysql: 5.7 192.168.149.12/apps/mysql:5.7(这是我的仓库地址,要换成你的仓库地址) 创建mysql的dockercompose文件目录,并且要导入mysql.cnf ,mysqld.cnf文件
mkdir /data/docker-compose/mysql5.7 开始写docker-compose
vim /data/docker-compose/mysql5.7/docker-compose.yml version: '3'
services:
mysql:
image: 192.168.149.12/apps/mysql:5.7 (或者直接本地仓库mysql:5.7)
container_name: jms_mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: 'zzx.com'
expose:
- 3306
ports:
- '3306:3306'
volumes:
- /data/docker-compose/mysql5.7/mysql.cnf:/etc/mysql/conf.d/mysql.cnf
- /data/docker-compose/mysql5.7/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf 启动:docker-compose up -d 测试连接mysql
mysql -u root -h 192.168.149.12 -p'zzx.com' (物理机必须有mysql服务) 创建jumpserver库并指定utf8编码
create database jumpserver default charset 'utf8mb4'; 给jumpserverku授予权限
grant all on jumpserver.* to 'jumpserver'@'%' identified by 'zzx.com';

三、部署redis:

把redis:5.0打标签上传到镜像仓库(或者直接写本地仓库的)
docker tag redis:5.0 192.168.149.12/apps/redis:5.0(这是我的仓库地址,要换成你的仓库地址) 创建redis的dockercompose文件目录
mkdir /data/docker-compose/redis5.0 开始编写docker-compose
vim /data/docker-compose/redis5.0/docker-compose.yml
version: '3'
services:
jms_redis:
image: 192.168.149.12/apps/redis:5.0
container_name: jms_redis
restart: always
expose:
- 6379
ports:
- '6379:6379'
启动:docker-compose up -d

四、部署jumpserver:

创建jumpserver的dockercompose文件目录
mkdir /data/docker-compose/jumpserver 生成加密秘钥(生成随机加密秘钥和初始化token,下方第一段脚本对应SECRET_KEY,第二段脚本对应BOOTSTRAP_TOKEN)
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 编写jumpserver的docker-compose
vim /data/docker-compose/jumpserver/docker-compose version: '2'
services:
jms_all:
image: jumpserver/jms_all:1.5.6
container_name: jms_all
restart: always
environment:
- SECRET_KEY=VM5waokwV8j4CgWtMYmYYE8Qgpt0ErcSRw3R2yAOpR2WIdqsSR
- BOOTSTRAP_TOKEN=bmwWF4ejqQ1beVZR
- DB_HOST=192.168.149.12 #ip要写对
- DB_PORT=3306
- DB_USER='jumpserver'
- DB_PASSWORD="zzx.com"
- DB_NAME=jumpserver
- REDIS_HOST=192.168.149.12 #ip要写对
- REDIS_PORT=6379
- REDIS_PASSWORD=
volumes:
- /opt/jumpserver:/opt/jumpserver/data/media
ports:
- '8000:80'
- '2222:2222' 启动:docker-compose up -d
访问:http://192.168.149.12:8000/

jumpserver使用
1:登录web:
默认账户admin,密码admin

2:用户和组管理:
用户管理–用户列表界面,管理创建用户,用户相当于是公司的运维人员
2.1:创建用户:
创建jumpserver用户zhangxiaoming

2.2:设置用户密码

2.3:组管理:
用户管理–用户组界面,创建用户组,比如DBA在一组,网络在一组,后期会对组授权资产连接权限 ,创建MySQL组并添加zhangxiaoming如下:

2.4:测试zhangxiaoming登录:
打开其他浏览器测试zhangxiaoming用户是否可以登录到jumpserver

2.5:当前用户资产
当前用户zhangxiaoming还未有任何资产可用

3:资产管理:
资产管理–管理用户界面,创建系统用户,此用户用于推送到后端服务器自动创建,如果此账户已经存在于后端服务器则不会再重新创建,而是直接使用,后期jumpserver的普通账户(zhangxiaoming)会使用此账户登陆并管理资产信息(服务器),推荐的账户名称:mysql nginx tomcat www
3.1:创建系统用户
创建系统账户:


3.2:创建管理用户:
资产管理–系统用户界面,创建管理用户,该管理用户用于jumpserver登陆服务器统计资产信息以及推送系统用户的时候使用,所以此用户一定是一个可以登录的具备超级权限的用户(如后端服务器的root账户或者具有root权限的其他用户)。
创建管理用户:


3.3:创建资产:
资产管理–资产列表界面 创建资产,资产就是物理机 虚拟机等
创建资产:


资产状态:

测试资产可连接性:


更新和删除资产:

资产导入和导出:

4:授权管理
权限管理–授权管理界面,创建授权规则,将资产授权给某个jumpserver的登陆账户,即第一步创建的账户:
4.1:创建资产授权规则

4.2:资产授权规则详细信息

具体其他功能可参考如下官方文档,非常详细:
https://docs.jumpserver.org/

最新文章

  1. 在window下配置laravel开发环境
  2. canvas仿屏幕保护运动线条
  3. QM课程03-采购中的质量管理
  4. java类转化为json对象
  5. Unity3D 之NGUI各种脚本及应用
  6. EF简介
  7. BZOJ 1618: [Usaco2008 Nov]Buying Hay 购买干草( dp )
  8. 聚沙成塔-linux 常用命令
  9. 勇者斗恶龙 uva 11292(简单贪心)
  10. VS code 配置为 Python R LaTeX IDE
  11. 【README.md】Markdown语言常用语法
  12. js中的异步与同步,解决由异步引起的问题
  13. linux出现tmp空间满的情况解决
  14. JAVA遇上HTML-----JSP 篇基本概念
  15. nginx+tomcat抵御慢速连接攻击
  16. Maven父子项目配置-多模块(multi-modules)结构
  17. 如何在 Xcode 中修改应用的名字
  18. 分类算法----k近邻算法
  19. bootstrap 多级下拉菜单
  20. 跟我一起学extjs5(08--自己定义菜单1)

热门文章

  1. protocol 协议语言介绍
  2. Adobe AIR 应用程序图标详细描述
  3. 什么是Netflix Feign?它的优点是什么?
  4. SpringMvc中函数的返回值是什么?
  5. 服务注册和发现是什么意思?Spring Cloud 如何实现?
  6. Elasticsearch 是如何实现 Master 选举的?
  7. 什么是 Spring MVC 框架的控制器?
  8. MyBatis Plus 2.3 个人笔记-04-配置文件与插件使用
  9. CountDownLatch和CyclicBarrier:如何让多线程步调一致?
  10. (stm32学习总结)—GPIO位带操作