温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Ubuntu怎么安装Jumpserver

发布时间:2022-11-21 17:05:55 来源:亿速云 阅读:289 作者:iii 栏目:服务器

这篇“Ubuntu怎么安装Jumpserver”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Ubuntu怎么安装Jumpserver”文章吧。

环境

  • 系统: Ubuntu 16.04

  • IP: 192.168.244.144

  • 数据库:mysql 版本大于等于 5.6 mariadb 版本大于等于 5.5.6

测试推荐硬件

  • CPU: 64位双核处理器

  • 内存: 4G DDR3

一. 准备 Python3 和 Python 虚拟环境

1.1 安装依赖包

$apt-getupdate&&apt-get-yupgrade
$apt-get-yinstallwgetgcclibffi-devgitlibmysqlclient-dev

#修改字符集,否则可能报input/outputerror的问题,因为日志里打印了中文
$apt-get-yinstalllanguage-pack-zh-hans
$exportLC_ALL=zh_CN.UTF-8
$echo'LANG="zh_CN.UTF-8"'>/etc/default/locale

1.2 安装 Python3.6

$add-apt-repositoryppa:jonathonf/python-3.6-y
$apt-getupdate
$apt-get-yinstallpython3.6python3.6-devpython3.6-venv

1.3 建立 Python 虚拟环境

为了不扰乱原来的环境我们来使用 Python 虚拟环境

$cd/opt
$python3.6-mvenvpy3
$source/opt/py3/bin/activate

#看到下面的提示符代表成功,以后运行Jumpserver都要先运行以上source命令,以下所有命令均在该虚拟环境中运行
(py3)[root@localhostpy3]

1.4 自动载入 Python 虚拟环境配置

此项仅为懒癌晚期的人员使用,防止运行 Jumpserver 时忘记载入 Python 虚拟环境导致程序无法运行。使用autoenv

$cd/opt
$gitclonehttps://github.com/kennethreitz/autoenv.git
$echo'source/opt/autoenv/activate.sh'>>~/.bashrc
$source~/.bashrc

二. 安装 Jumpserver

2.1 下载或 Clone 项目

项目提交较多 git clone 时较大,你可以选择去 Github 项目页面直接下载zip包。

$cd/opt/
$gitclonehttps://github.com/jumpserver/jumpserver.git
$echo"source/opt/py3/bin/activate">/opt/jumpserver/.env#进入jumpserver目录时将自动载入python虚拟环境

#首次进入jumpserver文件夹会有提示,按y即可
#Areyousureyouwanttoallowthis?(y/N)y

2.2 安装依赖包

$cd/opt/jumpserver/requirements
$apt-get-yinstall$(catdeb_requirements.txt)#如果没有任何报错请继续

2.3 安装 Python 库依赖

$pipinstall--upgradepipsetuptools
$pipinstall-rrequirements.txt

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

$apt-get-yinstallredis-server

2.5 安装 MySQL

本教程使用 Mysql 作为数据库,如果不使用 Mysql 可以跳过相关 Mysql 安装和配置

$apt-get-yinstallmysql-server#安装过程中注意输入数据库root账户的密码

2.6 创建数据库 Jumpserver 并授权

$DB_PASSWORD=`cat/dev/urandom|tr-dcA-Za-z0-9|head-c24`#生成随机数据库密码
$echo-e"\033[31m你的数据库密码是$DB_PASSWORD\033[0m"
$mysql-uroot-p-e"createdatabasejumpserverdefaultcharset'utf8';grantallonjumpserver.*to'jumpserver'@'127.0.0.1'identifiedby'$DB_PASSWORD';flushprivileges;"

2.7 修改 Jumpserver 配置文件

$cd/opt/jumpserver
$cpconfig_example.ymlconfig.yml

$SECRET_KEY=`cat/dev/urandom|tr-dcA-Za-z0-9|head-c50`#生成随机SECRET_KEY
$BOOTSTRAP_TOKEN=`cat/dev/urandom|tr-dcA-Za-z0-9|head-c16`#生成随机BOOTSTRAP_TOKEN

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

$echo-e"\033[31m你的SECRET_KEY是$SECRET_KEY\033[0m"
$echo-e"\033[31m你的BOOTSTRAP_TOKEN是$BOOTSTRAP_TOKEN\033[0m"

