JumpServer:多云環(huán)境下更好用的堡壘機
一、jumpServer簡介
1.1、頁面展示
1.2、特色優(yōu)勢
1.3、功能列表
1.4、架構(gòu)圖
1.5、端口說明
1.6、產(chǎn)品組件
一、JumpServer簡介
1.1、頁面展示
1.2、特色優(yōu)勢
1.3、功能列表
1.4、架構(gòu)圖
1.5、端口說明
1.6、產(chǎn)品組件
二、安裝JumpServer
2.1、一鍵自動部署
2.2、手動部署
三、JumpServer使用說明
3.1、系統(tǒng)設置
3.1.1、基本設置
3.1.2、郵件設置
3.1.3、登陸用戶
3.2、資產(chǎn)管理
3.2.1、編輯資產(chǎn)樹
3.2.2、創(chuàng)建管理用戶
3.2.3、創(chuàng)建資產(chǎn)
3.2.4、創(chuàng)建數(shù)據(jù)庫應用
3.2.5、創(chuàng)建系統(tǒng)用戶
3.3、創(chuàng)建授權(quán)規(guī)則
3.3.1、為用戶分配資產(chǎn)
3.3.2、為用戶分配數(shù)據(jù)庫應用
3.4、用戶登錄
3.5、查看用戶操作回放
一、JumpServer簡介
JumpServer 是全球首款開源的堡壘機,使用 GNU GPL v2.0 開源協(xié)議,是符合 4A 規(guī)范的運維安全審計系統(tǒng)。
JumpServer 使用 Python / Django 為主進行開發(fā),遵循 Web 2.0 規(guī)范,配備了業(yè)界領先的 Web Terminal 方案,交互界面美觀、用戶體驗好。
JumpServer 采納分布式架構(gòu),支持多機房跨區(qū)域部署,支持橫向擴展,無資產(chǎn)數(shù)量及并發(fā)限制。
**官網(wǎng)網(wǎng)址:**https://www.jumpserver.org/
文檔:https://docs.jumpserver.org/zh/master/
GitHub:https://github.com/jumpserver/jumpserver
1.1、頁面展示
1.2、特色優(yōu)勢
開源: 零門檻,線上快速獲取和安裝;
分布式: 輕松支持大規(guī)模并發(fā)訪問;
無插件: 僅需瀏覽器,極致的 Web Terminal 使用體驗;
多云支持: 一套系統(tǒng),同時管理不同云上面的資產(chǎn);
云端存儲: 審計錄像云端存儲,永不丟失;
多租戶: 一套系統(tǒng),多個子公司和部門同時使用;
多應用支持: 數(shù)據(jù)庫,Windows遠程應用,Kubernetes。
1.3、功能列表
1.4、架構(gòu)圖
首先前端是nginx提供的動態(tài)頁面,可以通過瀏覽器來進行訪問;
接著jumpserver為管理后臺,管理員可以通過web頁面進行資產(chǎn)管理、用戶管理、資產(chǎn)授權(quán)等操作,用戶可以通過web頁面進行資產(chǎn)登錄、文件管理等操作;
coco 為ssh server和 web terminal server,用戶可以使用自己的賬戶通過ssh或者web terminal訪問ssh協(xié)議和telnet協(xié)議資產(chǎn);
Luna 為web terminal server前端頁面,用戶使用web terminal方式登錄所需要的組件;
Guacamole 為RDP協(xié)議和vnc協(xié)議資產(chǎn)組件,用戶可以通過web terminal來連接RDP協(xié)議和vnc協(xié)議資產(chǎn)(暫時只能通過web terminal來訪問);
1.5、端口說明
端口涉及如下端口:
Jumpserver 默認端口為 8080/tcp ,瀏覽器訪問的端口
Coco 默認 SSH 端口為 2222/tcp,Web Terminal默認 端口為 5000/tcp ,通過ssh連接的時候使用的端口
Guacamole 默認端口為 8081/tcp
Nginx 默認端口為 80/tcp
Redis 默認端口為 6379/tcp
Mysql/Mariadb 默認端口為 3306/tcp
1.6、產(chǎn)品組件
Jumpserver:管理后臺,是核心組件(Core), 使用 Django Class Based View 風格開發(fā),支持 Restful API。
Coco:Coco為 SSH Server 和 Web Terminal Server。用戶可以通過使用自己的賬戶登錄 SSH 或者 Web Terminal直接訪問被授權(quán)的資產(chǎn)。不需要知道服務器的賬戶和密碼,現(xiàn)在 Coco 已經(jīng)被 koko 取代。
Luna:luna 為 Web Terminal Server 前端頁面,用戶使用 Web Terminal 方式登錄時所需要的插件。
Guacamole:Guacamole是一個開源項目,為遠程桌面提供解決方案。Jumpserver 使用其組件實現(xiàn) RDP和VNC 功能,Jumpserver 并沒有修改其代碼而是添加了額外的插件,支持 Jumpserver 調(diào)用。
二、安裝JumpServer
極速安裝:https://docs.jumpserver.org/zh/master/install/setup_by_fast/
完整文檔:https://docs.jumpserver.org
演示視頻:https://www.bilibili.com/video/BV1ZV41127GB
有2種安裝方式,可以一鍵自動部署,也可以手動部署,建議一鍵自動部署。
2.1、一鍵自動部署
僅需兩步快速安裝 JumpServer:
準備一臺 2核4G (最低)且可以訪問互聯(lián)網(wǎng)的 64 位 Linux 主機;
以 root 用戶執(zhí)行如下命令一鍵安裝 JumpServer。
-- 一鍵安裝啟動 curl -sSL https://github.com/jumpserver/jumpserver/releases/download/v2.8.2/quick_start.sh | bash -- 注意:安裝過程需要下載docker環(huán)境,重啟docker,下載很多鏡像,最后大約占用空間3g左右,安裝時間大約30分鐘。 [root@docker36 jumpserver-installer-v2.8.2]# docker images | grep jumpserver jumpserver/core v2.8.2 f3dd5c1946ec 2 days ago 1.01GB jumpserver/guacamole v2.8.2 8869e8512eec 2 days ago 824MB jumpserver/lina v2.8.2 98abb9179db1 2 days ago 27.9MB jumpserver/luna v2.8.2 d2e17fada2f6 2 days ago 27MB jumpserver/koko v2.8.2 40cdabc32153 2 days ago 426MB jumpserver/mysql 5 697daaecf703 3 months ago 448MB jumpserver/redis 6-alpine f731cd48185c 3 months ago 31.6MB jumpserver/nginx alpine2 b47070d178ad 18 months ago 18.5MB -- 若不能下載,請?zhí)砑右韵陆馕觯?echo " 13.229.188.59 github.com 199.232.4.133 raw.githubusercontent.com " >> /etc/hosts echo " nameserver 114.114.114.114 nameserver 8.8.8.8 nameserver 223.5.5.5 " > /etc/resolv.conf -- 啟動 cd /opt/jumpserver-installer-v2.8.2/ ./jmsctl.sh start -- 會啟動9個容器,創(chuàng)建一個網(wǎng)絡叫jms_net,子網(wǎng)為:"192.168.250.0/24" -- 首次啟動可能會報錯,可以使用命令“docker logs -f jms_core --tail 200”查看,等表結(jié)構(gòu)合并完畢后,確定該命令輸出都是 ok, 沒有 error, 重新 start 即可,詳見https://docs.jumpserver.org/zh/master/install/setup_by_fast/ -- Web訪問 http://192.168.66.36:8080 https://192.168.66.36:8443 (默認用戶名密碼為:admin/admin) -- 啟動后的容器和狀態(tài) [root@docker36 jumpserver-installer-v2.8.2]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 26b95ecb8900 jumpserver/nginx:alpine2 "sh -c 'crond -b -d …" 57 seconds ago Up 51 seconds (healthy) 0.0.0.0:8080->80/tcp, 0.0.0.0:8443->443/tcp jms_nginx 9c25659c23c4 jumpserver/luna:v2.8.2 "/docker-entrypoint.…" About a minute ago Up About a minute (healthy) 80/tcp jms_luna c8d74738aaa2 jumpserver/lina:v2.8.2 "/docker-entrypoint.…" About a minute ago Up About a minute (healthy) 80/tcp jms_lina bc24581c6d0a jumpserver/koko:v2.8.2 "./entrypoint.sh" About a minute ago Up About a minute (healthy) 0.0.0.0:2222->2222/tcp, 5000/tcp jms_koko cc17285dc6ec jumpserver/guacamole:v2.8.2 "/init" About a minute ago Up About a minute (healthy) 8080/tcp jms_guacamole edac0a216aa3 jumpserver/core:v2.8.2 "./entrypoint.sh sta…" About a minute ago Up About a minute (healthy) 8070/tcp, 8080/tcp jms_celery 2ca03ab4d62d jumpserver/core:v2.8.2 "./entrypoint.sh sta…" 11 minutes ago Up 11 minutes (healthy) 8070/tcp, 8080/tcp jms_core 69e9bdede65f jumpserver/redis:6-alpine "docker-entrypoint.s…" 13 minutes ago Up 13 minutes (healthy) 6379/tcp jms_redis c73896dc22ad jumpserver/mysql:5 "docker-entrypoint.s…" 13 minutes ago Up 13 minutes (healthy) 3306/tcp, 33060/tcp jms_mysql [root@docker36 jumpserver-installer-v2.8.2]# [root@docker36 jumpserver-installer-v2.8.2]# ./jmsctl.sh status Name Command State Ports ----------------------------------------------------------------------------------------------------------- jms_celery ./entrypoint.sh start task Up (healthy) 8070/tcp, 8080/tcp jms_core ./entrypoint.sh start web Up (healthy) 8070/tcp, 8080/tcp jms_guacamole /init Up (healthy) 8080/tcp jms_koko ./entrypoint.sh Up (healthy) 0.0.0.0:2222->2222/tcp, 5000/tcp jms_lina /docker-entrypoint.sh ngin ... Up (healthy) 80/tcp jms_luna /docker-entrypoint.sh ngin ... Up (healthy) 80/tcp jms_mysql docker-entrypoint.sh --cha ... Up (healthy) 3306/tcp, 33060/tcp jms_nginx sh -c crond -b -d 8 && ngi ... Up (healthy) 0.0.0.0:8443->443/tcp, 0.0.0.0:8080->80/tcp jms_redis docker-entrypoint.sh redis ... Up (healthy) 6379/tcp
https://192.168.66.36:8443
http://192.168.66.36:8080/
提示:第一次登陸時,它會讓我們重設密碼;
提示:重設密碼后,重新登錄,jumpserver的首頁就是下圖這樣;后續(xù)我們就可以在這個界面來管理內(nèi)網(wǎng)服務器了;到此jumpserver服務器就搭建好了;
2.2、手動部署
cd /opt yum -y install wget wget https://github.com/jumpserver/installer/releases/download/v2.8.2/jumpserver-installer-v2.8.2.tar.gz tar -xf jumpserver-installer-v2.8.2.tar.gz cd jumpserver-installer-v2.8.2 cat config-example.txt # 以下設置如果為空系統(tǒng)會自動生成隨機字符串填入 ## 遷移請修改 SECRET_KEY 和 BOOTSTRAP_TOKEN 為原來的設置 ## 安裝配置 DOCKER_IMAGE_PREFIX=swr.cn-south-1.myhuaweicloud.com VOLUME_DIR=/opt/jumpserver DOCKER_DIR=/var/lib/docker SECRET_KEY= BOOTSTRAP_TOKEN= LOG_LEVEL=ERROR ## 使用外置 MySQL 配置 USE_EXTERNAL_MYSQL=0 DB_HOST=mysql DB_PORT=3306 DB_USER=root DB_PASSWORD= DB_NAME=jumpserver ## 使用外置 Redis 配置 USE_EXTERNAL_REDIS=0 REDIS_HOST=redis REDIS_PORT=6379 REDIS_PASSWORD= ## Compose 項目設置 COMPOSE_PROJECT_NAME=jms COMPOSE_HTTP_TIMEOUT=3600 DOCKER_CLIENT_TIMEOUT=3600 DOCKER_SUBNET=192.168.250.0/24 ## IPV6 DOCKER_SUBNET_IPV6=2001:db8:10::/64 USE_IPV6=0 ## Nginx 配置,這個 Nginx 是用來分發(fā)路徑到不同的服務 HTTP_PORT=80 HTTPS_PORT=443 SSH_PORT=2222 ## LB 配置, 這個 Nginx 是 HA 時可以啟動負載均衡到不同的主機 USE_LB=0 LB_HTTP_PORT=80 LB_HTTPS_PORT=443 LB_SSH_PORT=2222 ## Task 配置 USE_TASK=1 ## XPack USE_XPACK=0 # Mysql 容器配置 MYSQL_ROOT_PASSWORD= MYSQL_DATABASE=jumpserver # Core 配置 # SESSION_COOKIE_AGE=86400 SESSION_EXPIRE_AT_BROWSER_CLOSE=true ### Keycloak 配置方式 ### AUTH_OPENID=true ### BASE_SITE_URL=https://jumpserver.company.com/ ### AUTH_OPENID_SERVER_URL=https://keycloak.company.com/auth ### AUTH_OPENID_REALM_NAME=cmp ### AUTH_OPENID_CLIENT_ID=jumpserver ### AUTH_OPENID_CLIENT_SECRET= ### AUTH_OPENID_SHARE_SESSION=true ### AUTH_OPENID_IGNORE_SSL_VERIFICATION=true # Koko 配置 CORE_HOST=http://core:8080 # Guacamole 配置 JUMPSERVER_SERVER=http://core:8080 JUMPSERVER_KEY_DIR=/config/guacamole/data/key/ JUMPSERVER_RECORD_PATH=/config/guacamole/data/record/ JUMPSERVER_DRIVE_PATH=/config/guacamole/data/drive/ JUMPSERVER_ENABLE_DRIVE=true JUMPSERVER_CLEAR_DRIVE_SESSION=true JUMPSERVER_CLEAR_DRIVE_SCHEDULE=24
三、JumpServer使用說明
視頻教程 JumpServer 從入門到精通:https://www.bilibili.com/video/BV19D4y1S7s4
官網(wǎng):https://jumpserver.readthedocs.io/zh/master/admin-guide/quick_start/
3.1、系統(tǒng)設置
3.1.1、基本設置
基本設置是必須設置當前jumpserver的url。
3.1.2、郵件設置
必須設置才能使用與郵件相關的功能
不可以同時勾選 使用SSL 和 使用TLS
在系統(tǒng)設置—>郵件設置,把對應的賬號信息,郵件服務器信息都填寫好,然后測試連接,如果可以正常收到郵件,說明郵件服務器信息和郵件用戶名密碼沒有問題;最后點提交;
和郵件主題前綴;這樣在用戶收到郵件中的鏈接都會指向這個jumpserver的url;
收到郵件:
3.1.3、登陸用戶
jumpserver涉及到的三個用戶:
登錄用戶,用于創(chuàng)建給開發(fā)人員進行登錄JumpServer的用戶;
管理用戶,指定用戶名和密碼,就是添加的資源機器的登錄賬號;
系統(tǒng)用戶,jumpserver跳轉(zhuǎn)登錄資產(chǎn)時使用的用戶;
在用戶管理—>用戶列表—>創(chuàng)建;填寫好用戶相關信息后,點擊最下面的提交;
提示:新建用戶成功以后,對應的用戶郵箱就會收到一份有jumpserver發(fā)送到用戶創(chuàng)建成功的郵件,用戶可以點擊此郵件中的鏈接進行密碼設定;
3.2、資產(chǎn)管理
準備兩個測試資產(chǎn)和一個數(shù)據(jù)庫來驗證功能
Windows 資產(chǎn)先進行 Windows SSH 設置
MySQL 應用需要授權(quán) core 和 koko 的遠程訪問的權(quán)限 MySQL 應用要求
3.2.1、編輯資產(chǎn)樹
根節(jié)點 Default 不能重名, 右擊節(jié)點可以添加、刪除和重命名節(jié)點, 以及進行資產(chǎn)相關的操作
說明:\:
點擊頁面左側(cè)的 資產(chǎn)管理 - 資產(chǎn)列表
先在根節(jié)點 Default 右鍵新建 SSH Server 和 RDP Server 兩個節(jié)點
Defaule ├─ SSH Server └─ RDP Server
3.2.2、創(chuàng)建管理用戶
點擊頁面左側(cè)的 資產(chǎn)管理 - 新建管理用戶 創(chuàng)建兩個管理用戶, 管理用戶的內(nèi)容就是上面表單的 Admin User 和 Password
名稱不能重名, 密碼或者密鑰二選一即可, 一些資產(chǎn)不允許通過 密碼 認證可以改用 私鑰 認證
資產(chǎn)管理---->管理用戶---->創(chuàng)建,填寫好對應被管控端的管理員和密碼點擊提交;管理用戶是資產(chǎn)(被控服務器)上的 root,或擁有 NOPASSWD: ALL sudo 權(quán)限的用戶, JumpServer 使用該用戶來 推送系統(tǒng)用戶、獲取資產(chǎn)硬件信息 等。
3.2.3、創(chuàng)建資產(chǎn)
點擊頁面左側(cè)的 資產(chǎn)管理 - 資產(chǎn)列表 - 創(chuàng)建資產(chǎn) 把兩個資產(chǎn)導入
主機名不能重名
創(chuàng)建 Windows 資產(chǎn), 注意協(xié)議組我們需要選擇 ssh 和 rdp, 否則無法獲取 Windows 資產(chǎn)的狀態(tài)及硬件信息。
提示:資產(chǎn)管理—>資產(chǎn)列表—>新建,填寫對應被管控的的主機信息和ip地址信息,以及管理用戶,點擊最下方的提交;
提示:提交完成后,我們就可以在資產(chǎn)列表中看到我們剛才添加到主機;
3.2.4、創(chuàng)建數(shù)據(jù)庫應用
擊頁面左側(cè)的 應用管理 - 數(shù)據(jù)庫應用 - 創(chuàng)建數(shù)據(jù)庫應用 創(chuàng)建 mysql 數(shù)據(jù)庫
數(shù)據(jù)庫 選項可以留空, 如果是某些特定用戶, 只允許訪問指定的數(shù)據(jù)庫, 這里指定數(shù)據(jù)庫名稱即可
3.2.5、創(chuàng)建系統(tǒng)用戶
點擊頁面左側(cè)的 資產(chǎn)管理 - 系統(tǒng)用戶 - 創(chuàng)建系統(tǒng)用戶 創(chuàng)建對應協(xié)議系統(tǒng)用戶
資產(chǎn)管理—>系統(tǒng)用戶—>新建,填寫好用戶名,勾選自動推送和自動生成密鑰,點擊最下方的提交即可;這里填寫的用戶會用作jumpserver上登錄對應的主機用到用戶,如果被管控端沒有這個用戶,jumpserver就會利用我們剛才添加的管理用戶去創(chuàng)建一個這里的系統(tǒng)用戶;
3.3、創(chuàng)建授權(quán)規(guī)則
權(quán)限管理—>資產(chǎn)授權(quán)—>創(chuàng)建,填寫好名稱后,要選擇用戶和組以及資產(chǎn)和系統(tǒng)用戶,然后點擊最下方的提交;到此一個資源就授權(quán)給test用戶和test組中的成員了;這里需要注意一點,一個節(jié)點中有很多server,如果你只想授權(quán)單臺server給某個用戶,下面的節(jié)點就留空,如果你想授權(quán)一個節(jié)點給用戶你可以選擇節(jié)點,上面的資產(chǎn)就可以留空,如果你又想授權(quán)單個資產(chǎn)和某個節(jié)點給用戶,就選擇對應的資產(chǎn)和節(jié)點即可;如果這里選擇default節(jié)點,表示把default節(jié)點下的所有主機都授權(quán)給用戶;默認default節(jié)點包含所有主機;
3.3.1、為用戶分配資產(chǎn)
點擊頁面左側(cè)的 授權(quán)管理 - 資產(chǎn)授權(quán) - 創(chuàng)建授權(quán)規(guī)則 創(chuàng)建兩個授權(quán)
3.3.2、為用戶分配數(shù)據(jù)庫應用
點擊頁面左側(cè)的 授權(quán)管理 - 數(shù)據(jù)庫應用 - 創(chuàng)建授權(quán)規(guī)則 創(chuàng)建數(shù)據(jù)庫授權(quán)
3.4、用戶登錄
登錄 JumpServer
點擊頁面左側(cè)的 會話管理 - Web終端 用戶只能看到自己被管理員授權(quán)了的 資產(chǎn) , 如果登錄后無資產(chǎn), 請聯(lián)系管理員進行確認
連接資產(chǎn)
在我的資產(chǎn)點擊資產(chǎn)右邊的 連接 快速連接資產(chǎn)
也可以點擊左側(cè)欄的 Web終端 點擊 資產(chǎn) 名字, 就連上資產(chǎn)了
如果顯示連接 超時, 請參考 FAQ 文檔進行處理
斷開資產(chǎn)
點擊頁面頂部的 Server 按鈕會彈出選個選項, 第一個斷開所選的連接, 第二個斷開所有連接
也可以直接點資產(chǎn)小窗口的 X , SSH 會話也可以輸入 exit 來退出
直接關閉頁面也可以, 但是不推薦
文件管理
點擊 文件管理
先在左邊選擇資產(chǎn), 目前只支持自動登錄的 SSH 協(xié)議 資產(chǎn)
也可以使用 sftp 方式進行 文件管理
3.5、查看用戶操作回放
點擊會話管理---->會話管理---->歷史會話----> 找到對應會話后面的回放即可查看對應用戶在過去會話中執(zhí)行的操作;
TCP/IP web前端
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。