共計(jì) 10399 個(gè)字符,預(yù)計(jì)需要花費(fèi) 26 分鐘才能閱讀完成。
這篇“Ubuntu 怎么安裝 Jumpserver”文章的知識(shí)點(diǎn)大部分人都不太理解,所以丸趣 TV 小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Ubuntu 怎么安裝 Jumpserver”文章吧。
環(huán)境
系統(tǒng): Ubuntu 16.04
IP: 192.168.244.144
數(shù)據(jù)庫:mysql 版本大于等于 5.6 mariadb 版本大于等于 5.5.6
測(cè)試推薦硬件
CPU: 64 位雙核處理器
內(nèi)存: 4G DDR3
一. 準(zhǔn)備 Python3 和 Python 虛擬環(huán)境
1.1 安裝依賴包
$apt-getupdate apt-get-yupgrade
$apt-get-yinstallwgetgcclibffi-devgitlibmysqlclient-dev
#修改字符集, 否則可能報(bào) input/outputerror 的問題, 因?yàn)槿罩纠锎蛴×酥形?
$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 虛擬環(huán)境
為了不擾亂原來的環(huán)境我們來使用 Python 虛擬環(huán)境
$cd/opt
$python3.6-mvenvpy3
$source/opt/py3/bin/activate
#看到下面的提示符代表成功, 以后運(yùn)行 Jumpserver 都要先運(yùn)行以上 source 命令, 以下所有命令均在該虛擬環(huán)境中運(yùn)行
(py3)[root@localhostpy3]
1.4 自動(dòng)載入 Python 虛擬環(huán)境配置
此項(xiàng)僅為懶癌晚期的人員使用, 防止運(yùn)行 Jumpserver 時(shí)忘記載入 Python 虛擬環(huán)境導(dǎo)致程序無法運(yùn)行。使用 autoenv
$cd/opt
$gitclonehttps://github.com/kennethreitz/autoenv.git
$echo source/opt/autoenv/activate.sh ~/.bashrc
$source~/.bashrc
二. 安裝 Jumpserver
2.1 下載或 Clone 項(xiàng)目
項(xiàng)目提交較多 git clone 時(shí)較大, 你可以選擇去 Github 項(xiàng)目頁面直接下載 zip 包。
$cd/opt/
$gitclonehttps://github.com/jumpserver/jumpserver.git
$echo source/opt/py3/bin/activate /opt/jumpserver/.env# 進(jìn)入 jumpserver 目錄時(shí)將自動(dòng)載入 python 虛擬環(huán)境
#首次進(jìn)入 jumpserver 文件夾會(huì)有提示, 按 y 即可
#Areyousureyouwanttoallowthis?(y/N)y
2.2 安裝依賴包
$cd/opt/jumpserver/requirements
$apt-get-yinstall$(catdeb_requirements.txt)# 如果沒有任何報(bào)錯(cuò)請(qǐng)繼續(xù)
2.3 安裝 Python 庫依賴
$pipinstall--upgradepipsetuptools
$pipinstall-rrequirements.txt
2.4 安裝 Redis, Jumpserver 使用 Redis 做 cache 和 celery broke
$apt-get-yinstallredis-server
2.5 安裝 MySQL
本教程使用 Mysql 作為數(shù)據(jù)庫, 如果不使用 Mysql 可以跳過相關(guān) Mysql 安裝和配置
$apt-get-yinstallmysql-server# 安裝過程中注意輸入數(shù)據(jù)庫 root 賬戶的密碼
2.6 創(chuàng)建數(shù)據(jù)庫 Jumpserver 并授權(quán)
$DB_PASSWORD=`cat/dev/urandom|tr-dcA-Za-z0-9|head-c24`# 生成隨機(jī)數(shù)據(jù)庫密碼
$echo-e \033[31m 你的數(shù)據(jù)庫密碼是 $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`# 生成隨機(jī) SECRET_KEY
$BOOTSTRAP_TOKEN=`cat/dev/urandom|tr-dcA-Za-z0-9|head-c16`# 生成隨機(jī) 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# 確認(rèn)內(nèi)容有沒有錯(cuò)誤
#SECURITYWARNING:keepthesecretkeyusedinproductionsecret!
#加密秘鑰生產(chǎn)環(huán)境中請(qǐng)修改為隨機(jī)字符串,請(qǐng)勿外泄
SECRET_KEY:
#SECURITYWARNING:keepthebootstraptokenusedinproductionsecret!
#預(yù)共享 Tokencoco 和 guacamole 用來注冊(cè)服務(wù)賬號(hào),不在使用原來的注冊(cè)接受機(jī)制
BOOTSTRAP_TOKEN:
#Developmentenvopenthis,whenerroroccurdisplaythefullprocesstrack,Productiondisableit
#DEBUG 模式開啟 DEBUG 后遇到錯(cuò)誤時(shí)可以看到更多日志
DEBUG:false
#DEBUG,INFO,WARNING,ERROR,CRITICALcanset.Seehttps://docs.djangoproject.com/en/1.10/topics/logging/
#日志級(jí)別
LOG_LEVEL:ERROR
#LOG_DIR:
#Sessionexpirationsetting,Default24hour,Alsosetexpiredononbrowserclose
#瀏覽器 Session 過期時(shí)間,默認(rèn) 24 小時(shí), 也可以設(shè)置瀏覽器關(guān)閉則過期
#SESSION_COOKIE_AGE:86400
SESSION_EXPIRE_AT_BROWSER_CLOSE:true
#Databasesetting,Supportsqlite3,mysql,postgres....
#數(shù)據(jù)庫設(shè)置
#Seehttps://docs.djangoproject.com/en/1.10/ref/settings/#databases
#SQLitesetting:
#使用單文件 sqlite 數(shù)據(jù)庫
#DB_ENGINE:sqlite3
#DB_NAME:
#MySQLorpostgressettinglike:
#使用 Mysql 作為數(shù)據(jù)庫
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
#運(yùn)行時(shí)綁定端口
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 來進(jìn)行認(rèn)證設(shè)置
#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 運(yùn)行 Jumpserver
$cd/opt/jumpserver
$./jmsstartall# 后臺(tái)運(yùn)行使用 - d 參數(shù)./jmsstartall-d
#新版本更新了運(yùn)行腳本, 使用方式./jmsstart|stop|status|restartall 后臺(tái)運(yùn)行請(qǐng)?zhí)砑?- d 參數(shù)
運(yùn)行不報(bào)錯(cuò), 請(qǐng)繼續(xù)往下操作
三. 安裝 SSH Server 和 WebSocket Server: Coco
3.1 下載或 Clone 項(xiàng)目
新開一個(gè)終端
$cd/opt
$source/opt/py3/bin/activate
$gitclonehttps://github.com/jumpserver/coco.git cdcoco gitcheckoutmaster
$echo source/opt/py3/bin/activate /opt/coco/.env# 進(jìn)入 coco 目錄時(shí)將自動(dòng)載入 python 虛擬環(huán)境
#首次進(jìn)入 coco 文件夾會(huì)有提示, 按 y 即可
#Areyousureyouwanttoallowthis?(y/N)y
3.2 安裝依賴
$cd/opt/coco/requirements
$pipinstall-rrequirements.txt
3.3 查看配置文件并運(yùn)行
$cd/opt/coco
$mkdirkeyslogs
$cpconfig_example.ymlconfig.yml
$vimconfig.yml
# 項(xiàng)目名稱, 會(huì)用來向 Jumpserver 注冊(cè), 識(shí)別而已, 不能重復(fù)
#NAME:{{Hostname}}
#Jumpserver 項(xiàng)目的 url,api 請(qǐng)求注冊(cè)會(huì)使用
CORE_HOST:http://127.0.0.1:8080
#BootstrapToken, 預(yù)共享秘鑰, 用來注冊(cè) coco 使用的 serviceaccount 和 terminal
#請(qǐng)和 jumpserver 配置文件中保持一致,注冊(cè)完成后可以刪除
BOOTSTRAP_TOKEN: ChangeIT
#啟動(dòng)時(shí)綁定的 ip, 默認(rèn) 0.0.0.0
#BIND_HOST:0.0.0.0
#監(jiān)聽的 SSH 端口號(hào), 默認(rèn) 2222
#SSHD_PORT:2222
#監(jiān)聽的 HTTP/WS 端口號(hào),默認(rèn) 5000
#HTTPD_PORT:5000
#項(xiàng)目使用的 ACCESSKEY, 默認(rèn)會(huì)注冊(cè), 并保存到 ACCESS_KEY_STORE 中,
#如果有需求, 可以寫到配置文件中, 格式 access_key_id:access_key_secret
#ACCESS_KEY:null
#ACCESSKEY 保存的地址, 默認(rèn)注冊(cè)后會(huì)保存到該文件中
#ACCESS_KEY_STORE:keys/.access_key
#加密密鑰
#SECRET_KEY:null
#設(shè)置日志級(jí)別[DEBUG,INFO,WARN,ERROR,FATAL,CRITICAL]
#LOG_LEVEL:INFO
LOG_LEVEL:ERROR
#日志存放的目錄
#LOG_DIR:logs
#SSH 白名單
#ALLOW_SSH_USER:all
#SSH 黑名單, 如果用戶同時(shí)在白名單和黑名單,黑名單優(yōu)先生效
#BLOCK_SSH_USER:
#和 Jumpserver 保持心跳時(shí)間間隔
#HEARTBEAT_INTERVAL:5
#Admin 的名字,出問題會(huì)提示給用戶
#ADMINS:
#SSH 連接超時(shí)時(shí)間(default15seconds)
#SSH_TIMEOUT:15
#語言[en,zh]
#LANGUAGE_CODE:zh
#SFTP 的根目錄, 可選 /tmp,Home 其他自定義目錄
#SFTP_ROOT:/tmp
#SFTP 是否顯示隱藏文件
#SFTP_SHOW_HIDDEN_FILE:false
$./cocodstart# 后臺(tái)運(yùn)行使用 - d 參數(shù)./cocodstart-d
#新版本更新了運(yùn)行腳本, 使用方式./cocodstart|stop|status|restart 后臺(tái)運(yùn)行請(qǐng)?zhí)砑?- d 參數(shù)
四. 安裝 Web Terminal 前端: Luna
Luna 已改為純前端, 需要 Nginx 來運(yùn)行訪問
訪問 (https://github.com/jumpserver/luna/releases) 下載對(duì)應(yīng)版本的 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 資產(chǎn), 可以直接跳過這一步)
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 服務(wù)
$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# 創(chuàng)建 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# 修改默認(rèn)端口為 8081
$sed-i s/FINE/WARNING/g /config/tomcat8/conf/logging.properties# 修改 log 等級(jí)為 WARNING
5.4 配置環(huán)境變量
$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 啟動(dòng) Guacamole
$/etc/init.d/guacdrestart
$sh/config/tomcat8/bin/startup.sh
這里所需要注意的是 guacamole 暴露出來的端口是 8081, 若與主機(jī)上其他端口沖突請(qǐng)自定義一下。
六. 配置 Nginx 整合各組件
6.1 安裝 Nginx
$apt-get-yinstallnginx
$rm-rf/etc/nginx/site-enabled/default
6.2 準(zhǔn)備配置文件 修改 /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/;# 靜態(tài)資源, 如果修改安裝目錄, 此處需要修改
location/socket.io/{
proxy_passhttp://localhost:5000/socket.io/;# 如果 coco 安裝在別的服務(wù)器, 請(qǐng)?zhí)顚懰?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 安裝在別的服務(wù)器, 請(qǐng)?zhí)顚懰?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# 如果沒有報(bào)錯(cuò)請(qǐng)繼續(xù) $nginx-sreload
6.4 開始使用 Jumpserver
服務(wù)全部啟動(dòng)后, 訪問 http://192.168.244.144
默認(rèn)賬號(hào): admin 密碼: admin
到 Jumpserver 會(huì)話管理 - 終端管理 檢查 Coco Guacamole 等應(yīng)用的注冊(cè)
測(cè)試連接
如果登錄客戶端是 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 默認(rèn)上傳的位置在資產(chǎn)的 /tmp 目錄下#windows 拖拽上傳的位置在資產(chǎn)的 GuacamoleRDP 上的 G 目錄下
以上就是關(guān)于“Ubuntu 怎么安裝 Jumpserver”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望丸趣 TV 小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注丸趣 TV 行業(yè)資訊頻道。