文章目录
jumpserver
官方地址: http://www.jumpserver.org/
功能
1.身份验证Authentication
登录认证:资源统一登录和认证、LDAP 认证、支持 OpenID,实现单点登录
多因子认证:MFA( GoogleAuthenticator)
2.账号管理Account
集中账号管理:管理用户管理、系统用户管理
统一密码管理:资产密码托管、自动生成密码、密码自动推送、密码过期设置
批量密码变更(X-PACK):定期批量修改密码、生成随机密码
多云环境的资产纳管(XPACK):对私有云、公有云资产统一纳管
3.授权控制Authorization
资产授权管理:资产树、资产或资产组灵活授权、节点内资产自动继承授权
RemoteApp(X-PACK): 实现更细粒度的应用级授权
组织管理(X-PACK): 实现多租户管理,权限隔离
多维度授权: 可对用户、用户组或系统角色授权
指令限制: 限制特权指令使用,支持黑白名单
统一文件传输: SFTP 文件上传/下载
文件管理: Web SFTP 文件管理
4.安全审计 Audit
会话管理:在线会话管理、历史会话管理
录像管理:Linux 录像支持、Windows 录像支持
指令审计:指令记录
文件传输审计:上传/下载记录审计
部署环境:
官方环境要求:
硬件配置: 2 个 CPU 核心, 4G 内存, 50G 硬盘(最低)
操作系统: Linux 发行版 x86_64
Python = 3.6.x
Mysql Server ≥ 5.6
Mariadb Server ≥ 5.5.56
Redis
服务器准备:
192.168.99.101 jumpserver 2c-4G
192.168.99.102 数据库/Redis 2C-2G
192.168.99.103 web 服务器 A 1C-1G
192.168.99.104 web 服务器 B 1C-1G
部署 MySQL 服务:
1.外置数据库要求:
mysql 版本需要大于等于 5.6
mariadb 版本需要大于等于 5.5.6
数据库编码要求 uft8
2.导入 MySQL 镜像:
docker load -i mysql-5.6.44.tar.gz
3.mysqld.cnf 配置文件
将容器中的 MySQL 配置文件在宿主机通过-v 挂载到容器中
mkdir -p /etc/mysql/mysql.conf.d
vim /etc/mysql/mysql.conf.d/mysqld.cnf
# Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
## This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
# The MySQL Server configuration file.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
#log-error = /var/log/mysql/error.log
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
character-set-server=utf8
4.mysql.cnf 配置文件
mkdir -p /etc/mysql/conf.d/
vim /etc/mysql/conf.d/mysql.cnf
[mysql]
default-character-set=utf8
5.创建数据目录:
数据保存在宿主机, 实现数据与容器分离,当容器运行异常时也可以在启动一个新的容器直接使用宿主机的数据,从而保证业务的正产运行。
mkdir /data/mysql -p
6.运行 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="123" \
mysql:5.7
7.验证数据库:
apt install mysql-client
mysql -uroot -p123 -h192.168.99.22
8.验证数据库编码
mysql> show variables like "%character%";
mysql> show variables like "%collation%";
9.创建 jumpserver 数据库
mysql> create database jumpserver default charset 'utf8';
mysql> grant all on jumpserver.* to 'jumpserver'@'%' identified by 'abc123';
启动数据库授权密码不能为纯数字, 否则报错如下,切记!!!!!!!!!
10.确认jumpserver 用户有权限访问数据库
mysql -ujumpserver -pabc123 -h192.168.99.22
部署 Redis 服务
1.下载镜像并安装
docker pull redis:4.0.14
docker run -it -d -p 6379:6379 redis:4.0.14
2.验证redis
apt install redis
redis-cli -h 192.168.99.22
部署 jumpserver
1.下载镜像
docker pull jumpserver/jms_all:1.4.8
#或已经下载镜像后导入
docker load -i jumpserver-jms_all_1.4.8.tar.gz
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
cZPi5K3utSGiwpK786wbrdZl7UqP0KzfszPBF3NqoATelylqzJ
# 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
yaOz6fQzY0R8vIta
3.建Jumpserver 容器
docker run --name jms_all \
-v /opt/jumpserver:/opt/jumpserver/data/media \
-p 80:80 \
-p 2222:2222 \
-e SECRET_KEY=cZPi5K3utSGiwpK786wbrdZl7UqP0KzfszPBF3NqoATelylqzJ \
-e BOOTSTRAP_TOKEN=yaOz6fQzY0R8vIta \
-e DB_HOST=192.168.99.22 \
-e DB_PORT=3306 \
-e DB_USER='jumpserver' \
-e DB_PASSWORD="abc123" \
-e DB_NAME=jumpserver \
-e REDIS_HOST=192.168.99.22 \
-e REDIS_PORT=6379 \
-e REDIS_PASSWORD= \
jumpserver/jms_all:1.4.8
4.容器启动完成
PS:注意了,这里如果报错了,应该就是mysql数据库授权的时候密码过于简单,且是纯数字,重新授权复杂一点的密码即可。
5.验证数据库
jumpserver 使用
登录 web。默认账户 admin,密码 admin
用户和组管理
用户管理–用户列表界面,管理创建用户,用户相当于是公司的运维人员
1.创建用户 xiaoming
2.设置用户密码,创建的时候是无法设置密码的,创建完成之后再来设置
3.组管理
4.验证普通用户的登录
资产管理
1.创建系统用户
资产管理–管理用户界面,创建系统用户, 此用户用于推送到后端服务器自动创建, 如果此账户已经存在于后端服务器则不会再重新创建, 而是直接使用, 后期jumpserver 的普通账户(zhangxiaoming)会使用此账户登陆并管理资产信息(服务器),推荐的账户名称: mysql nginx tomcat www
PS: 系统用户要填写能够登录到对应远端的账号,比如登录linux的root/xxxx,不然在wed端是连接不上的
2.创建管理用户
资产管理–系统用户界面, 创建管理用户, 该管理用户用于 jumpserver 登陆服务器统计资产信息以及推送系统用户的时候使用, 所以此用户一定是一个可以登录的具备超级权限的用户(如后端服务器的 root 账户或者具有 root 权限的其他用户)。
3.创建资产:
资产就是物理机 虚拟机等
资产状态:
点击主机名进入,测试资产可连接性
授权管理
1.创建授权规则,将资产授权给某个 jumpserver 的登陆账户,即第一步创建的账户
2.授权给用户
查看被授权的用户
1.登录普通用户xiaoming
2.进入web终端
资产分组
1.新建节点
2.添加主机到节点
会话管理
会话管理-命令记录、历史会话里面可以看到用户操作过并且已经退出的录像记录。
使用 jumpserver 普通账户登录,并测试后端服务器的连接与使用
命令过滤:
1.基于安全考虑,禁止某些用户执行指定的命令, 如 rm、 reboot、 poweroff 等命令
3.创建规则
4.关联用户
5.在创建用户的时候也可以关联
6.测试
官方文档:
其他功能,可参如下考官方文档
https://jumpserver.readthedocs.io/zh/master/quick_start.html
转自:https://blog.csdn.net/weixin_42758707/article/details/100999792