Jumpserver
跳板机
跳板机属于内控堡垒机范畴,是一种用于单点登录的主机应用系统。跳板机就是一台服务器,维护人员在维护过程中,首先要统一登录到这台服务器上,然后从这台服务器再登录到目标设备进行维护。但跳板机并没有实现对运维人员操作行为的控制和审计,此外,跳板机存在严重的安全风险,一旦跳板机系统被攻入,则将后端资源风险完全暴露无遗。
跳板机优缺点
优势:集中式进行管理
缺点:没有实现对运维人员操作行为的控制与审计,使用跳板机的过程中还是会出现误操作,违规操作等导致的事故,一旦出现操作事故很难定位到原因和责任人。
堡垒机
堡垒机的理念起于跳板机:
人们逐渐认识到跳板机的不足,需要更新,更好的安全技术理念来实现运维操作管理,需要一种能满足角色管理与授权审批,信息资源访问控制,操作记录和审计,系统变更和维护控制要求,并生成一些统计比报表配合管理规范来不断提升IT内控的合规性的产品。
2005年前后,堡垒机应运而生,它有效地降低了运维操作风险,使得运维操作管理变得更简单,更安全。
堡垒机作用
1. 核心系统运维和安全审计管控;
2. 过滤和拦截非法访问,恶意攻击,阻断不合法命令,审计监控,报警,责任追踪;
3. 报警,记录,分析,处理;
堡垒机核心功能
1. 单点登录功能
支持对X11、Linux、Unix、数据库、网络设备、安全设备等一系列授权账号进行密码的自动化周期更改,简化密码管理,让使用者无需记忆众多系统密码,即可实现自动登录目标设备,便捷安全;
2. 账号管理
设备支持统一账户管理策略,能够实现对所有服务器、网路设备、安全设备等账号进行集中管理,完成对账号整个生命周期的监控,并且可以对设备进行特殊角设置,如:审计巡检员、运维操作员、设备管理员等自定义,以满足审计需求;
3. 身份认证
设备提供统一的认证接口,对用户进行认证,支持身份认证模式包括动态口令、静态密码、硬件key、生物特征等多种认证方式,设备具有灵活的定制接口,可以与其他第三方认证服务器直接结合;
安全的认证模式,有效提高了认证的安全性和可靠性;
4. 资源授权
设备提供基于用户、目标设备、时间、协议类型IP、行为等要素实现细粒度的操作授权,最大限度保护用户资源的安全;
5. 访问控制
设备支持对不同用户进行不同策略的制定,细粒度的访问控制能够最大限度的保护用户资源的安全,严防非法、越权访问事件的发生;
6. 操作审计
设备能够对字符串、图形、文件传输、数据库等安全操作进行行为审计;通过设备录像方式监控运维人员对操作系统、安全设备、网络设备、数据库等进行的各种操作,对违规行为进行事中控制;对终端指令信息能够进行精确搜索,进行录像精确定位;
堡垒机应用场景
1. 多个用户使用同一账号
多出现在同一工作组中,由于工作需要,同时系统管理员账号唯一,因此只能多用户共享同一账号;如果发生安全事故,不仅难以定位账号的实际使用者和责任人,而且无法对账号的使用范围进行有效控制,存在较大的安全风险和隐患;
2. 一个用户使用多个账号
目前一个维护人员使用多个账号时较为普遍的情况,用户需要记忆多套口令同时在多套主机系统、网络设备之间切换,降低工作效率,增加工作复杂度;
3. 缺少统一的权限管理平台,难以实现更细粒度的命令权限控制
维护人员的权限大多是粗放管理,无基于最小权限分配原则的用户权限管理,难以实现更细粒度的命令权限控制,系统安全性无法充分保证;
4. 无法制定统一的访问审计策略,审计粒度粗。
各个网络设备、主机系统、数据库是分别单独审计记录访问行为,由于没有统一审计策略,而且各系统自身审计日志内容深浅不一,难以及时通过系统自身审计发现违规操作行为和追查取证;
5. 传统的网路安全审计系统无法对维护人员经常使用的SSH、RDP等加密、图形操作协议进行内容审计。
JumpServer

部署堡垒机
组件介绍

核心架构

环境准备
1.环境准备
    centos7
    关闭防火墙 firewalld selinux
    iptables -F
    systemctl stop firewalld
    systemctl disable firewalld
# yum源配置
    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
# 基础环境安装
    yum install -y bash-completion vim lrzsz wget expect net-tools nc nmap tree dos2unix htop iftop iotop unzip telnet sl psmisc nethogs glances bc ntpdate  openldap-devel
