Jumpserver-1.3.2安装部署for Centos7

本文转载自: https://www.93bok.com

Jumpserver概述

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

Jmupserver功能

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

Jmupserver官网

官网:http://www.jumpserver.org

官网安装文章:http://docs.jumpserver.org/zh/latest/quickstart.html

官网安装文章:http://docs.jumpserver.org/zh/docs/step_by_step.html

Luna下载地址:https://github.com/jumpserver/luna/releases

前言

  • 虽然上边也给了官网的安装文档,但是我怀疑,按照官网的文章,是部署不出来的,本文中有包括排错的步骤,下边一起来看看?

Jmupserver部署

环境

系统:centos 7.2
IP:192.168.10.21
关闭selinux

防火墙

firewall-cmd --add-port=8080/tcp --permanent			##jumpserver端口
firewall-cmd --add-port=80/tcp --permanent			##nginx端口
firewall-cmd --add-port=2222/tcp --permanent			##用户ssh登录端口
firewall-cmd --add-port=5000/tcp --permanent			##用户http/ws登录端口
firewall-cmd --add-port=8081/tcp --permanent			##guacamole端口(如果没有windows端忽略)
systemctl restart firewalld

一、准备Python3

1. 安装依赖包
yum -y install wget sqlite-devel xz gcc automake zlib-devel openssl-devel epel-release git
2. 源码编译安装python3
wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz
tar xvf Python-3.6.5.tar.xz
cd Python-3.6.5
./configure && make && make install
3. 因为centos6/7自带的是Python2,而yum工具依赖原来的Python,为了不扰乱原来的环境,我们来使用Pyhton虚拟环境
cd /opt/
python3 -m venv py3
source /opt/py3/bin/activate

(py3) [root@test01centos7 opt]# 
(py3) [root@test01centos7 opt]# 
(py3) [root@test01centos7 opt]# 
(py3) [root@test01centos7 opt]#

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

  • 自动进入python虚拟环境
git clone git://github.com/kennethreitz/autoenv.git ~/.autoenv
echo 'source ~/.autoenv/activate.sh' >> ~/.bashrc
source ~/.bashrc

二、安装Jumpserver1.3.2

1. 下载或Clone项目
  • 把zip包上传到服务器的/opt目录下,然后解压
cd /opt/
unzip jumpserver-1.3.2.zip
rm -rf jumpserver-1.3.2.zip
mv jumpserver-1.3.2 jumpserver
2. 进入jumpserver目录自动载入python虚拟环境
echo 'source /opt/py3/bin/activate' > /opt/jumpserver/.env

PBEaTO.png

3. 安装依赖包
cd /opt/jumpserver/requirements/
yum -y install $(cat rpm_requirements.txt)
pip install -r requirements.txt

PBEwkD.png

如上图,安装到59行的安装包时报错了,无法继续下一步,那我们就去文件看看59行到底是哪个软件包

PBErpd.png

59行是python-gssapi==0.6.4这个包,那我们就手动去下载这个包下来,然后本地安装试试报什么错误,其实第一张图已经给出下载地址,直接去那下载下来然后上传到服务器,输入以下命令本地安装
pip install python-gssapi-0.6.4.tar.gz

PBE6Xt.png

又报错没有cffi这个包了,那就手动来呗pip install cffi==0.8,然后再安装一次gssapi

PBE20f.png

这次又到这个包了,那还是再手动来呗pip install six==1.5.0,在试一次安装gssapi

PBEfAS.png

这次成功了,那既然这个装成功了,继续执行我们上面的pip install -r requirements.txt命令呗
4. 安装Redis(这里我就yum安装了,懒的编译了)
Jumpserver使用Redis做cache和celery broke
yum -y install redis
systemctl start redis
systemctl enable redis
5. 安装mysql(也是yum安装,centos下是mariadb)
yum -y install mariadb mariadb-devel mariadb-server
systemctl start mariadb
systemctl enable mariadb
6. 创建数据库Jumpserver并授权
mysql

