部署堡垒机6——配置Nginx及其他组件
Lina部署
cd /opt
wget https://github.com/jumpserver/lina/releases/download/v2.28.7/lina-v2.28.7.tar.gz
tar -xf lina-v2.28.7.tar.gz
luna
cd /opt
wget https://github.com/jumpserver/luna/releases/download/v2.28.7/luna-v2.28.7.tar.gz
tar -xf luna-v2.28.7.tar.gz
KOKO
运行jumpserver还需要部署koko服务(基于GO语言开发的SSH客户端),KOKO是使用Go语言重新开发的Unix资产连接组件,与之前使用的Coco(即基于Python语看开发的SSH客户端)相比,Koko支持多线程,性能更强,且负载更低。
cd /opt
wget https://download.jumpserver.org/public/kubectl-linux-amd64.tar.gz -O kubectl.tar.gz
tar -xf kubectl.tar.gz
mv kubectl /usr/local/bin/rawkubectl
wget https://download.jumpserver.org/public/helm-v3.9.0-linux-amd64.tar.gz
tar -xf helm-v3.9.0-linux-amd64.tar.gz
mv linux-amd64/helm /usr/local/bin/rawhelm
chmod 755 /usr/local/bin/rawkubectl /usr/local/bin/rawhelm
chown root:root /usr/local/bin/rawkubectl /usr/local/bin/rawhelm
rm -rf linux-amd64
wget https://github.com/jumpserver/koko/releases/download/v2.28.7/koko-v2.28.7-linux-amd64.tar.gz
tar -xf koko-v2.28.7-linux-amd64.tar.gz -C /opt
cd koko-v2.28.7-linux-amd64
mv kubectl /usr/local/bin/kubectl
修改配置文件
cp config_example.yml config.yml
vi config.yml
# 项目名称, 会用来向Jumpserver注册, 识别而已, 不能重复
# NAME: {{ Hostname }}
# Jumpserver项目的url, api请求注册会使用
CORE_HOST: http://127.0.0.1:8080 # Core 的地址
# Bootstrap Token, 预共享秘钥, 用来注册coco使用的service account和terminal
# 请和jumpserver 配置文件中保持一致,注册完成后可以删除
BOOTSTRAP_TOKEN: ******** # 和 Core config.yml 的值保持一致
# 启动时绑定的ip, 默认 0.0.0.0
BIND_HOST: 0.0.0.0
# 监听的SSH端口号, 默认2222
SSHD_PORT: 2222 # 使用 0.0.0.0:2222
# 监听的HTTP/WS端口号,默认5000
HTTPD_PORT: 5000 # 使用 0.0.0.0:5000
# 项目使用的ACCESS KEY, 默认会注册,并保存到 ACCESS_KEY_STORE中,
# 如果有需求, 可以写到配置文件中, 格式 access_key_id:access_key_secret
# ACCESS_KEY: null
# ACCESS KEY 保存的地址, 默认注册后会保存到该文件中
# ACCESS_KEY_FILE: data/keys/.access_key
# 设置日志级别 [DEBUG, INFO, WARN, ERROR, FATAL, CRITICAL]
LOG_LEVEL: DEBUG # 开发建议设置 DEBUG, 生产环境推荐使用 ERROR
# 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
# 资产加载策略, 可根据资产规模自行调整. 默认异步加载资产, 异步搜索分页; 如果为all, 则资产全部加载, 本地搜索分页.
# ASSET_LOAD_POLICY:
# zip压缩的最大额度 (单位: M)
# ZIP_MAX_SIZE: 1024M
# zip压缩存放的临时目录 /tmp
# ZIP_TMP_PATH: /tmp
# 向 SSH Client 连接发送心跳的时间间隔 (单位: 秒),默认为30, 0则表示不发送
# CLIENT_ALIVE_INTERVAL: 30
# 向资产发送心跳包的重试次数,默认为3
# RETRY_ALIVE_COUNT_MAX: 3
# 会话共享使用的类型 [local, redis], 默认local
# SHARE_ROOM_TYPE: local
# Redis配置
# REDIS_HOST: 127.0.0.1 # 如果需要部署多个 koko, 需要通过 redis 来保持会话
# REDIS_PORT: 6379
# REDIS_PASSWORD:
# REDIS_CLUSTERS:
# REDIS_DB_ROOM:
启动 KoKo
./koko 后台运行可以加 -d,
./koko -d
Lion
Lion 使用了 Apache 软件基金会的开源项目 Guacamole,JumpServer 使用 Golang 和 Vue 重构了 Guacamole 实现 RDP/VNC 协议跳板机功能。
mkdir /opt/guacamole-v2.28.7
cd /opt/guacamole-v2.28.7
wget http://download.jumpserver.org/public/guacamole-server-1.4.0.tar.gz
tar -xzf guacamole-server-1.4.0.tar.gz
cd guacamole-server-1.4.0/
#安装环境依赖
yum install libcairo2-dev libjpeg-turbo8-dev libpng-dev libtool-bin libossp-uuid-dev
yum install libavcodec-dev libavformat-dev libavutil-dev libswscale-dev freerdp2-dev libpango1.0-dev libssh2-1-dev libtelnet-dev libvncserver-dev libwebsockets-dev libpulse-dev libssl-dev libvorbis-dev libwebp-dev
yum -y install cairo-devel libjpeg-devel libpng-devel uuid-devel
构建 Guacd
./configure --with-init-dir=/etc/init.d
#如果希望使用 systemd 管理, 可以使用 ./configure --with-systemd-dir=/etc/systemd/system/
make
make install
ldconfig
下载 Lion
cd /opt
wget https://github.com/jumpserver/lion-release/releases/download/v2.28.7/lion-v2.28.7-linux-amd64.tar.gz
tar -xf lion-v2.28.7-linux-amd64.tar.gz
cd lion-v2.28.7-linux-amd64
修改配置文件
cp config_example.yml config.yml
vi config.yml
# 项目名称, 会用来向Jumpserver注册, 识别而已, 不能重复
# NAME: {{ Hostname }}
# Jumpserver项目的url, api请求注册会使用
CORE_HOST: http://127.0.0.1:8080 # Core 的地址
# Bootstrap Token, 预共享秘钥, 用来注册使用的service account和terminal
# 请和jumpserver 配置文件中保持一致,注册完成后可以删除
BOOTSTRAP_TOKEN: ******** # 和 Core config.yml 的值保持一致
# 启动时绑定的ip, 默认 0.0.0.0
BIND_HOST: 0.0.0.0
# 监听的HTTP/WS端口号,默认8081
HTTPD_PORT: 8081
# 设置日志级别 [DEBUG, INFO, WARN, ERROR, FATAL, CRITICAL]
LOG_LEVEL: DEBUG # 开发建议设置 DEBUG, 生产环境推荐使用 ERROR
# Guacamole Server ip,默认127.0.0.1
# GUA_HOST: 127.0.0.1
# Guacamole Server 端口号,默认4822
# GUA_PORT: 4822
# 会话共享使用的类型 [local, redis], 默认local
# SHARE_ROOM_TYPE: local
# Redis配置
# REDIS_HOST: 127.0.0.1
# REDIS_PORT: 6379
# REDIS_PASSWORD:
# REDIS_DB_ROOM:
启动 Guacd
/etc/init.d/guacd start
启动 Lion
./lion
Magnus
解压缩包
cd /opt
wget https://github.com/jumpserver/magnus-release/releases/download/v2.28.7/magnus-v2.28.7-linux-amd64.tar.gz
tar -xf magnus-v2.28.7-linux-amd64.tar.gz
cd magnus-v2.28.7-linux-amd64
wget https://github.com/jumpserver/wisp/releases/download/v0.0.10/wisp-v0.0.10-linux-amd64.tar.gz
tar -xf wisp-v0.0.10-linux-amd64.tar.gz
mv wisp-v0.0.10-linux-amd64/wisp /usr/local/bin/
chown root:root /usr/local/bin/wisp /opt/magnus-v2.28.7-linux-amd64/magnus
chmod 755 /usr/local/bin/wisp /opt/magnus-v2.28.7-linux-amd64/magnus
修改配置文件
cp config_example.yml config.yml
vi config.yml
# Jumpserver项目的url, api请求注册会使用
CORE_HOST: http://127.0.0.1:8080 # Core 的地址
# Bootstrap Token, 预共享秘钥, 用来注册使用的service account和terminal
# 请和jumpserver 配置文件中保持一致,注册完成后可以删除
BOOTSTRAP_TOKEN: ******** # 和 Core config.yml 的值保持一致
# 服务 bind 地址
BIND_HOST: "0.0.0.0"
# 数据库代理暴露的端口
MYSQL_PORT: 33060
MARIA_DB_PORT: 33061
POSTGRESQL_PORT: 54320
# 日志级别
LOG_LEVEL: "info"
# jumpserver api grpc 组件地址
WISP_HOST: "localhost"
WISP_PORT: 9090
启动 Wisp
export CORE_HOST="http://127.0.0.1:8080" # Core 的地址
export BOOTSTRAP_TOKEN=******** # 和 Core config.yml 的值保持一致
export WORK_DIR="/opt/magnus-v2.28.7-linux-amd64"
export COMPONENT_NAME="magnus"
export EXECUTE_PROGRAM="/opt/magnus-v2.28.7-linux-amd64/magnus"
wisp
Nginx
nginx -v
nginx version: nginx/1.20.2
server {
listen 80;
# server_name _;
client_max_body_size 5000m; 文件大小限制
# 前端 Lina
location /ui/ {
try_files $uri / /index.html;
alias /opt/lina-v2.28.7/;
expires 24h;
}
# Luna 配置
location /luna/ {
try_files $uri / /index.html;
alias /opt/luna-v2.28.7/;
expires 24h;
}
# Core data 静态资源
location /media/replay/ {
add_header Content-Encoding gzip;
root /opt/jumpserver-v2.28.7/data/;
}
location /media/ {
root /opt/jumpserver-v2.28.7/data/;
}
location /static/ {
root /opt/jumpserver-v2.28.7/data/;
expires 24h;
}
# KoKo Lion 配置
location /koko/ {
# 注意将模板中的组件名称替换为服务实际 ip 地址, 如都在本机部署
# proxy_pass http://127.0.0.1:5000;
proxy_pass http://koko:5000;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_buffering off;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
# lion 配置
location /lion/ {
# 注意将模板中的组件名称替换为服务实际 ip 地址, 如都在本机部署
# proxy_pass http://127.0.0.1:8081;
proxy_pass http://lion:8081;
proxy_buffering off;
proxy_request_buffering off;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
proxy_ignore_client_abort on;
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 6000;
}
# Core 配置
location /ws/ {
# 注意将模板中的组件名称替换为服务实际 ip 地址, 如都在本机部署
# proxy_pass http://127.0.0.1:8070;
proxy_pass http://core:8070;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_buffering off;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location /api/ {
# 注意将模板中的组件名称替换为服务实际 ip 地址, 如都在本机部署
# proxy_pass http://127.0.0.1:8080;
proxy_pass http://core:8080;
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 /core/ {
# 注意将模板中的组件名称替换为服务实际 ip 地址, 如都在本机部署
# proxy_pass http://127.0.0.1:8080;
proxy_pass http://core:8080;
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 / {
rewrite ^/(.*)$ /ui/$1 last;
}
}
修改host文件,加入core lina lion koko luna等
[root@server01 /tmp]#vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 lina luna koko core lion magnus wisp
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.0.0.80 lina luna koko core lion magnus wisp
~
nginx -t
nginx -s reload
登录堡垒机,默认密码admin admin
首次登录需要修改
admin
admin
Nginx官方文档
https://docs.nginx.com/
部署堡垒机6——配置Nginx及其他组件的更多相关文章
- 网站整套部署方案-负载均衡配置Nginx+宝塔+云数据库+云WAF
这是一套部署特别方便的站点方案,包括使用nginx负载均衡,宝塔部署站点,云数据库加一套安全产品云WAF. 一.结构图 1.基本功能 负载均衡,WEB,数据库都是在一个云平台上,内网都属于一个vpc二 ...
- vue 打包部署到服务器上 配置nginx访问
坑一 css,js资源引入不正确 webpack配置文件config/index.js 需要更改: 方法一 当部署到带有文件夹的项目中,这种绝对路径就会出现问题,因为把配置的static文件夹当成了根 ...
- CentOS 7 搭建Jumpserver跳板机(堡垒机)
跳板机概述: 跳板机就是一台服务器,开发或运维人员在维护过程中首先要统一登录到这台服务器,然后再登录到目标设备进行维护和操作 跳板机缺点:没有实现对运维人员操作行为的控制和审计,使用跳板机的过程中还是 ...
- jumpserver开源堡垒机部署安装
0x01.前言 Jumpserver 是全球首款完全开源的堡垒机,使用 GNU GPL v2.0 开源协议,是符合 4A 的专业运维审计系统. Jumpserver 使用 Python / Djang ...
- jumpserver堡垒机(2.4)部署
jumpserver 2.4.0 部署 jumpserver 官网: https://www.jumpserver.org/ Jumpserver介绍 JumpServer 是全球首款完全开源的堡垒机 ...
- CentOS安装部署jumperserver(堡垒机)
可以参考官方的文档:http://docs.jumpserver.org/zh/docs/introduce.html 测试环境 系统: CentOS 7 IP: 192.168.244.144 设置 ...
- Jumpserver堡垒机搭建
系统: CentOS 7 IP: 192.168.11.199关闭 selinux 和防火墙 # setenforce # 临时关闭,重启后失效 # systemctl stop firewalld. ...
- 开源跳板机(堡垒机)系统 Jumpserver安装教程(带图文)
环境 系统: CentOS 7 IP: 192.168.244.144 关闭 selinux 和防火墙 # CentOS 7 $ setenforce 0 # 可以设置配置文件永久关闭 $ syste ...
- 搭建jumperserver堡垒机管理万台服务器-2
搭建jumperserver堡垒机管理万台服务器-2 1 Jumpserver堡垒机概述-部署Jumpserver运行环境 2 安装Coco组件 3 安装Web-Terminal前端-Luna组 ...
- 搭建jumperserver堡垒机管理万台服务器-1
搭建jumperserver堡垒机管理万台服务器-1 1 Jumpserver堡垒机概述-部署Jumpserver运行环境 2 安装Coco组件 3 安装Web-Terminal前端-Luna组 ...
随机推荐
- 11g GI监听测试增加其他本地端口
11.2 GI中监听器的地址和端口信息被移到了 endpoints_listener.ora中. 使用 endpoints_listener.ora的情况下不应使用lsnrctl管理LISTENER, ...
- .NET微服务系列之Saga分布式事务案例实践
自从Wing正式发布以后,很多童鞋反馈对Saga分布式事务比较感兴趣,今天就跟大家分享一下"跨行转账"的分布式事务实践案例,入门使用教程请自行前往Wing官方文档. 假设自己名下有 ...
- Dubbo 路由及负载均衡性能优化
作者:vivo 互联网中间件团队- Wang Xiaochuang 本文主要介绍在vivo内部针对Dubbo路由模块及负载均衡的一些优化手段,主要是异步化+缓存,可减少在RPC调用过程中路由及负载均衡 ...
- Idea单窗口导入多个项目模块
现在我们比较流行微服务,但是服务一旦多了,项目打开也是很麻烦的,运行内存16个G的电脑,基本上打开4,5个项目模块就顶不住了.那么,我们怎么把多个项目导入到一个idea窗口中呢? 实现效果 导入步骤 ...
- 面试官:SOA 和微服务的区别?这回终于搞清楚了!
https://developer.aliyun.com/article/839526 简介: 如果我们打开支付宝首页,去看我们的余额,它会展示你的总资产,昨日收益.累计收益等信息.假如这个页面所展示 ...
- 创造力的起源《The Origins of Creativity》
接近创造力 创造力是对原创的追求,其动力是人类对于新奇事物的钟爱. 了解创造力需要三个层次的思考. 1.What(如何定义这种现象) 2.Question(发问,他是如何出现的,导致其出现的最初原因是 ...
- BABYRE
一道SMC,第一次做 主函数的伪代码,judge函数是关键函数,不过啥都没有 发现 judge 方法是判断的主要逻辑,在第 15 行时调用判断. 但是静态分析时不能生成 judge 的伪代码. 原因是 ...
- 企业微信获取code
String url="https://open.weixin.qq.com/connect/oauth2/authorize?appid="+AuthUtil.APPID + ...
- SimpleDateFormat线程安全性
SimpleDateFormat线程安全性 0 结论 SimpleDateFormat是线程不安全的. 在JDK中关于SimpleDateFormat有这样一段描述: Date formats are ...
- 你知道Spring中BeanFactoryPostProcessors是如何执行的吗?
Spring中的BeanFactoryPostProcessor是在Spring容器实例化Bean之后,初始化之前执行的一个扩展机制.它允许开发者在Bean的实例化和初始化之前对BeanDefinit ...