Jumpserver介绍


一.跳板机的定义

跳板机就是一台服务器,开发或运维人员在维护过程中首先要统一登录到这台服务器,然后再登录到目标设备进行维护和操作:

二.跳板机缺点

没有实现对运维人员操作行为的控制和审计,使用跳板机的过程中还是会出现误操作、远规
操作导致的事故,一旦出现操作事故很难快速定位到原因和责任人;

三.堡垒机的定义

堡垒机,即在一个特定的网络环境下,为了保障网络和数据丌受来自外部和内部用户的***和破坏,而运用各种技术手段实时收集和监控网络环境中每一个组成部分的系统状态、安全事件、网络活劢,以便集中报警、及时处理及审计定责。

总结:堡垒机比跳板机多了实时收集、监控网络环境、集中报警等功能

四.Jumpserver 概述

Jumpserver 是一款使用 Python, Django 开发的开源跳板机系统, 为亏联网企业提供了认证,授权,审计,自动化运维等功能。

五.Jumpserver的功能:

1、用户组/用户 :添加组方便迚行授权,用户是授权和登陆的主体.
2、资产组/资产/IDC : 主机信息简洁完整,用户自定义备注登录,支持自劢获取主页硬件信息.
3、Sudo/系统用户/授权规则 :支持 sudo 授权,系统用户用亍登陆客户端,授权是将用户、资产和系统用户关联起来.
4、在线/登录历叱/命令记录/上传下载 : 在线实时监控用户操作,统计和录像回放用户操作内容,阻断控制,详细记录上传下载.
5、上传/下载 : 支持文件上传下载,实现 rzsz 方式.
6、默认设置 : 默认管理用户 设置包括用户密码密钥,默认信息为了方便添加资产而设计

环境准备


一.系统环境

1.IP:192.168.1.154
2.centos7.6
	
#cat /etc/redhat-release (查看centos版本)

#uname -r(查看操作系统发行版号)

二.关闭SELINUX和防火墙

1. systemctl stop firewalld.service(关闭防火墙)
2. setenforce 0(关闭selinux)
    或者vim /etc/selinux/config(将SELINUX=enforcing修改为 SELINUX=disabled)				

3. getenforce(查看selinux运行状态)

4.修改字符集,否则可能报 input/output error的问题,因为日志里打印了中文
    
			localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8
    export LC_ALL=zh_CN.UTF-8
    echo 'LANG=zh_CN.UTF-8' > /etc/sysconfig/i18n

三.准备Python3和Python虚拟环境

1.安装依赖包
   yum -y install wget sqlite-devel xz gcc automake zlib-devel openssl-devel epel-release git

2.编译安装(这里必须执行编译安装,否则在安装 Python 库依赖时会有麻烦)

①cd /usr/local/src/
②wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz

③tar xvf Python-3.6.1.tar.xz

④cd Python-3.6.1
⑤./configure && make && make install

3.建立Python虚拟环境

因为CentOS 6/7自带的是Python2,而Yum等工具依赖原来的Python,为了不扰乱原来的环境我们来使用Python虚拟环境

cd /opt/
python3 -m venv py3
source /opt/py3/bin/activate

看到上面的提示符代表成功,以后运行Jumpserver都要先运行以上source命令,以下所有命令均在该虚拟环境中运行!

安装Jumpserver1.0.0


一.下载项目

1.下载链接https://pan.baidu.com/s/1BVYRF7M-akKjUOoYZPBi7Q  (提取密码:v5rs)

将安装包上传到MobaXterm
	
2.	解压jumpserver包需要用rar解压

   	①下载rar unrar: wget http://www.rarlab.com/rar/rarlinux-x64-5.3.0.tar.gz

	   ②解压: tar -xzvf rarlinux-x64-5.3.0.tar.gz -C /usr/local

    ③然后执行以下命令(/usr/local/rar下就会有rar命令和unrar命令。可以在/usr/local/bin下创建连接)
			
        ln -s /usr/local/rar/rar /usr/local/bin/rar
        ln -s /usr/local/rar/unrar /usr/local/bin/unrar

3.解压jumpserver:rar x jumpserver.rar -C /opt

二.安装依赖rpm包

cd /opt
cd jumpserver/requirements
yum -y install epel-release

yum -y install $(cat rpm_requirements.txt)   

三.安装python库依赖

1. pip install -r requirements.txt 

2.安装Redis, Jumpserver 使用 Redis 做 cache(电脑高速缓冲存储器) 和 celery broke(python异步的分布式任务调度)

yum -y install redis

 systemctl start redis(开启)

四.安装MySQL

1.yum -y install mariadb mariadb-devel mariadb-server

systemctl enable mariadb(开机自启动)
systemctl start mariadb(开启)
systemctl status mariadb(状态)

2.设置mysql密码,比如密码设置为123
 mysql_secure_installation

......
Set root password? [Y/n] y
New password:                //比如密码是123
Re-enter new password:
......                      //其他项全部回车默认

五.创建数据库Jumpserver并授权

mysql -p123	

create database jumpserver default charset 'utf8';
grant all on jumpserver.* to 'jumpserver'@'127.0.0.1' identified by 'jumpserver@123';

flush privileges;
show databases;

六.安装 python3 my


sql驱动: mysqlclient

由于MySQLdb库不支持 python3.5+,所以选择了mysqlclient作为驱动,pymysql使用python写的,速度较慢

pip install mysqlclient

七.复制jumpserver配置文件


计划修改 DevelopmentConfig中的配置,因为默认jumpserver是使用该配置,它继承自Config

cd /opt/jumpserver
cp config_example.py config.py

八.生成数据库表结构和初始化数据

cd /opt/jumpserver/utils

bash make_migrations.sh(执行脚本)

出现如上信息,即表示操作成功!

九.运行jumpserver

cd /opt/jumpserver
python run_server.py & 

运行不报错,请浏览器访问 http://192.168.10.210:8080/ 账号: admin 密码: admin