Jumpserver 是一款使用 Python, Django 开发的开源跳板机系统, 为互联网企业提供了认证, 授权, 审计, 自动化运维等功能
主要功能
跳板机:
账户认证;
权限;
记录;操作日志、登录信息,录像
1.部署数据库
准备2台机器
ubuntu 10.0.0.100 jumpserver
ubuntu 10.0.0.200 redis mysql
两台都要安装docker(二进制安装docker : )
一台jumpserver 一台redis和数据库;
2.mysqld.cnf配置文件
将/etc/mysql/mysql.conf.d/mysqld.cnf的文件拷贝到宿主机
先在宿主机建立一个相同的目录
mkdir -p /etc/mysql/mysql.conf.d/
然后执行
docker cp fba47cb1ad36:/etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/mysql.conf.d/mysqld.cnf
打开 vim /etc/mysql/mysql.conf.d/mysqld.cnf
在最后一行加上
character-set-server=utf8
3.mysql.cnf配置文件
创建目录mkdir -p /etc/mysql/conf.d/
拷贝到宿主机
docker cp fba47cb1ad36:/etc/mysql/conf.d/mysql.cnf /etc/mysql/conf.d/mysql.cnf
打开vim /etc/mysql/conf.d/mysql.cnf
最后一行加上
default-character-set=utf8
4.创建数据目录
目的;数据保存在宿主机,实现数据与容器分离;当容器异常,重新启动一个容器直接使用宿主机数据,从而保证业务的正常运行;
mkdir /data/mysql -p
5.运行mysql容器
其中密码不能为纯数字,否则会报错;
docker run -it -d -p 3306:3306 -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 -v
/data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=“magedu.com” mysql:5.6.44
docker ps
docker logs -f 06dfb722f7e0查看数据库是否准备好链接
6.验证数据库
即 jumpserver 服务器访问数据库, 验证数据库编码是否是 utf-8
验证数据库
查看本机
在jumpserver上查看
apt install mysql-client
验证;mysql -uroot -pmagedu.com -h10.10.0.200
7.验证数据库编码是不是UTF8
在本机验证;show variables like “%character%”;show variables like “%collation%”;
8.创建 jumpserver 数据库
在10.0.0.200上;
create database jumpserver default charset ‘utf8’;
grant all on jumpserver.* to ‘jumpserver’@’%’ identified by ‘magedu.com’;
9.验证数据库权限
mysql -ujumpserver -pmagedu.com -h10.0.0.200
10.部署 Redis 服务
docker images
docker run -it -d -p 6379:6379 -v /data/redis:/data redis:4.0.14
11.验证 Redis 访问
在jumpserver服务器上安装redis客户端
apt -y install redis
systemctl stop redis-server
systemctl disable redis-server
测试链接: redis-cli -h 10.0.0.200
12.部署 jumpserver
打开浏览器 https://hub.docker.com/search?q=jumpserver&type=image
选择jms_all——tags——1.5.9
docker pull jumpserver/jms_all:1.5.9
13.生成加密秘钥
在10.0.0.200上生成随机加密秘钥和初始化 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
14.建 Jumpserver 容器
在10.0.0.100上建 Jumpserver 容器
docker run --name jms_all \
-v /opt/jumpserver:/opt/jumpserver/data/media \
-p 80:80 \
-p 2222:2222 \
-e SECRET_KEY=v0g6acwzQFraPixtK5WRyGI8zL2uYyI3KoIyqR9uy4wNkH3GlD \
-e BOOTSTRAP_TOKEN=Tvl8VA9GdzbBA318 \
-e DB_HOST=10.0.0.200 \
-e DB_PORT=3306 \
-e DB_USER='jumpserver' \
-e DB_PASSWORD="magedu.com" \
-e DB_NAME=jumpserver \
-e REDIS_HOST=10.0.0.200 \
-e REDIS_PORT=6379 \
-e REDIS_PASSWORD= \
jumpserver/jms_all:1.5.9
启动完成
15.验证数据库内容
在10.0.0.200上 验证
16.jumpserver 使用
浏览器访问10.0.0.100 默认账号密码都是admin
17.用户和组管理
用户管理–用户列表界面, 管理创建用户, 用户相当于是公司的运维人员,这里的用户就是 开发、测试和运维想要登录;
如果用户较多,需要先创建用户组
创建用户
18.资产管理
18.1.创建管理用户
资产管理–系统用户界面, 创建管理用户, 该管理用户用于 jumpserver 登陆服务
器统计资产信息以及推送系统用户的时候使用, 所以此用户一定是一个可以登录
的具备超级权限的用户(如后端服务器的 root 账户或者具有 root 权限的其他用
户)。创建管理用户:
18.2创建系统账户
系统用户是 JumpServer 跳转登录资产时使用的用户,可以理解为登录资产用户,如 web,sa,dba(ssh web@some-host
),而不是使用某个用户的用户名跳转登录服务器(ssh xiaoming@some-host
); 简单来说是用户使用自己的用户名登录 JumpServer,JumpServer 使用系统用户登录资产。 系统用户创建时,如果选择了自动推送,JumpServer 会使用 Ansible 自动推送系统用户到资产中,如果资产(交换机)不支持 Ansible,请手动填写账号密码。
18.3创建资产
单个资产创建
批量创建资产
批量导入资产;
如果服务器比较多 可以批量导入,操作方法,选择导出表格,填入服务器信息后,再导入
19.测试浏览器登陆
http://10.0.0.100/users/profile/">http://10.0.0.100/users/profile/ 分别登录之前设置的账号
20.资产授权
创建资产授权规则
21.测试 jumpserver 普通用户权限
查看用户资产状态
远程登录管理资产
打开web
22.强制推送系统账户
23.资产分组
使用 admin 将资产分为不同的组, 新建一个 MySQL 一个 Web 组, 然后将服务器10.0.0.77和10.0.0.101 添加到不同的组, 在授权给 mali, 最后验证 web 终端状态
将服务器添加到不同的组
web 终端验证
24.会话管理
会话管理-命令记录、 历史会话里面可以看到用户操作过并且已经退出的录像记录。使用 jumpserver 普通账户登录, 并测试后端服务器的连接与使用
25.命令过滤
基于安全考虑, 禁止某些用户执行指定的命令, 如 rm、 reboot、 poweroff 等命令
操作完毕