共计 10399 个字符,预计需要花费 26 分钟才能阅读完成。
这篇“Ubuntu 怎么安装 Jumpserver”文章的知识点大部分人都不太理解,所以丸趣 TV 小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“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”这篇文章的内容,相信大家都有了一定的了解,希望丸趣 TV 小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注丸趣 TV 行业资讯频道。