前言
- JumpServer 是全球首款完全开源的堡垒机, 使用 GNU GPL v2.0 开源协议, 是符合 4A 的专业运维审计系统。
- JumpServer 使用 Python / Django 进行开发, 遵循 Web 2.0 规范, 配备了业界领先的 Web Terminal 解决方案, 交互界面美观、用户体验好。
- JumpServer 采纳分布式架构, 支持多机房跨区域部署, 中心节点提供 API, 各机房部署登录节点, 可横向扩展、无并发访问限制。
一、堡垒机
堡垒机,即在一个特定的网络环境下,为了保障网络和数据不受来自外部和内部用户的入侵和破坏,而运用各种技术手段监控和记录运维人员对网络内的服务器、网络设备、安全设备、数据库等设备的操作行为,以便集中报警、及时处理及审计定责。
核心功能
- 登录功能
- 账号管理
- 身份认证
- 资源授权
- 访问控制
- 操作审计
二、jumpserver
JumpServer是FIT2CLOUD(飞致云)旗下的软件产品,是全球首款完全开源的堡垒机软件,采用Python / Django 开发,分社区免费版和企业付费版两种。因其开源,无插件,Web界面美观,操作方便,分布式,符合4A规范等特点,被很多企业用于内部资产(物理机,云主机等)的管理。
优势
- 开源: 零门槛,线上快速获取和安装;
- 分布式: 轻松支持大规模并发访问;
- 无插件: 仅需浏览器,极致的 Web Terminal使用体验;
- 多云支持: 一套系统,同时管理不同云上面的资产;
- 云端存储: 审计录像云端存储,永不丢失;
- 多租户:一套系统,多个子公司和部门同时使用; 多应用支持: 数据库,Windows远程应用,Kubernetes。
而且jumpserver与传统堡垒机相比也更加安全,在功能的使用上也也越来越广,可以对用户进行分组管理、对资产进行管理等等。相当于是传统堡垒机的升级版。
三、搭建jumpserver
环境准备
外置环境
Redis >= 5.0.0
MySQL >= 5.7
MariaDB >= 10.2
推荐使用外置 数据库 和 Redis, 方便日后扩展升级
安装环境
安装依赖包
# yum -y install wget gcc git epel-release
安装python3.6
# yum -y install python36 python36-devel
建立python虚拟环境,因为centos7自带的是python2,而yum等工具依赖的是原来的python环境,为了不干扰环境我们使用python虚拟环境
# cd /opt
# python3.6 -m venv py3
# source /opt/py3/bin/activate
# python -V #查看python的版本
Python 3.6.8
## deactivate #退出py3的环境
安装jumpserver
下载或者克隆项目
cd /opt
git clone https://github.com/jumpserver/jumpserver.git
这里由于网络不好所以我选择直接去到官网下载zip上传之后解压
https://github.com/jumpserver/jumpserver
# rz jumpserver-master.zip
# yum -y install unzip
# unzip jumpserver-master.zip
#ls
jumpserver-master jumpserver-master.zip py3 #py3 目录为刚才生成的python3.6的环境
安装依赖rpm包
# cd /opt/jumpserver-master/requirements/
# ls #这里是各个版本需要安装的依赖,linux选择rpm的依赖
alpine_requirements.txt deb_requirements.txt mac_requirements.txt requirements.txt
deb_buster_requirements.txt issues.txt rpm_requirements.txt
# yum -y install $(cat rpm_requirements.txt) #安装依赖包
安装python库的依赖
# pip install --upgrade pip #升级pip的版本
# pip install -r requirements.txt -i https://pypi.douban.com/simple
#这里安装依赖时,可能会什么缓慢,还有可能会报错 timeout ,所以我这里指定豆瓣源下载 速度比较快
安装redis缓存服务器
# yum -y install redis
# systemctl start redis
# systemctl enable redis
安装mysql
# yum install -y mysql-community-server #注意安装的版本,这里为5.7的版本
# systemctl start mysqld
# systemctl enable mysqld
# 这里就不演示初始化,及修改密码,这里直接创建数据库并授权
mysql> create database jumpserver default charset 'utf8';
mysql> grant all on jumpserver.* to 'jumpserver@127.0.0.1' identified by'EWQdc4545@';
修改jumpserver配置文件 config_example.yml
# cd /opt/jumpserver-master/
# mv config_example.yml config_example.yml.bak
## 接下来编辑配置文件