Linux下安装并使用jumpserver跳板机
堡垒机介绍:
官方网站: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/