MariaDB [(none)]> create database jumpserver default charset 'utf8';
MariaDB [(none)]> grant all on jumpserver.* to 'jumpserver'@'localhost' identified by 'nongkaige';
MariaDB [(none)]> grant all on jumpserver.* to 'jumpserver'@'%' identified by 'nongkaige';
MariaDB [(none)]> flush privileges;
7. 修改jumpserver配置文件
cd /opt/jumpserver
cp config_example.py config.py
vim config.py

(注意:配置文件是Python格式,不要用TAB,而要用空格)
class DevelopmentConfig(Config):
    DEBUG = True
    DB_ENGINE = 'mysql'
    DB_HOST = '192.168.10.21'
    DB_PORT = '3306'
    DB_USER = 'jumpserver'
    DB_PASSWORD = 'nongkaige'
DB_NAME = 'jumpserver'
……
config = DevelopmentConfig()		##确保是使用上边修改的配置文件

8. 生成数据库表结构和初始化数据
cd /opt/jumpserver/utils/
bash make_migrations.sh

PBE4hQ.png

9. 运行Jumpserver
cd /opt/jumpserver
./jms start all			##后台运行使用-d参数,即./jms start all –d,重启或停止使用restart、stop参数

PBETcn.png

  • 如上图,运行没有报错,使用浏览器访问http://192.168.10.21:8080,这里只有Jumpserver,没有Web Terminal,所以访问Web Terminal会报错,账号密码都是admin

PBEjNF.png

PBEvh4.png

PBEz9J.png

PBVS39.png

三、安装SSH Server和WebSocket Server:Coco

1. 下载或Clone项目
  • 把下载的安装包上传到服务器/opt目录下并解压
cd /opt/
unzip coco-1.3.2.zip
rm -rf coco-1.3.2.zip
mv coco-1.3.2/ coco
echo 'source /opt/py3/bin/activate' > /opt/coco/.env	##进入coco目录自动加载python虚拟环境

PBVpcR.png

2. 安装依赖
cd /opt/coco/requirements/
yum -y install $(cat rpm_requirements.txt)
pip install -r requirements.txt

PBVPnx.png

  • 也跟上边一样,安装到30行的包报错了,排错一样,这里不再详细描述
3. 修改配置文件并运行
cd /opt/coco
cp conf_example.py conf.py
./cocod start			##后台运行使用-d参数,即./cocod start –d,重启或停止使用restart、stop参数

PBVFHK.png

  • 看到上图这时候,需要去Jumpserver管理后台---会话管理-----终端管理,接受Coco的注册

PBVAAO.png

PBVEND.png

PBVV4e.png

  • 做完这一步之后,终端就会显示

PBVe9H.png

4. 测试连接(使用别的机器)
ssh -p2222 admin@192.168.10.21

PBVngA.png

四、安装Web Terminal前端Luna

  • 打开一个新的终端,连接测试机,然后source /opt/py3/bin/activate,安装包上传到服务器/opt目录下并解压
cd /opt/
tar -zxvf luna.tar.gz
rm -rf luna.tar.gz

五、配置nginx整合各组件

1、安装nginx(这里也是yum安装了)
yum -y install nginx
2、修改配置文件
vim /etc/nginx/nginx.conf

server {
    listen 80;

    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    location /luna/ {
        try_files $uri / /index.html;
        alias /opt/luna/;
    }

    location /media/ {
        add_header Content-Encoding gzip;
        root /opt/jumpserver/data/;
    }

    location /static/ {
        root /opt/jumpserver/data/;
    }

    location /socket.io/ {
        proxy_pass       http://localhost:5000/socket.io/;
        proxy_buffering off;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

    location / {
        proxy_pass http://localhost:8080;
    }
}


nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

3、运行nginx
systemctl start nginx
systemctl enable nginx
  • 浏览器访问

http://192.168.10.21

http://192.168.10.21/luna
PBVujI.png

六、开机自启

vim /etc/rc.local

source /opt/py3/bin/activate
cd /opt/jumpserver/
./jms start all -d
cd /opt/coco/
./cocod start -d

chmod +x /etc/rc.local
  • 到此部署完成,下一篇文章介绍使用方法
posted @ 2020-03-06 11:00  农凯戈  阅读(539)  评论(0编辑  收藏  举报