博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Centos 7.6 部署 Jumpserver 1.5.0
阅读量:5252 次
发布时间:2019-06-14

本文共 9649 字,大约阅读时间需要 32 分钟。

1、基础设置

# 版本说明

操作系统:centos7.6jumpserver:1.5.0

# 升级所有包同时也升级软件和系统内核

yum update -y

# selinux配置

setenforce 0sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

# 安装依赖包

yum -y install wget gcc epel-release git vim

 

2、安装Redis

# 安装 Redis, Jumpserver 使用 Redis 做 cache 和 celery broke

yum -y install redissystemctl enable redissystemctl start redis

 

3、安装MySQL

# 安装 MySQL(centos7下叫mariadb)

yum -y install mariadb mariadb-devel mariadb-server MariaDB-sharedsystemctl enable mariadbsystemctl start mariadb

# 创建数据库 Jumpserver 并授权

mysql -urootcreate database jumpserver default charset 'utf8';grant all on jumpserver.* to 'jumpserver'@'127.0.0.1' identified by 'wmq20151118';flush privileges;

 

4、配置Python环境

# 安装 Python3.6

yum -y install python36 python36-devel

# 配置并载入 Python3 虚拟环境

cd /optpython3.6 -m venv py3source /opt/py3/bin/activate

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

(py3) [root@localhost py3]

 

5、安装Jumpserver

# 下载 Jumpserver

cd /opt/git clone --depth=1 https://github.com/jumpserver/jumpserver.git

# 安装依赖 RPM 包

yum -y install $(cat /opt/jumpserver/requirements/rpm_requirements.txt)

# 安装 Python 库依赖

pip install --upgrade pip setuptoolspip install -r /opt/jumpserver/requirements/requirements.txt

# 复制 Jumpserver 配置文件

cd /opt/jumpservercp config_example.yml config.yml

# 生成随机SECRET_KEY

加密秘钥 生产环境中请修改为随机字符串, 请勿外泄, PS: 纯数字不可以

SECRET_KEY=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 50`echo "SECRET_KEY=$SECRET_KEY" >> ~/.bashrc

# 生成随机BOOTSTRAP_TOKEN

预共享Token coco和guacamole用来注册服务账号, 不在使用原来的注册接受机制

BOOTSTRAP_TOKEN=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16` echo "BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN" >> ~/.bashrc

# 查看SECRET_KEY、BOOTSTRAP_TOKEN

cat ~/.bashrcSECRET_KEY=c1NVKkBQonam9CqX8AWqLiCt4PMGmJTr3DYFGePG0Nz3QD9uY4BOOTSTRAP_TOKEN=nfmBa3WkbQ8leRRb

# 修改配置文件

sed -i "s/SECRET_KEY:/SECRET_KEY: $SECRET_KEY/g" /opt/jumpserver/config.ymlsed -i "s/BOOTSTRAP_TOKEN:/BOOTSTRAP_TOKEN: $BOOTSTRAP_TOKEN/g" /opt/jumpserver/config.ymlsed -i "s/# DEBUG: true/DEBUG: false/g" /opt/jumpserver/config.ymlsed -i "s/# LOG_LEVEL: DEBUG/LOG_LEVEL: ERROR/g" /opt/jumpserver/config.ymlsed -i "s/# SESSION_EXPIRE_AT_BROWSER_CLOSE: false/SESSION_EXPIRE_AT_BROWSER_CLOSE: true/g" /opt/jumpserver/config.ymlsed -i "s/DB_PASSWORD: /DB_PASSWORD: $DB_PASSWORD/g" /opt/jumpserver/config.yml

# 查看完整 config.yml 配置文件

cat /opt/jumpserver/config.yml

