1. jumpserver 简介:
Jumpserver 是一款使用 Python, Django 开发的开源跳板机系统, 为互联网企业提供了认证,授权,审计,自动化运维等功能。
官方地址:http://www.jumpserver.org/
1)利用阿里云 安装docker
2) pull mysql 镜像
##docker load -i mysql-5.6.X.tar.gz
docker pull mysql:5.6.49
3)创建数据目录:
数据保存在宿主机,实现数据与容器分离,当容器运行异常时也可以在启动一个新的容器直接使用宿主机的数据,从而保证业务的正产运行。
#mkdir /data/mysql -p
4)准备配置文件
临时运行mysql容器,从容器里拷贝以下两个文件
cat /etc/mysql/conf.d/mysql.cnf
[mysql]
default-character-set=utf8
cat /etc/mysql/mysql.conf.d/mysqld.cnf
character-set-server=utf8 #末行加上此内容,其它不变
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.48

用telnet 宿主机的3306是否是通的
6)验证数据库:
从 192.168.7.101 即 jumpserver 服务器访问数据库,验证数据库编码是否是 utf-8。
#apt install mysql-client
#mysql -uroot -pmagedu.com -h192.168.7.102
mysql> show variables like "%character%";show variables like "%collation%";
7)创建 jumpserver 数据库:
mysql> create database jumpserver default charset 'utf8';
mysql> grant all on jumpserver.* to 'jumpserver'@'%' identified by 'magedu.com';
1.4:部署 Redis 服务:
docker pull redis:4.0.14
docker run -it -d -p 6379:6379 redis:4.0.14
验证 Redis 访问:
apt install redis -y #安装 Redis 客户端
redis-cli -h 192.168.7.102
192.168.7.102:6379> info

1.5:部署 jumpserver:
通过 docker 镜像部署 jumpserver
1.5.1:导入镜像:
docker pull jumpserver/jms_all:1.4.8
docker pull jumpserver/jms_all:1.5.8
1.5.2:生成加密秘钥:
生成随机加密秘钥和初始化 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
XHK7dhQ4nmEPqE0rqWupOm2FtYIEeD1DmU9EiNyfl3pypEtgjK
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
z7QorguuusCTGx0H
1.5.3:建 Jumpserver 容器:
设置环境变量:
- SECRET_KEY = xxxxx # 自行生成随机的字符串, 不要包含特殊字符串, 长度推荐大于等于 50 - BOOTSTRAP_TOKEN = xxxxx # 自行生成随机的字符串, 不要包含特殊字符串, 长度推荐大于等于 24 - LOG_LEVEL = ERROR # 日志等级, 测试环境推荐设置为 DEBUG - DB_ENGINE = mysql # 使用 MySQL 数据库 - DB_HOST = mysql_host # MySQL 数据库 IP 地址 - DB_PORT = 3306 # MySQL 数据库 端口 - DB_USER = xxx # MySQL 数据库认证用户 - DB_PASSWORD = xxxx # MySQL 数据库认证密码 - DB_NAME = jumpserver # JumpServer 使用的数据库名称 - REDIS_HOST = redis_host # 使用 Redis 缓存 - REDIS_PORT = 6379 # Redis 服务器 IP 地址 - REDIS_PASSWORD = xxxx # Redis 认证密码 - VOLUME /opt/jumpserver/data # Core 持久化目录, 存储录像日志 - VOLUME /opt/koko/data # Koko 持久化目录 - VOLUME /opt/lion/data # Lion 持久化目录
注意:自己上面设置的这些信息一定要记录下来。升级需要重新输入使用
docker run --name jms_all \ -v /opt/jumpserver:/opt/jumpserver/data/media \ -p 80:80 \ -p 2222:2222 \ -e SECRET_KEY=XHK7dhQ4nmEPqE0rqWupOm2FtYIEeD1DmU9EiNyfl3pypEtgjK \ -e BOOTSTRAP_TOKEN=z7QorguuusCTGx0H \ -e DB_HOST=192.168.7.102 \ -e DB_PORT=3306 \ -e DB_USER='jumpserver' \ -e DB_PASSWORD="magedu.com" \ -e DB_NAME=jumpserver \ -e REDIS_HOST=192.168.7.102 \ -e REDIS_PORT=6379 \ -e REDIS_PASSWORD= \ jumpserver/jms_all:1.5.8
docker logs -f 容器名 #查看日志验证是否安装成功
1.6:jumpserver 使用:
1.6.1:输入jumpserver的IP,登录 web:
默认账户 admin,密码 admin

1.6.2:用户和组管理:
用户管理--用户列表界面,管理创建用户,用户相当于是公司的运维人员。
1.6.2.1:创建用户:
创建 jumpserver 用户 zhangxiaoming。
Multi-Factor Authentication (MFA) 遵循基于时间的一次性密码。

开发组,测试组,运维组,网络工程师
1.6.2.3:组管理:
用户管理--用户组界面,创建用户组,比如 DBA 在一组,网络在一组,后期会对
组授权资产连接权限 ,创建 MySQL 组并添加 zhangxiaoming 如下:

导入导出使用

下载模板,保存为csv文件


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

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

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

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



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

1.8:资产分组:
使用 admin 将资产分为不同的组,新建一个 MySQL 一个 Web 组,然后将服务器
192.168.7.103 和 192.168.7.104 添加到不同的组,在授权给 zhangxiaoming,最后
验证 web 终端状态:

1.8.1:新建节点:

上传下载文件
创建系统用户时,有定义SFP的路径,默认/tmp

1.9:会话管理:
会话管理-命令记录、历史会话里面可以看到用户操作过并且已经退出的录像记录。
使用 jumpserver 普通账户登录,并测试后端服务器的连接与使用

通过历史会话,查看录像

1.10:命令过滤:
基于安全考虑,禁止某些用户执行指定的命令,如 rm、reboot、poweroff 等命令。
1.10.1:创建命令过滤器:


创建规则:

命令过滤器具体信息:


1.10.3:命令过滤器关联至系统用户:
选择目标用户,点击右侧的更新:




禁用ssh

1.11:官方文档:
其他功能,可参如下考官方文档