2.第一个里程:需要部署跳板机依赖软件,重要
yum -y install git python-pip  gcc automake autoconf python-devel vim sshpass lrzsz readline-devel  zlib zlib-devel openssl openssl-devel
  git              --- 用于下载jumpserver软件程序
  python-pip       --- 用于安装python软件
  gcc             --- 解析代码中C语言信息(解释器)
  automake        --- 实现软件自动编译过程  
  autoconf        --- 实现软件自动配置过程
  python-devel    --- 系统中需要有python依赖
  readline-devel  --- 在操作python命令信息时,实现补全功能
3.修改系统字符集为中文
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/locale.conf
# 检查系统字符集
(py3) [root@jumpserver koko 10:30:23]$locale
LANG=en_US.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=zh_CN.UTF-8
部署mysql 5.6
1.获取mysql5.6软件包
wget https://cdn.mysql.com//Downloads/MySQL-5.6/MySQL-5.6.49-1.el7.x86_64.rpm-bundle.tar
2.解压缩
[root@jumpserver opt 17:42:14]$mkdir mysql_rpm
# 指定目录解压
[root@jumpserver opt 17:46:06]$tar -xf MySQL-5.6.49-1.el7.x86_64.rpm-bundle.tar  -C ./mysql_rpm/
# yum批量安装
[root@jumpserver mysql_rpm 17:48:44]$yum localinstall ./*
3.查看mysql默认配置文件,注意如下的修改
[root@jumpserver mysql_rpm 17:52:25]$cat /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
[mysqld_safe]
log-error=/var/log/mysql/mysql.log
pid-file=/var/run/mysql/mysql.pid
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
4.mysql5.6版本默认会生成随机密码,密码文件在
/root/.mysql_secret
5.查看密码后,修改该密码,注意-p参数后没有空格,注意该方式是不安全的,密码会暴露
[root@jumpserver mysql_rpm 18:03:55]$mysqladmin -uroot -pv5U10QaOoc_90b3f password chaoge666
Warning: Using a password on the command line interface can be insecure.
# 最好的方式是进入mysql后,再修改密码
[root@jumpserver mysql_rpm 18:06:52]$mysql -uroot -pchaoge666
mysql> update mysql.user set password=password('chaoge888') where user='root';
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4  Changed: 4  Warnings: 0
mysql> flush privileges;   # 必须刷新后,数据库密码才会变化
Query OK, 0 rows affected (0.00 sec)
# 此时密码已经更新了
[root@jumpserver mysql_rpm 18:07:54]$mysql -uroot -pchaoge888
6.创建jumpserver数据库,修改字符集
mysql> create database jumpserver default charset 'utf8' collate 'utf8_bin';
Query OK, 1 row affected (0.00 sec)
7.创建jumpserver普通用户
mysql> create user 'jumpserver'@'%' IDENTIFIED BY 'chaoge888';
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
8.给jumpserver用户授权
mysql> grant all privileges on jumpserver.* to 'jumpserver'@'%' identified by 'chaoge888';
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
部署python3.6.10
1.下载python3.6.10源代码,可以选择用第三方工具下载后上传至linux,较为快速 cd /opt && \ wget https://www.python.org/ftp/python/3.6.10/Python-3.6.10.tgz tar -zxf Python-3.6.10.tgz cd Python-3.6.10/ [root@jumpserver Python-3.6.10 17:29:33]$./configure --prefix=/opt/python3-6-10/ [root@jumpserver Python-3.6.10 17:29:44]$make && make install # 配置环境变量 [root@jumpserver bin 17:33:16]$echo PATH="/opt/python3-6-10/bin:$PATH" >> /etc/profile [root@jumpserver bin 17:33:21]$tail -1 /etc/profile PATH=/opt/python3-6-10/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin #重新登录会话 [root@jumpserver ~ 17:33:46]$python python python2.7-config python3.6 python3.6m-config python2 python2-config python3.6-config python3-config python2.7 python3 python3.6m python-config 2.创建python虚拟环境 [root@jumpserver mysql_rpm 18:10:10]$python3.6 -m venv /opt/py3 # 激活虚拟环境,此时PATH变量已经变化,只会影响python命令 [root@jumpserver mysql_rpm 18:10:14]$source /opt/py3/bin/activate (py3) [root@jumpserver mysql_rpm 18:11:45]$which python /opt/py3/bin/python (py3) [root@jumpserver mysql_rpm 18:15:03]$which python3 /opt/py3/bin/python3 3.更换pip下载源 [root@jumpserver ~ 18:22:20]$cat ~/.pip/pip.conf [global] index-url = https://mirrors.aliyun.com/pypi/simple/
部署redis
[root@jumpserver ~ 18:23:38]$yum install redis -y [root@jumpserver ~ 18:23:44]$systemctl start redis
部署jumpserver
1.下载jumpserver程序 cd /opt && \ wget https://github.com/jumpserver/jumpserver/releases/download/v2.1.0/jumpserver-v2.1.0.tar.gz [root@jumpserver opt]# tar xf jumpserver-v2.1.0.tar.gz [root@jumpserver opt]# ln -s /opt/jumpserver-v2.1.0/ /opt/jumpserver 2.安装jumpserver代码依赖模块 # 可能需要再次尝试这一步 (py3) [root@jumpserver requirements 18:26:35]$yum install -y bash-completion vim lrzsz wget expect net-tools nc nmap tree dos2unix htop iftop iotop unzip telnet sl psmisc nethogs glances bc ntpdate openldap-devel (py3) [root@jumpserver mysql_rpm 18:15:12]$cd /opt/jumpserver/requirements pip install wheel && \ pip install --upgrade pip setuptools && \ pip install -r requirements.txt
修改jumpserver配置文件
# 生成随机加密密钥 if [ "$SECRET_KEY" = "" ]; then SECRET_KEY=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 50`; echo "SECRET_KEY=$SECRET_KEY" >> ~/.bashrc; echo $SECRET_KEY; else echo $SECRET_KEY; fi if [ "$BOOTSTRAP_TOKEN" = "" ]; then BOOTSTRAP_TOKEN=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16`; echo "BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN" >> ~/.bashrc; echo $BOOTSTRAP_TOKEN; else echo $BOOTSTRAP_TOKEN; fi # 生成后添加在如下配置文件里 (py3) [root@jumpserver koko 10:01:50]$tail -2 ~/.bashrc SECRET_KEY=l6n5h5KcBtx5mSLzIbhzCbXMvjc2TjBdVMlExSicqmMIh82Hb7 BOOTSTRAP_TOKEN=cNPXcM3piwPML73h
# 备份配置文件 cd /opt/jumpserver && \ cp config_example.yml config.yml && \ #修改配置文件,有如下修改 (py3) [root@jumpserver jumpserver 18:32:51]$grep -Ev '^#|^$' config.yml SECRET_KEY: "$SECRET_KEY" BOOTSTRAP_TOKEN: "$BOOTSTRAP_TOKEN" DEBUG: true LOG_LEVEL: DEBUG SESSION_EXPIRE_AT_BROWSER_CLOSE: false DB_ENGINE: mysql DB_HOST: 127.0.0.1 DB_PORT: 3306 DB_USER: jumpserver DB_PASSWORD: chaoge888 DB_NAME: jumpserver HTTP_BIND_HOST: 0.0.0.0 HTTP_LISTEN_PORT: 8080 WS_LISTEN_PORT: 8070 REDIS_HOST: 127.0.0.1 REDIS_PORT: 6379
数据库迁移
python3 /opt/jumpserver/apps/manage.py makemigrations python3 /opt/jumpserver/apps/manage.py migrate
启动jumpserver
(py3) [root@jumpserver jumpserver 18:33:30]$cd /opt/jumpserver (py3) [root@jumpserver jumpserver 18:33:36]$./jms start -d 2020-07-31 18:33:41 Fri Jul 31 18:33:41 2020 2020-07-31 18:33:41 Jumpserver version v2.1.0, more see https://www.jumpserver.org - Start Gunicorn WSGI HTTP Server 2020-07-31 18:33:41 Check database connection ...
部署koko
运行jumpserver还需要部署koko服务(基于GO语言开发的SSH客户端),KOKO是使用Go语言重新开发的Unix资产连接组件,与之前使用的Coco(即基于Python语言开发的SSH客户端)相比,Koko支持多线程,性能更强,且负载更低。
# 下载源代码 cd /opt && \ wget https://github.com/jumpserver/koko/releases/download/v2.1.0/koko-v2.1.0-linux-amd64.tar.gz # 解压缩配置 tar -xf koko-v2.1.0-linux-amd64.tar.gz && \ mv koko-v2.1.0-linux-amd64 koko && \ chown -R root:root koko && \ cd koko # 修改配置文件 # BOOTSTRAP_TOKEN 需要从 jumpserver/config.yml 里面获取, 保证一致 cp config_example.yml config.yml && \ vi config.yml # 修改如下几处配置 (py3) [root@jumpserver koko 09:45:20]$grep -Ev '^#|^$' /opt/koko/config.yml CORE_HOST: http://127.0.0.1:8080 BOOTSTRAP_TOKEN: "$BOOTSTRAP_TOKEN" LOG_LEVEL: INFO REDIS_HOST: 127.0.0.1 REDIS_PORT: 6379 REDIS_PASSWORD: REDIS_CLUSTERS: REDIS_DB_ROOM: # 运行KoKo ./koko -d
koko常见问题
koko非常容易启动失败,如出现【名称重复,未认证】,做如下操作

部署Guacamole
Guacamole 是一个基于 HTML 5 和 JavaScript 的 VNC 查看器,服务端基于 Java 的 VNC-to-XML 代理开发。要求浏览器支持 HTML 5。
Guacamole 是提供远程桌面的解决方案的开源项目,通过浏览器就能操作虚拟机,适用于Chrome,Firefox,IE10等浏览器(浏览器需要支持HTML5)。 由于使用 HTML5,Guancamole 只要在一个服务器安装成功,你访问你的桌面就是访问一个 web 浏览器。
Guacamole不是一个独立的Web应用程序,而是由许多部件组成的。Web应用程序实际上是整个项目里最小最轻量的,大部分的功能依靠Guacamole的底层组件来完成。
用户通过浏览器连接到Guacamole的服务端。Guacamole的客户端是用javascript编写的,Guacamole server通过web容器(比如tomcat)把服务提供给用户。一旦加载,客户端通过http承载着Guacamole自己的定义的协议与服务端通信。

1.获取源代码包,该资料,github也没有下载了,可以向超哥索要,qq:877348180,也可以选择用docker安装 [root@jumpserver opt 10:25:19]$ls |grep gua 2020-07-22-16-48-00-docker-guacamole-v2.1.0.tar.gz 2.解压缩配置 [root@jumpserver opt 10:26:09]$tar -xf 2020-07-22-16-48-00-docker-guacamole-v2.1.0.tar.gz [root@jumpserver opt 10:26:36]$mv docker-guacamole-2.1.0 guacamole 3.解压执行程序 cd /opt/guacamole && \ tar -xf guacamole-server-1.2.0.tar.gz && \ tar -xf ssh-forward.tar.gz -C /bin/ && \ chmod +x /bin/ssh-forward 4.编译安装程序 [root@jumpserver guacamole 10:27:52]$cd /opt/guacamole/guacamole-server-1.2.0/ 5.安装编译所需的依赖环境,根据官方文档的要求来http://guacamole.apache.org/doc/gug/installing-guacamole.html # 非常重要,必须安装 yum install cairo-devel libjpeg-turbo-devel libjpeg-devel libpng-devel libtool uuid-devel -y # 可选的依赖环境 yum install freerdp-devel pango-devel libssh2-devel libtelnet-devel libvncserver-devel libwebsockets-devel pulseaudio-libs-devel openssl-devel libvorbis-devel libwebp-devel -y # 安装FFmpeg # FFmpeg是用于处理多媒体文件的免费和开放源代码工具集合。它包含一组共享的音频和视频库,例如libavcodec,libavformat和libavutil。使用FFmpeg,您可以在各种视频和音频格式之间转换,设置采样率,捕获流音频/视频和调整视频大小。 sudo yum install epel-release -y sudo rpm -v --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm yum install ffmpeg ffmpeg-devell -y #检查ffmpeg安装 ffmpeg -version 6.编译安装guacamole cd /opt/guacamole/guacamole-server-1.2.0 ./configure --with-init-dir=/etc/init.d && \ make && \ make install 7.配置好java环境 yum install -y java-1.8.0-openjdk 8.创建guacamole所需的文件夹 mkdir -p /config/guacamole /config/guacamole/extensions /config/guacamole/record /config/guacamole/drive && \ chown daemon:daemon /config/guacamole/record /config/guacamole/drive && \ cd /config 9.下载tomcat cd /opt && \ wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.36/bin/apache-tomcat-9.0.36.tar.gz 10.部署tomncat与guacamole结合 cd /opt && \ tar -xf apache-tomcat-9.0.36.tar.gz && \ mv apache-tomcat-9.0.36 tomcat9 && \ rm -rf /opt/tomcat9/webapps/* && \ sed -i 's/Connector port="8080"/Connector port="8081"/g' /opt/tomcat9/conf/server.xml && \ echo "java.util.logging.ConsoleHandler.encoding = UTF-8" >> /opt/tomcat9/conf/logging.properties && \ ln -sf /opt/guacamole/guacamole-1.0.0.war /opt/tomcat9/webapps/ROOT.war && \ ln -sf /opt/guacamole/guacamole-auth-jumpserver-1.0.0.jar /config/guacamole/extensions/guacamole-auth-jumpserver-1.0.0.jar && \ ln -sf /opt/guacamole/root/app/guacamole/guacamole.properties /config/guacamole/guacamole.properties 12.设置Guacamole运行环境 export JUMPSERVER_SERVER=http://127.0.0.1:8080 echo "export JUMPSERVER_SERVER=http://127.0.0.1:8080" >> ~/.bashrc export BOOTSTRAP_TOKEN=zxffNymGjP79j6BN echo "export BOOTSTRAP_TOKEN=zxffNymGjP79j6BN" >> ~/.bashrc export JUMPSERVER_KEY_DIR=/config/guacamole/keys echo "export JUMPSERVER_KEY_DIR=/config/guacamole/keys" >> ~/.bashrc export GUACAMOLE_HOME=/config/guacamole echo "export GUACAMOLE_HOME=/config/guacamole" >> ~/.bashrc export GUACAMOLE_LOG_LEVEL=ERROR echo "export GUACAMOLE_LOG_LEVEL=ERROR" >> ~/.bashrc export JUMPSERVER_ENABLE_DRIVE=true echo "export JUMPSERVER_ENABLE_DRIVE=true" >> ~/.bashrc # 检查环境变量文件 """参数解释 JUMPSERVER_SERVER 指 core 访问地址 BOOTSTRAP_TOKEN 为 Jumpserver/config.yml 里面的 BOOTSTRAP_TOKEN 值 JUMPSERVER_KEY_DIR 认证成功后 key 存放目录 GUACAMOLE_HOME 为 guacamole.properties 配置文件所在目录 GUACAMOLE_LOG_LEVEL 为生成日志的等级 JUMPSERVER_ENABLE_DRIVE 为 rdp 协议挂载共享盘 """ [root@jumpserver opt 11:23:13]$tail -8 ~/.bashrc SECRET_KEY=l6n5h5KcBtx5mSLzIbhzCbXMvjc2TjBdVMlExSicqmMIh82Hb7 BOOTSTRAP_TOKEN=cNPXcM3piwPML73h export JUMPSERVER_SERVER=http://127.0.0.1:8080 export BOOTSTRAP_TOKEN=zxffNymGjP79j6BN export JUMPSERVER_KEY_DIR=/config/guacamole/keys export GUACAMOLE_HOME=/config/guacamole export GUACAMOLE_LOG_LEVEL=ERROR export JUMPSERVER_ENABLE_DRIVE=true 13.启动服务 /etc/init.d/guacd start sh /opt/tomcat9/bin/startup.sh
部署Lina组件
Lina 是 JumpServer 的前端 UI 项目, 主要使用
cd /opt wget https://github.com/jumpserver/lina/releases/download/v2.1.0/lina-v2.1.0.tar.gz tar -xf lina-v2.1.0.tar.gz mv lina-v2.1.0 lina chown -R nginx:nginx lina # 需要提前装好nginx
部署Luna
Luna是Web Terminal前端,jumpserver提供api数据
下载地址:https://github.com/jumpserver/luna/releases
cd /opt && \ wget https://github.com/jumpserver/luna/releases/download/v2.1.1/luna-v2.1.1.tar.gz && \ tar -zxf luna-v2.1.1.tar.gz && \ mv /opt/luna-v2.1.1 /opt/luna chown -R root.root /opt/luna-v2.1.1/
部署nginx
nginx用作对jumpserver的动静态文件处理,以及反向代理
[root@jumpserver opt 11:28:43]$yum install nginx -y
修改nginx.conf
# 删除原有nginx.conf虚拟主机的配置 [root@jumpserver nginx 11:34:23]$sed -i '38,58d' /etc/nginx/nginx.confv
server {
    listen 80;
    client_max_body_size 100m;  # 录像及文件上传大小限制
    location /ui/ {
        try_files $uri / /index.html;
        alias /opt/lina/;
    }
    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 /koko/ {
        proxy_pass       http://localhost:5000;
        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 /guacamole/ {
        proxy_pass       http://localhost:8081/;
        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 /ws/ {
        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_pass http://localhost:8070;
        proxy_http_version 1.1;
        proxy_buffering off;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
    location /api/ {
        proxy_pass http://localhost: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/ {
        proxy_pass http://localhost: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;
    }
}
重启服务
nginx -t nginx -s reload
至此jumpserver正确启动
服务全部启动后, 访问 JumpServer 服务器 nginx 代理的 80 端口, 不要通过8080端口访问 默认账号: admin 密码: admin
后续的使用请参考:安全建议(https://docs.jumpserver.org/zh/master/install/install_security/)快速入门(https://docs.jumpserver.org/zh/master/admin-guide/quick_start/)


 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号