# SECURITY WARNING: keep the secret key used in production secret!# 加密秘钥 生产环境中请修改为随机字符串,请勿外泄, 可使用命令生成 # $ cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 49;echoSECRET_KEY: c1NVKkBQonam9CqX8AWqLiCt4PMGmJTr3DYFGePG0Nz3QD9uY4# SECURITY WARNING: keep the bootstrap token used in production secret!# 预共享Token coco和guacamole用来注册服务账号,不在使用原来的注册接受机制BOOTSTRAP_TOKEN: nfmBa3WkbQ8leRRb# Development env open this, when error occur display the full process track, Production disable it# DEBUG 模式 开启DEBUG后遇到错误时可以看到更多日志DEBUG: false# DEBUG, INFO, WARNING, ERROR, CRITICAL can set. See https://docs.djangoproject.com/en/1.10/topics/logging/# 日志级别LOG_LEVEL: ERROR# LOG_DIR: # Session expiration setting, Default 24 hour, Also set expired on on browser close# 浏览器Session过期时间,默认24小时, 也可以设置浏览器关闭则过期# SESSION_COOKIE_AGE: 86400SESSION_EXPIRE_AT_BROWSER_CLOSE: true# Database setting, Support sqlite3, mysql, postgres ....# 数据库设置# See https://docs.djangoproject.com/en/1.10/ref/settings/#databases# SQLite setting:# 使用单文件sqlite数据库# DB_ENGINE: sqlite3# DB_NAME: # MySQL or postgres setting like:# 使用Mysql作为数据库DB_ENGINE: mysqlDB_HOST: 127.0.0.1DB_PORT: 3306DB_USER: jumpserverDB_PASSWORD: wmq20151118DB_NAME: jumpserver# When Django start it will bind this host and port# ./manage.py runserver 127.0.0.1:8080# 运行时绑定端口HTTP_BIND_HOST: 0.0.0.0HTTP_LISTEN_PORT: 8080# Use Redis as broker for celery and web socket# Redis配置REDIS_HOST: 127.0.0.1REDIS_PORT: 6379# REDIS_PASSWORD: # REDIS_DB_CELERY: 3# REDIS_DB_CACHE: 4# Use OpenID authorization# 使用OpenID 来进行认证设置# BASE_SITE_URL: http://localhost:8080# AUTH_OPENID: false  # True or False# AUTH_OPENID_SERVER_URL: https://openid-auth-server.com/# AUTH_OPENID_REALM_NAME: realm-name# AUTH_OPENID_CLIENT_ID: client-id# AUTH_OPENID_CLIENT_SECRET: client-secret## Use Radius authorization# 使用Radius来认证# AUTH_RADIUS: false# RADIUS_SERVER: localhost# RADIUS_PORT: 1812# RADIUS_SECRET: # OTP settings# OTP/MFA 配置# OTP_VALID_WINDOW: 0# OTP_ISSUER_NAME: Jumpserver

# 运行 Jumpserver

cd /opt/jumpserver./jms start all -d

# 开机自启

vim /usr/lib/systemd/system/jms.service[Unit]Description=jmsAfter=network.target mariadb.service redis.serviceWants=mariadb.service redis.service[Service]Type=forkingEnvironment="PATH=/opt/py3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"ExecStart=/opt/jumpserver/jms start all -dExecReload=ExecStop=/opt/jumpserver/jms stop[Install]WantedBy=multi-user.target

 

6、安装coco

cd /opt/git clone https://github.com/jumpserver/coco.gitcd /opt/cocoyum -y install $(cat /opt/coco/requirements/rpm_requirements.txt)pip install -r /opt/coco/requirements/requirements.txt

# 复制配置文件

cp config_example.yml config.yml

# 配置文件完整配置

cat /opt/coco/config.yml

# 项目名称, 会用来向Jumpserver注册, 识别而已, 不能重复# NAME: {
{ Hostname }}# Jumpserver项目的url, api请求注册会使用CORE_HOST: http://127.0.0.1:8080# Bootstrap Token, 预共享秘钥, 用来注册coco使用的service account和terminal# 请和jumpserver 配置文件中保持一致,注册完成后可以删除BOOTSTRAP_TOKEN: nfmBa3WkbQ8leRRb# 启动时绑定的ip, 默认 0.0.0.0# BIND_HOST: 0.0.0.0# 监听的SSH端口号, 默认2222# SSHD_PORT: 2222# 监听的HTTP/WS端口号,默认5000# HTTPD_PORT: 5000# 项目使用的ACCESS KEY, 默认会注册,并保存到 ACCESS_KEY_STORE中,# 如果有需求, 可以写到配置文件中, 格式 access_key_id:access_key_secret# ACCESS_KEY: null# ACCESS KEY 保存的地址, 默认注册后会保存到该文件中# ACCESS_KEY_FILE: data/keys/.access_key# 加密密钥# SECRET_KEY: null# 设置日志级别 [DEBUG, INFO, WARN, ERROR, FATAL, CRITICAL]LOG_LEVEL: ERROR# 日志存放的目录# LOG_DIR: logs# SSH白名单# ALLOW_SSH_USER: all# SSH黑名单, 如果用户同时在白名单和黑名单,黑名单优先生效# BLOCK_SSH_USER:# -# 和Jumpserver 保持心跳时间间隔# HEARTBEAT_INTERVAL: 5# Admin的名字,出问题会提示给用户# ADMINS: ''# SSH连接超时时间 (default 15 seconds)# SSH_TIMEOUT: 15# 语言 [en,zh]# LANGUAGE_CODE: zh# SFTP的根目录, 可选 /tmp, Home其他自定义目录# SFTP_ROOT: /tmp# SFTP是否显示隐藏文件# SFTP_SHOW_HIDDEN_FILE: false# 是否复用和用户后端资产已建立的连接(用户不会复用其他用户的连接)# REUSE_CONNECTION: true

# 后台启动coco

/opt/coco/cocod start -d

# 开机自启