$vimconfig.yml#确认内容有没有错误
#SECURITYWARNING:keepthesecretkeyusedinproductionsecret!
#加密秘钥生产环境中请修改为随机字符串,请勿外泄
SECRET_KEY:

#SECURITYWARNING:keepthebootstraptokenusedinproductionsecret!
#预共享Tokencoco和guacamole用来注册服务账号,不在使用原来的注册接受机制
BOOTSTRAP_TOKEN:

#Developmentenvopenthis,whenerroroccurdisplaythefullprocesstrack,Productiondisableit
#DEBUG模式开启DEBUG后遇到错误时可以看到更多日志
DEBUG:false

#DEBUG,INFO,WARNING,ERROR,CRITICALcanset.Seehttps://docs.djangoproject.com/en/1.10/topics/logging/
#日志级别
LOG_LEVEL:ERROR
#LOG_DIR:

#Sessionexpirationsetting,Default24hour,Alsosetexpiredononbrowserclose
#浏览器Session过期时间,默认24小时,也可以设置浏览器关闭则过期
#SESSION_COOKIE_AGE:86400
SESSION_EXPIRE_AT_BROWSER_CLOSE:true

#Databasesetting,Supportsqlite3,mysql,postgres....
#数据库设置
#Seehttps://docs.djangoproject.com/en/1.10/ref/settings/#databases

#SQLitesetting:
#使用单文件sqlite数据库
#DB_ENGINE:sqlite3
#DB_NAME:

#MySQLorpostgressettinglike:
#使用Mysql作为数据库
DB_ENGINE:mysql
DB_HOST:127.0.0.1
DB_PORT:3306
DB_USER:jumpserver
DB_PASSWORD:
DB_NAME:jumpserver

#WhenDjangostartitwillbindthishostandport
#./manage.pyrunserver127.0.0.1:8080
#运行时绑定端口
HTTP_BIND_HOST:0.0.0.0
HTTP_LISTEN_PORT:8080

#UseRedisasbrokerforceleryandwebsocket
#Redis配置
REDIS_HOST:127.0.0.1
REDIS_PORT:6379
#REDIS_PASSWORD:
#REDIS_DB_CELERY:3
#REDIS_DB_CACHE:4

#UseOpenIDauthorization
#使用OpenID来进行认证设置
#BASE_SITE_URL:http://localhost:8080
#AUTH_OPENID:false#TrueorFalse
#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

#OTPsettings
#OTP/MFA配置
#OTP_VALID_WINDOW:0
#OTP_ISSUER_NAME:Jumpserver

2.8 运行 Jumpserver

$cd/opt/jumpserver
$./jmsstartall#后台运行使用-d参数./jmsstartall-d

#新版本更新了运行脚本,使用方式./jmsstart|stop|status|restartall后台运行请添加-d参数

运行不报错,请继续往下操作

三. 安装 SSH Server 和 WebSocket Server: Coco

3.1 下载或 Clone 项目

新开一个终端

$cd/opt
$source/opt/py3/bin/activate
$gitclonehttps://github.com/jumpserver/coco.git&&cdcoco&&gitcheckoutmaster
$echo"source/opt/py3/bin/activate">/opt/coco/.env#进入coco目录时将自动载入python虚拟环境

#首次进入coco文件夹会有提示,按y即可
#Areyousureyouwanttoallowthis?(y/N)y

3.2 安装依赖

$cd/opt/coco/requirements
$pipinstall-rrequirements.txt

3.3 查看配置文件并运行

$cd/opt/coco
$mkdirkeyslogs
$cpconfig_example.ymlconfig.yml
$vimconfig.yml
#项目名称,会用来向Jumpserver注册,识别而已,不能重复
#NAME:{{Hostname}}

#Jumpserver项目的url,api请求注册会使用
CORE_HOST:http://127.0.0.1:8080

#BootstrapToken,预共享秘钥,用来注册coco使用的serviceaccount和terminal
#请和jumpserver配置文件中保持一致,注册完成后可以删除
BOOTSTRAP_TOKEN:<ChangeIT>

#启动时绑定的ip,默认0.0.0.0
#BIND_HOST:0.0.0.0

#监听的SSH端口号,默认2222
#SSHD_PORT:2222

#监听的HTTP/WS端口号,默认5000
#HTTPD_PORT:5000