vim /usr/lib/systemd/system/coco.service[Unit]Description=cocoAfter=network.target jms.service[Service]Type=forkingPIDFile=/opt/coco/coco.pidEnvironment="PATH=/opt/py3/bin"ExecStart=/opt/coco/cocod start -dExecReload=ExecStop=/opt/coco/cocod stop[Install]WantedBy=multi-user.target

 

7、下载Luna

# 安装 Web Terminal 前端: Luna 需要 Nginx 来运行访问 访问(https://github.com/jumpserver/luna/releases)下载对应版本的 release 包, 直接解压, 不需要编译

cd /optwget https://github.com/jumpserver/luna/releases/download/1.5.0/luna.tar.gz

# 如果网络有问题导致下载无法完成可以使用下面地址

wget https://demo.jumpserver.org/download/luna/1.5.0/luna.tar.gz

# 解压

tar xf luna.tar.gzchown -R root:root luna

 

8、安装Nginx

# 安装 Nginx, 用作代理服务器整合 Jumpserver 与各个组件

vim /etc/yum.repos.d/nginx.repo[nginx]name=nginx repobaseurl=http://nginx.org/packages/centos/7/$basearch/gpgcheck=0enabled=1
yum -y install nginx

# 配置 Nginx 整合各组件

rm -rf /etc/nginx/conf.d/default.conf
vim /etc/nginx/conf.d/jumpserver.confserver {    # http自动跳转到https    listen       80;    server_name jump.wmqhealth.com;        rewrite ^ https://$http_host$request_uri? permanent;       }server {    # 代理端口, 以后将通过此端口进行访问, 不再通过8080端口    listen 443 ssl;    ssl_certificate ssl/jump.wmqhealth.com.pem;    ssl_certificate_key ssl/jump.wmqhealth.com.key;    server_name jump.wmqhealth.com;  # 修改成你的域名或者注释掉    client_max_body_size 100m;  # 录像及文件上传大小限制    location /luna/ {        try_files $uri / /index.html;        alias /opt/luna/;  # 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/;  # 如果coco安装在别的服务器, 请填写它的ip        proxy_buffering off;        proxy_http_version 1.1;        proxy_set_header Upgrade $http_upgrade;        proxy_set_header Connection "upgrade";        proxy_set_header X-Real-IP $remote_addr;        proxy_set_header Host $host;        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;        access_log off;    }    location /coco/ {        proxy_pass       http://localhost:5000/coco/;  # 如果coco安装在别的服务器, 请填写它的ip        proxy_set_header X-Real-IP $remote_addr;        proxy_set_header Host $host;        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;        access_log off;    }    location /guacamole/ {        proxy_pass       http://localhost:8081/;  # 如果guacamole安装在别的服务器, 请填写它的ip        proxy_buffering off;        proxy_http_version 1.1;        proxy_set_header Upgrade $http_upgrade;        proxy_set_header Connection $http_connection;        proxy_set_header X-Real-IP $remote_addr;        proxy_set_header Host $host;        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;        access_log off;    }    location / {        proxy_pass http://localhost:8080;  # 如果jumpserver安装在别的服务器, 请填写它的ip        proxy_set_header X-Real-IP $remote_addr;        proxy_set_header Host $host;        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;    }}

# 运行 Nginx

nginx -tsystemctl enable nginxsystemctl start nginx

 

9、访问

# 访问 UI (注意 没有 :8080 通过 nginx 代理端口进行访问):

http://192.168.244.144

默认账号: admin 密码: admin 到会话管理-终端管理 接受 coco 等应用的注册

# 测试ssh连接

ssh -p2222 admin@192.168.244.144
密码: admin

 

10、附启动命令

#启动systemctl start mariadbsystemctl start redissystemctl start jmssystemctl start cocosystemctl start nginx

 

转载于:https://www.cnblogs.com/weavepub/p/11115700.html

你可能感兴趣的文章
学习笔记21—PS换图片背景
查看>>
electron入门心得
查看>>
格而知之2:UIView的autoresizingMask属性探究
查看>>
Spring3.0 AOP 具体解释
查看>>
我的Hook学习笔记
查看>>
EasyUI DataGrid 中字段 formatter 格式化不起作用
查看>>
海量数据存储
查看>>
js中的try/catch
查看>>
[导入]玫瑰丝巾!
查看>>
自动从网站上面下载文件 .NET把网站图片保存到本地
查看>>
【识记】 域名备案
查看>>
STL uva 11991
查看>>
MY SQL的下载和安装
查看>>
自定义OffMeshLink跳跃曲线
查看>>
寄Android开发Gradle你需要知道的知识
查看>>
简述spring中常有的几种advice?
查看>>
学习Redux之分析Redux核心代码分析
查看>>
ABAP 创建和调用WebService
查看>>
C# 实例化顺序
查看>>
CSS水平垂直居中总结
查看>>