#项目使用的ACCESSKEY,默认会注册,并保存到ACCESS_KEY_STORE中,
#如果有需求,可以写到配置文件中,格式access_key_id:access_key_secret
#ACCESS_KEY:null

#ACCESSKEY保存的地址,默认注册后会保存到该文件中
#ACCESS_KEY_STORE:keys/.access_key

#加密密钥
#SECRET_KEY:null

#设置日志级别[DEBUG,INFO,WARN,ERROR,FATAL,CRITICAL]
#LOG_LEVEL:INFO
LOG_LEVEL:ERROR

#日志存放的目录
#LOG_DIR:logs

#SSH白名单
#ALLOW_SSH_USER:all

#SSH黑名单,如果用户同时在白名单和黑名单,黑名单优先生效
#BLOCK_SSH_USER:
#-

#和Jumpserver保持心跳时间间隔
#HEARTBEAT_INTERVAL:5

#Admin的名字,出问题会提示给用户
#ADMINS:''

#SSH连接超时时间(default15seconds)
#SSH_TIMEOUT:15

#语言[en,zh]
#LANGUAGE_CODE:zh

#SFTP的根目录,可选/tmp,Home其他自定义目录
#SFTP_ROOT:/tmp

#SFTP是否显示隐藏文件
#SFTP_SHOW_HIDDEN_FILE:false
$./cocodstart#后台运行使用-d参数./cocodstart-d

#新版本更新了运行脚本,使用方式./cocodstart|stop|status|restart后台运行请添加-d参数

四. 安装 Web Terminal 前端: Luna

Luna 已改为纯前端,需要 Nginx 来运行访问

访问(https://github.com/jumpserver/luna/releases)下载对应版本的 release 包,直接解压,不需要编译

4.1 解压 Luna

$cd/opt/
$wgethttps://github.com/jumpserver/luna/releases/download/1.4.7/luna.tar.gz
$tarxfluna.tar.gz
$chown-Rroot:rootluna

五. 安装 Windows 支持组件(如果不需要管理 windows 资产,可以直接跳过这一步)

5.1 安装依赖

$apt-get-yinstalllibtoolautoconf
$apt-get-yinstalllibcairo2-devlibjpeg-turbo8-devlibpng12-devlibossp-uuid-dev
$apt-get-yinstalllibavcodec-devlibavutil-devlibswscale-devlibfreerdp-devlibpango1.0-devlibssh2-1-devlibtelnet-devlibvncserver-devlibpulse-devlibssl-devlibvorbis-devlibwebp-devghostscript
$ln-s/usr/local/lib/freerdp/usr/lib/x86_64-linux-gnu/freerdp
$apt-get-yinstalldefault-jredefault-jdk

5.2 编译安装 guacamole 服务

$cd/opt
$gitclonehttps://github.com/jumpserver/docker-guacamole.git
$cddocker-guacamole
$tarxfguacamole-server-0.9.14.tar.gz
$cdguacamole-server-0.9.14
$autoreconf-fi
$./configure--with-init-dir=/etc/init.d
$make&&makeinstall
$cd..
$rm-rfguacamole-server-0.9.14
$ldconfig

$mkdir-p/config/guacamole/config/guacamole/lib/config/guacamole/extensions#创建guacamole目录
$ln-sf/opt/docker-guacamole/guacamole-auth-jumpserver-0.9.14.jar/config/guacamole/extensions/guacamole-auth-jumpserver-0.9.14.jar
$ln-sf/opt/docker-guacamole/root/app/guacamole/guacamole.properties/config/guacamole/guacamole.properties#guacamole配置文件

$cd/config
$wgethttps://github.com/ibuler/ssh-forward/releases/download/v0.0.5/linux-amd64.tar.gz
$tarxflinux-amd64.tar.gz-C/bin/
$chmod+x/bin/ssh-forward

5.3 配置 Tomcat

$cd/config
$wgethttp://mirror.bit.edu.cn/apache/tomcat/tomcat-8/v8.5.38/bin/apache-tomcat-8.5.38.tar.gz
$tarxfapache-tomcat-8.5.38.tar.gz
$rm-rfapache-tomcat-8.5.38.tar.gz
$mvapache-tomcat-8.5.38tomcat8
$rm-rf/config/tomcat8/webapps/*
$ln-sf/opt/docker-guacamole/guacamole-0.9.14.war/config/tomcat8/webapps/ROOT.war#guacamoleclient
$sed-i's/Connectorport="8080"/Connectorport="8081"/g'/config/tomcat8/conf/server.xml#修改默认端口为8081
$sed-i's/FINE/WARNING/g'/config/tomcat8/conf/logging.properties#修改log等级为WARNING

5.4 配置环境变量

$exportJUMPSERVER_SERVER=http://127.0.0.1:8080#http://127.0.0.1:8080指jumpserver访问地址
$echo"exportJUMPSERVER_SERVER=http://127.0.0.1:8080">>~/.bashrc

#BOOTSTRAP_TOKEN为Jumpserver/config.yml里面的BOOTSTRAP_TOKEN
$exportBOOTSTRAP_TOKEN=******
$echo"exportBOOTSTRAP_TOKEN=******">>~/.bashrc
$exportJUMPSERVER_KEY_DIR=/config/guacamole/keys
$echo"exportJUMPSERVER_KEY_DIR=/config/guacamole/keys">>~/.bashrc
$exportGUACAMOLE_HOME=/config/guacamole
$echo"exportGUACAMOLE_HOME=/config/guacamole">>~/.bashrc

5.5 启动 Guacamole

$/etc/init.d/guacdrestart
$sh/config/tomcat8/bin/startup.sh

这里所需要注意的是 guacamole 暴露出来的端口是 8081,若与主机上其他端口冲突请自定义一下。

六. 配置 Nginx 整合各组件

6.1 安装 Nginx

$apt-get-yinstallnginx
$rm-rf/etc/nginx/site-enabled/default

6.2 准备配置文件 修改 /etc/nginx/site-enabled/jumpserver.conf

$vim/etc/nginx/site-enabled/jumpserver.confserver{
listen80;
server_name_;

client_max_body_size100m;#录像及文件上传大小限制

location/luna/{
try_files$uri//index.html;
alias/opt/luna/;#luna路径,如果修改安装目录,此处需要修改
}

location/media/{
add_headerContent-Encodinggzip;
root/opt/jumpserver/data/;#录像位置,如果修改安装目录,此处需要修改
}

location/static/{
root/opt/jumpserver/data/;#静态资源,如果修改安装目录,此处需要修改
}

location/socket.io/{
proxy_passhttp://localhost:5000/socket.io/;#如果coco安装在别的服务器,请填写它的ip
proxy_bufferingoff;
proxy_http_version1.1;
proxy_set_headerUpgrade$http_upgrade;
proxy_set_headerConnection"upgrade";
proxy_set_headerX-Real-IP$remote_addr;
proxy_set_headerHost$host;
proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;
access_logoff;
}

location/coco/{
proxy_passhttp://localhost:5000/coco/;
proxy_set_headerX-Real-IP$remote_addr;
proxy_set_headerHost$host;
proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;
access_logoff;
}

location/guacamole/{
proxy_passhttp://localhost:8081/;#如果guacamole安装在别的服务器,请填写它的ip
proxy_bufferingoff;
proxy_http_version1.1;
proxy_set_headerUpgrade$http_upgrade;
proxy_set_headerConnection$http_connection;
access_logoff;
proxy_set_headerX-Real-IP$remote_addr;
proxy_set_headerHost$host;
proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;
}

location/{
proxy_passhttp://localhost:8080;
proxy_set_headerX-Real-IP$remote_addr;
proxy_set_headerHost$host;
proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;
}}

6.3 重启 Nginx

$nginx-t#如果没有报错请继续$nginx-sreload

6.4 开始使用 Jumpserver

服务全部启动后,访问http://192.168.244.144

默认账号: admin 密码: admin

到Jumpserver 会话管理-终端管理 检查 Coco Guacamole 等应用的注册

测试连接

如果登录客户端是macOS或Linux,登录语法如下
$ssh-p2222admin@192.168.244.144
$sftp-P2222admin@192.168.244.144
密码:admin

如果登录客户端是Windows,XshellTerminal登录语法如下
$sshadmin@192.168.244.1442222$sftpadmin@192.168.244.1442222密码:admin
如果能登陆代表部署成功#sftp默认上传的位置在资产的/tmp目录下#windows拖拽上传的位置在资产的GuacamoleRDP上的G目录下

以上就是关于“Ubuntu怎么安装Jumpserver”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI