【DB寶48】JumpServer:多雲環境下更好用的堡壘機

[toc]前端

1、JumpServer簡介

JumpServer 是全球首款開源的堡壘機,使用 GNU GPL v2.0 開源協議,是符合 4A 規範的運維安全審計系統。mysql

JumpServer 使用 Python / Django 爲主進行開發,遵循 Web 2.0 規範,配備了業界領先的 Web Terminal 方案,交互界面美觀、用戶體驗好。nginx

JumpServer 採納分佈式架構,支持多機房跨區域部署,支持橫向擴展,無資產數量及併發限制。git

官網網址:https://www.jumpserver.org/github

文檔:https://docs.jumpserver.org/zh/master/web

GitHub:https://github.com/jumpserver/jumpserverredis

1.一、頁面展現

【DB寶48】JumpServer:多雲環境下更好用的堡壘機

1.二、特點優點

  • 開源: 零門檻,線上快速獲取和安裝;
  • 分佈式: 輕鬆支持大規模併發訪問;
  • 無插件: 僅需瀏覽器,極致的 Web Terminal 使用體驗;
  • 多雲支持: 一套系統,同時管理不一樣雲上面的資產;
  • 雲端存儲: 審計錄像雲端存儲,永不丟失;
  • 多租戶: 一套系統,多個子公司和部門同時使用;
  • 多應用支持: 數據庫,Windows遠程應用,Kubernetes。

1.三、功能列表

<table>
<tr>
<td rowspan="8">身份認證<br>Authentication</td>
<td rowspan="5">登陸認證</td>
<td>資源統一登陸與認證</td>
</tr>
<tr>
<td>LDAP/AD 認證</td>
</tr>
<tr>
<td>RADIUS 認證</td>
</tr>
<tr>
<td>OpenID 認證(實現單點登陸)</td>
</tr>
<tr>
<td>CAS 認證 (實現單點登陸)</td>
</tr>
<tr>
<td rowspan="2">MFA認證</td>
<td>MFA 二次認證(Google Authenticator)</td>
</tr>
<tr>
<td>RADIUS 二次認證</td>
</tr>
<tr>
<td>登陸複覈</td>
<td>用戶登陸行爲受管理員的監管與控制:small_orange_diamond:</td>
</tr>
<tr>
<td rowspan="11">帳號管理<br>Account</td>
<td rowspan="2">集中帳號</td>
<td>管理用戶管理</td>
</tr>
<tr>
<td>系統用戶管理</td>
</tr>
<tr>
<td rowspan="4">統一密碼</td>
<td>資產密碼託管</td>
</tr>
<tr>
<td>自動生成密碼</td>
</tr>
<tr>
<td>自動推送密碼</td>
</tr>
<tr>
<td>密碼過時設置</td>
</tr>
<tr>
<td rowspan="2">批量改密</td>
<td>按期批量改密:small_orange_diamond:</td>
</tr>
<tr>
<td>多種密碼策略:small_orange_diamond:</td>
</tr>
<tr>
<td>多雲納管 </td>
<td>對私有云、公有云資產自動統一納管:small_orange_diamond:</td>
</tr>
<tr>
<td>收集用戶 </td>
<td>自定義任務按期收集主機用戶:small_orange_diamond:</td>
</tr>
<tr>
<td>密碼匣子 </td>
<td>統一對資產主機的用戶密碼進行查看、更新、測試操做:small_orange_diamond:</td>
</tr>
<tr>
<td rowspan="15">受權控制<br>Authorization</td>
<td>多維受權</td>
<td>對用戶、用戶組、資產、資產節點、應用以及系統用戶進行受權</td>
</tr>
<tr>
<td rowspan="4">資產受權</td>
<td>資產以樹狀結構進行展現</td>
</tr>
<tr>
<td>資產和節點都可靈活受權</td>
</tr>
<tr>
<td>節點內資產自動繼承受權</td>
</tr>
<tr>
<td>子節點自動繼承父節點受權</td>
</tr>
<tr>
<td rowspan="2">應用受權</td>
<td>實現更細粒度的應用級受權</td>
</tr>
<tr>
<td>MySQL 數據庫應用、RemoteApp 遠程應用:small_orange_diamond: </td>
</tr>
<tr>
<td>動做受權</td>
<td>實現對受權資產的文件上傳、下載以及鏈接動做的控制</td>
</tr>
<tr>
<td>時間受權</td>
<td>實現對受權資源使用時間段的限制</td>
</tr>
<tr>
<td>特權指令</td>
<td>實現對特權指令的使用(支持黑白名單)</td>
</tr>
<tr>
<td>命令過濾</td>
<td>實現對受權系統用戶所執行的命令進行控制</td>
</tr>
<tr>
<td>文件傳輸</td>
<td>SFTP 文件上傳/下載</td>
</tr>
<tr>
<td>文件管理</td>
<td>實現 Web SFTP 文件管理</td>
</tr>
<tr>
<td>工單 管理</td>
<td>支持對用戶登陸請求行爲進行控制:small_orange_diamond:</td>
</tr>
<tr>
<td>組織管理</td>
<td>實現多租戶管理與權限隔離:small_orange_diamond:</td>
</tr>
<tr>
<td rowspan="7">安全審計<br>Audit</td>
<td>操做審計</td>
<td>用戶操做行爲審計</td>
</tr>
<tr>
<td rowspan="2">會話審計</td>
<td>在線會話內容審計</td>
</tr>
<tr>
<td>歷史會話內容審計</td>
</tr>
<tr>
<td rowspan="2">錄像審計</td>
<td>支持對 Linux、Windows 等資產操做的錄像進行回放審計</td>
</tr>
<tr>
<td>支持對 RemoteApp:small_orange_diamond:、MySQL 等應用操做的錄像進行回放審計</td>
</tr>
<tr>
<td>指令審計</td>
<td>支持對資產和應用等操做的命令進行審計</td>
</tr>
<tr>
<td>文件傳輸</td>
<td>可對文件的上傳、下載記錄進行審計</td>
</tr>
<tr>
<td rowspan="20">數據庫審計<br>Database</td>
<td rowspan="2">鏈接方式</td>
<td>命令方式</td>
</tr>
<tr>
<td>Web UI方式 :small_orange_diamond:</td>
</tr>
<tr>
<td rowspan="4">支持的數據庫</td>
<td>MySQL</td>
</tr>
<tr>
<td>Oracle :small_orange_diamond:</td>
</tr>
<tr>
<td>MariaDB :small_orange_diamond:</td>
</tr>
<tr>
<td>PostgreSQL :small_orange_diamond:</td>
</tr>
<tr>
<td rowspan="6">功能亮點</td>
<td>語法高亮</td>
</tr>
<tr>
<td>SQL格式化</td>
</tr>
<tr>
<td>支持快捷鍵</td>
</tr>
<tr>
<td>支持選中執行</td>
</tr>
<tr>
<td>SQL歷史查詢</td>
</tr>
<tr>
<td>支持頁面建立 DB, TABLE</td>
</tr>
<tr>
<td rowspan="2">會話審計</td>
<td>命令記錄</td>
</tr>
<tr>
<td>錄像回放</td>
</tr>
</table>sql

1.四、架構圖

【DB寶48】JumpServer:多雲環境下更好用的堡壘機

  • 首先前端是nginx提供的動態頁面,能夠經過瀏覽器來進行訪問;
  • 接着jumpserver爲管理後臺,管理員能夠經過web頁面進行資產管理、用戶管理、資產受權等操做,用戶能夠經過web頁面進行資產登陸、文件管理等操做;
  • coco 爲ssh server和 web terminal server,用戶可使用本身的帳戶經過ssh或者web terminal訪問ssh協議和telnet協議資產;
  • Luna 爲web terminal server前端頁面,用戶使用web terminal方式登陸所須要的組件;
  • Guacamole 爲RDP協議和vnc協議資產組件,用戶能夠經過web terminal來鏈接RDP協議和vnc協議資產(暫時只能經過web terminal來訪問);

1.五、端口說明

端口涉及以下端口:docker

  • 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.六、產品組件

  • Jumpserver:管理後臺,是核心組件(Core), 使用 Django Class Based View 風格開發,支持 Restful API。數據庫

  • Coco:Coco爲 SSH Server 和 Web Terminal Server。用戶能夠經過使用本身的帳戶登陸 SSH 或者 Web Terminal直接訪問被受權的資產。不須要知道服務器的帳戶和密碼,如今 Coco 已經被 koko 取代。

  • Luna:luna 爲 Web Terminal Server 前端頁面,用戶使用 Web Terminal 方式登陸時所須要的插件。

  • Guacamole:Guacamole是一個開源項目,爲遠程桌面提供解決方案。Jumpserver 使用其組件實現 RDP和VNC 功能,Jumpserver 並無修改其代碼而是添加了額外的插件,支持 Jumpserver 調用。

2、安裝JumpServer

有2種安裝方式,能夠一鍵自動部署,也能夠手動部署,建議一鍵自動部署。

2.一、一鍵自動部署

僅需兩步快速安裝 JumpServer:

  1. 準備一臺 2核4G (最低)且能夠訪問互聯網的 64 位 Linux 主機;
  2. 以 root 用戶執行以下命令一鍵安裝 JumpServer。
-- 一鍵安裝啓動
curl -sSL https://github.com/jumpserver/jumpserver/releases/download/v2.8.2/quick_start.sh | bash

-- 注意:安裝過程須要下載docker環境,重啓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

-- 若不能下載,請添加如下解析:
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個容器,建立一個網絡叫jms_net,子網爲:"192.168.250.0/24"
-- 首次啓動可能會報錯,可使用命令「docker logs -f jms_core --tail 200」查看,等表結構合併完畢後,肯定該命令輸出都是 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)

-- 啓動後的容器和狀態
[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

執行過程:

[root@docker36 ~]# curl -sSL https://github.com/jumpserver/jumpserver/releases/download/v2.8.2/quick_start.sh | bash
download install script to /opt/jumpserver-installe (開始下載安裝腳本到 /opt/jumpserver-installe)

       ██╗██╗   ██╗███╗   ███╗██████╗ ███████╗███████╗██████╗ ██╗   ██╗███████╗██████╗
       ██║██║   ██║████╗ ████║██╔══██╗██╔════╝██╔════╝██╔══██╗██║   ██║██╔════╝██╔══██╗
       ██║██║   ██║██╔████╔██║██████╔╝███████╗█████╗  ██████╔╝██║   ██║█████╗  ██████╔╝
  ██   ██║██║   ██║██║╚██╔╝██║██╔═══╝ ╚════██║██╔══╝  ██╔══██╗╚██╗ ██╔╝██╔══╝  ██╔══██╗
  ╚█████╔╝╚██████╔╝██║ ╚═╝ ██║██║     ███████║███████╗██║  ██║ ╚████╔╝ ███████╗██║  ██║
  ╚════╝  ╚═════╝ ╚═╝     ╚═╝╚═╝     ╚══════╝╚══════╝╚═╝  ╚═╝  ╚═══╝  ╚══════╝╚═╝  ╚═╝

                                                                   Version:  v2.8.2  

語言 Language  (cn/en)  (default cn): 

>>> Install and Configure Docker
1. Install Docker
Starting to download Docker engine ...
complete
Starting to download Docker Compose binary ...
complete

2. Configure Docker
是否須要自定義 Docker 數據目錄, 默認將使用 /var/lib/docker 目錄? (y/n)  (default n): complete

3. Start Docker
Docker version has changed or Docker configuration file has been changed, do you want to restart? (y/n)  (default y): complete

>>> Loading Docker Image
[jumpserver/redis:6-alpine]
6-alpine: Pulling from jumpserver/redis
05e7bc50f07f: Pull complete 
14c9d57a1c7f: Pull complete 
ccd033d7ec06: Pull complete 
6ff79b059f99: Pull complete 
d91237314b77: Pull complete 
c47d41ba6aa8: Pull complete 
Digest: sha256:4920debee18fad71841ce101a7867743ff8fe7d47e6191b750c3edcfffc1cb18
Status: Downloaded newer image for swr.cn-south-1.myhuaweicloud.com/jumpserver/redis:6-alpine
Untagged: swr.cn-south-1.myhuaweicloud.com/jumpserver/redis:6-alpine
Untagged: swr.cn-south-1.myhuaweicloud.com/jumpserver/redis@sha256:4920debee18fad71841ce101a7867743ff8fe7d47e6191b750c3edcfffc1cb18

[jumpserver/mysql:5]
5: Pulling from jumpserver/mysql
6ec7b7d162b2: Pull complete 
fedd960d3481: Pull complete 
7ab947313861: Pull complete 
64f92f19e638: Pull complete 
3e80b17bff96: Pull complete 
014e976799f9: Pull complete 
59ae84fee1b3: Pull complete 
7d1da2a18e2e: Pull complete 
301a28b700b9: Pull complete 
979b389fc71f: Pull complete 
403f729b1bad: Pull complete 
Digest: sha256:b3b2703de646600b008cbb2de36b70b21e51e7e93a7fca450d2b08151658b2dd
Status: Downloaded newer image for swr.cn-south-1.myhuaweicloud.com/jumpserver/mysql:5
Untagged: swr.cn-south-1.myhuaweicloud.com/jumpserver/mysql:5
Untagged: swr.cn-south-1.myhuaweicloud.com/jumpserver/mysql@sha256:b3b2703de646600b008cbb2de36b70b21e51e7e93a7fca450d2b08151658b2dd

[jumpserver/nginx:alpine2]
alpine2: Pulling from jumpserver/nginx
c87736221ed0: Pull complete 
6ff0ab02fe54: Pull complete 
e5b318df7728: Pull complete 
b7a5a4fe8726: Pull complete 
Digest: sha256:d25ed0a8c1b4957f918555c0dbda9d71695d7b336d24f7017a87b2081baf1112
Status: Downloaded newer image for swr.cn-south-1.myhuaweicloud.com/jumpserver/nginx:alpine2
Untagged: swr.cn-south-1.myhuaweicloud.com/jumpserver/nginx:alpine2
Untagged: swr.cn-south-1.myhuaweicloud.com/jumpserver/nginx@sha256:d25ed0a8c1b4957f918555c0dbda9d71695d7b336d24f7017a87b2081baf1112

[jumpserver/luna:v2.8.2]
v2.8.2: Pulling from jumpserver/luna
801bfaa63ef2: Pull complete 
b1242e25d284: Pull complete 
7453d3e6b909: Pull complete 
07ce7418c4f8: Pull complete 
e295e0624aa3: Pull complete 
4363a3b6ab61: Pull complete 
7270d1c7bfd7: Pull complete 
Digest: sha256:47f6bc784a2c8b0bfdfdfc465bb5b62012122dc1cd83257afa09edb7d027bdca
Status: Downloaded newer image for swr.cn-south-1.myhuaweicloud.com/jumpserver/luna:v2.8.2
Untagged: swr.cn-south-1.myhuaweicloud.com/jumpserver/luna:v2.8.2
Untagged: swr.cn-south-1.myhuaweicloud.com/jumpserver/luna@sha256:47f6bc784a2c8b0bfdfdfc465bb5b62012122dc1cd83257afa09edb7d027bdca

[jumpserver/core:v2.8.2]
v2.8.2: Pulling from jumpserver/core
6ec7b7d162b2: Already exists 
80ff6536d04b: Pull complete 
2d04da85e485: Pull complete 
998aa32a5c8a: Pull complete 
7733ef26f344: Pull complete 
d441f02b2497: Pull complete 
64cad81ca92c: Pull complete 
cf134c77199b: Pull complete 
5c09bcf88bcf: Pull complete 
fe2b4e1dc49b: Pull complete 
328b09a36265: Pull complete 
c5b2c15fd6d6: Pull complete 
88d58a6b84f5: Pull complete 
Digest: sha256:13a53d3ad8e67c7e25890e44aeaac0dfe9d0f23d75f420bd536181897a0a57a2
Status: Downloaded newer image for swr.cn-south-1.myhuaweicloud.com/jumpserver/core:v2.8.2
Untagged: swr.cn-south-1.myhuaweicloud.com/jumpserver/core:v2.8.2
Untagged: swr.cn-south-1.myhuaweicloud.com/jumpserver/core@sha256:13a53d3ad8e67c7e25890e44aeaac0dfe9d0f23d75f420bd536181897a0a57a2

[jumpserver/koko:v2.8.2]
v2.8.2: Pulling from jumpserver/koko
6d28e14ab8c8: Pull complete 
0df8b93ef734: Pull complete 
64e864129ede: Pull complete 
0a873335f747: Pull complete 
72734be47e36: Pull complete 
210e6f3fd739: Pull complete 
68eb2bfabdf9: Pull complete 
2b514aadeb8d: Pull complete 
b06884356f2d: Pull complete 
48b4106b3314: Pull complete 
c06b5a09cb3a: Pull complete 
52981c83908c: Pull complete 
4a31deb17aed: Pull complete 
8080af3428ec: Pull complete 
d45214541239: Pull complete 
Digest: sha256:0e6b2c718c2bbc046d22240d245014361c4f151d0668efab3a0bdc3d6025fd27
Status: Downloaded newer image for swr.cn-south-1.myhuaweicloud.com/jumpserver/koko:v2.8.2
Untagged: swr.cn-south-1.myhuaweicloud.com/jumpserver/koko:v2.8.2
Untagged: swr.cn-south-1.myhuaweicloud.com/jumpserver/koko@sha256:0e6b2c718c2bbc046d22240d245014361c4f151d0668efab3a0bdc3d6025fd27

[jumpserver/guacamole:v2.8.2]
v2.8.2: Pulling from jumpserver/guacamole
6c33745f49b4: Pull complete 
ef072fc32a84: Pull complete 
c0afb8e68e0b: Pull complete 
d599c07d28e6: Pull complete 
e8a829023b97: Pull complete 
2709df21cc5c: Pull complete 
3bfb431a8cf5: Pull complete 
bb9822eef866: Pull complete 
5842bda2007b: Pull complete 
453a23f25fcb: Pull complete 
95325cfda054: Pull complete 
d0bba8ca7733: Pull complete 
77ed1f7e99c3: Pull complete 
7c218a3bc8c8: Pull complete 
b9b23e074906: Pull complete 
6eb77dc135e9: Pull complete 
5805059e25b4: Pull complete 
8687f3be3de5: Pull complete 
b3a371cb4926: Pull complete 
0e0115337931: Pull complete 
8871470a6d50: Pull complete 
0983df4b79d8: Pull complete 
97e3ae311d7b: Pull complete 
033a9d7411c6: Pull complete 
Digest: sha256:f6587bb65eb40dd101144ee89432a0310c46b245dcebc61965ae4de34fd82775
Status: Downloaded newer image for swr.cn-south-1.myhuaweicloud.com/jumpserver/guacamole:v2.8.2
Untagged: swr.cn-south-1.myhuaweicloud.com/jumpserver/guacamole:v2.8.2
Untagged: swr.cn-south-1.myhuaweicloud.com/jumpserver/guacamole@sha256:f6587bb65eb40dd101144ee89432a0310c46b245dcebc61965ae4de34fd82775

[jumpserver/lina:v2.8.2]
v2.8.2: Pulling from jumpserver/lina
801bfaa63ef2: Already exists 
b1242e25d284: Already exists 
7453d3e6b909: Already exists 
07ce7418c4f8: Already exists 
e295e0624aa3: Already exists 
f2cd4bacfc5e: Pull complete 
16594fe0b0fc: Pull complete 
Digest: sha256:f809b70fcdcbb9216dfa40c6ab1bd293ca85e3eaf2d2c4d77ae9a1e80e0c82e5
Status: Downloaded newer image for swr.cn-south-1.myhuaweicloud.com/jumpserver/lina:v2.8.2
Untagged: swr.cn-south-1.myhuaweicloud.com/jumpserver/lina:v2.8.2
Untagged: swr.cn-south-1.myhuaweicloud.com/jumpserver/lina@sha256:f809b70fcdcbb9216dfa40c6ab1bd293ca85e3eaf2d2c4d77ae9a1e80e0c82e5

>>> Install and Configure JumpServer
1. Check Configuration File
Path to Configuration file: /opt/jumpserver/config
/opt/jumpserver/config/config.txt  [ √ ]
/opt/jumpserver/config/nginx/lb_http_server.conf  [ √ ]
/opt/jumpserver/config/nginx/lb_ssh_server.conf  [ √ ]
/opt/jumpserver/config/core/config.yml  [ √ ]
/opt/jumpserver/config/koko/config.yml  [ √ ]
/opt/jumpserver/config/mysql/my.cnf  [ √ ]
/opt/jumpserver/config/redis/redis.conf  [ √ ]
complete

2. Configure Nginx
configuration file: /opt/jumpserver/config/nginx/cert
/opt/jumpserver/config/nginx/cert/server.crt  [ √ ]
/opt/jumpserver/config/nginx/cert/server.key  [ √ ]
complete

3. Backup Configuration File
Back up to /opt/jumpserver/config/backup/config.txt.2021-03-26_10-26-53
complete

4. Configure Network
Do you want to support IPv6? (y/n)  (default n): complete

5. Configure Private Key
SECRETE_KEY:     ICAgICAgICBUWCBlcnJvcnMgMCAgZHJvcHBlZCAwIG92ZXJyd
BOOTSTRAP_TOKEN: ICAgICAgICBUWCBl
complete

6. Configure Persistent Directory
Do you need custom persistent store, will use the default directory /opt/jumpserver? (y/n)  (default n): complete

7. Configure MySQL
Do you want to use external MySQL? (y/n)  (default n): complete

8. Configure Redis
Do you want to use external Redis? (y/n)  (default n): complete

>>> The Installation is Complete
1. You can use the following command to start, and then visit
./jmsctl.sh start

2. Other management commands
./jmsctl.sh stop
./jmsctl.sh restart
./jmsctl.sh backup
./jmsctl.sh upgrade
For more commands, you can enter ./jmsctl.sh --help to understand

3. Web access
http://172.17.0.3:8080
https://172.17.0.3:8443
Default username: admin  Default password: admin

4. SSH/SFTP access
ssh admin@172.17.0.3 -p2222
sftp -P2222 admin@172.17.0.3

5. More information
Offical Website: https://www.jumpserver.org/
Documentation: https://docs.jumpserver.org/

[root@docker36 ~]# cd /opt/jumpserver-installer-v2.8.2/
[root@docker36 jumpserver-installer-v2.8.2]# ll
總用量 28
drwxrwxr-x 3 root root 4096 3月  18 14:41 compose
-rw-rw-r-- 1 root root 1863 3月  18 14:41 config-example.txt
drwxrwxr-x 7 root root   80 3月  18 14:41 config_init
-rwxrwxr-x 1 root root 5503 3月  18 14:41 jmsctl.sh
drwxrwxr-x 4 root root   27 3月  18 14:41 locale
-rw-rw-r-- 1 root root 2603 3月  18 14:41 README.md
drwxrwxr-x 2 root root 4096 3月  18 14:41 scripts
-rw-rw-r-- 1 root root   46 3月  26 11:54 static.env
drwxrwxr-x 2 root root   39 3月  18 14:41 utils

[root@docker36 jumpserver-installer-v2.8.2]# ./jmsctl.sh start              
Creating network "jms_net" with driver "bridge"
Creating jms_redis ... done
Creating jms_mysql ... done
Creating jms_core  ... done
Creating jms_celery    ... done
Creating jms_guacamole ... done
Creating jms_lina      ... done
Creating jms_koko      ... done
Creating jms_luna      ... done
Creating jms_nginx     ... done

https://192.168.66.36:8443

http://192.168.66.36:8080/

【DB寶48】JumpServer:多雲環境下更好用的堡壘機

提示:第一次登錄時,它會讓咱們重設密碼;

【DB寶48】JumpServer:多雲環境下更好用的堡壘機

提示:重設密碼後,從新登陸,jumpserver的首頁就是下圖這樣;後續咱們就能夠在這個界面來管理內網服務器了;到此jumpserver服務器就搭建好了;

【DB寶48】JumpServer:多雲環境下更好用的堡壘機

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
# 如下設置若是爲空系統會自動生成隨機字符串填入
## 遷移請修改 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 是用來分發路徑到不一樣的服務
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

3、JumpServer使用說明

3.一、系統設置

3.1.一、基本設置

名稱 示例 備註
當前站點URL https://demo.jumpserver.org 不設置的話,郵件收到的地址爲 http://localhost
用戶嚮導URL 用戶首次登錄能夠看到此 超連接,能夠不設置
忘記密碼URL 使用了 LDAP, OPENID 等外部認證系統,能夠自定義

基本設置是必須設置當前jumpserver的url。

【DB寶48】JumpServer:多雲環境下更好用的堡壘機

3.1.二、郵件設置

必須設置才能使用與郵件相關的功能

不能夠同時勾選 使用SSL使用TLS

名稱 示例 備註
SMTP主機 smtp.qq.com 服務商提供的 smtp 服務器
SMTP端口 25 一般是 25
SMTP帳號 296015668@qq.com 一般是 user@domain.com
SMTP密碼 **** 每次 測試鏈接 都須要從新輸入密碼
使用SSL [ ] 若是端口使用 465,必須勾選此項
使用TLS [ ] 若是端口使用 587,必須勾選此項
發件人 296015668@qq.com 測試鏈接 必需要輸入
主題前綴 [JMS] 郵件的標題,收到的郵件是 [JMS] 開頭
測試收件人 296015668@qq.com 測試鏈接必填

在系統設置--->郵件設置,把對應的帳號信息,郵件服務器信息都填寫好,而後測試鏈接,若是能夠正常收到郵件,說明郵件服務器信息和郵件用戶名密碼沒有問題;最後點提交;

和郵件主題前綴;這樣在用戶收到郵件中的連接都會指向這個jumpserver的url;

【DB寶48】JumpServer:多雲環境下更好用的堡壘機

收到郵件:

【DB寶48】JumpServer:多雲環境下更好用的堡壘機

【DB寶48】JumpServer:多雲環境下更好用的堡壘機

3.1.三、登錄用戶

jumpserver涉及到的三個用戶:

  • 登陸用戶,用於建立給開發人員進行登陸JumpServer的用戶;
  • 管理用戶,指定用戶名和密碼,就是添加的資源機器的登陸帳號;
  • 系統用戶,jumpserver跳轉登陸資產時使用的用戶;

在用戶管理--->用戶列表--->建立;填寫好用戶相關信息後,點擊最下面的提交;

【DB寶48】JumpServer:多雲環境下更好用的堡壘機

提示:新建用戶成功之後,對應的用戶郵箱就會收到一份有jumpserver發送到用戶建立成功的郵件,用戶能夠點擊此郵件中的連接進行密碼設定;

3.二、資產管理

準備兩個測試資產和一個數據庫來驗證功能

IP Host name Port System Admin User Password
172.16.80.11 test_ssh01 22 Centos 7 root Test2020.L
172.16.80.21 test_rdp01 3389 Windows 10 administrator Test2020.W
172.16.80.31 test_mysql01 3306 MySQL 5 root Test2020.M

Windows 資產先進行 Windows SSH 設置

MySQL 應用須要受權 core 和 koko 的遠程訪問的權限 MySQL 應用要求

3.2.一、編輯資產樹

根節點 Default 不能重名, 右擊節點能夠添加、刪除和重命名節點, 以及進行資產相關的操做

說明:\:

點擊頁面左側的 資產管理 - 資產列表
先在根節點 Default 右鍵新建 SSH ServerRDP Server 兩個節點

Defaule
├─ SSH Server
└─ RDP Server

3.2.二、建立管理用戶

點擊頁面左側的 資產管理 - 新建管理用戶 建立兩個管理用戶, 管理用戶的內容就是上面表單的 Admin UserPassword

名稱不能重名, 密碼或者密鑰二選一便可, 一些資產不容許經過 密碼 認證能夠改用 私鑰 認證

表單 SSH 管理用戶示例 RDP 管理用戶示例
名稱 172.16.80.11_root 172.16.80.21_administrator
用戶名 root administrator
密碼 Test2020.L Test2020.W
SSH密鑰
備註 SSH 資產管理用戶 RDP 資產管理用戶

資產管理---->管理用戶---->建立,填寫好對應被管控端的管理員和密碼點擊提交;管理用戶是資產(被控服務器)上的 root,或擁有 NOPASSWD: ALL sudo 權限的用戶, JumpServer 使用該用戶來 推送系統用戶獲取資產硬件信息 等。

【DB寶48】JumpServer:多雲環境下更好用的堡壘機

3.2.三、建立資產

點擊頁面左側的 資產管理 - 資產列表 - 建立資產 把兩個資產導入

主機名不能重名

表單 SSH 資產示例 RDP 資產示例
主機名 test_ssh01 test_rdp01
IP(域名) 172.16.80.11 172.16.80.21
系統平臺 Linux Windows
公網IP
網域
協議組 ssh 22 rdp 3389 / ssh 22
管理用戶 172.16.80.11_root 172.16.80.21_administrator
節點 Default / SSH Server Default / RDP Server

建立 Windows 資產, 注意協議組咱們須要選擇 sshrdp, 不然沒法獲取 Windows 資產的狀態及硬件信息。

提示:資產管理--->資產列表--->新建,填寫對應被管控的的主機信息和ip地址信息,以及管理用戶,點擊最下方的提交;

【DB寶48】JumpServer:多雲環境下更好用的堡壘機

提示:提交完成後,咱們就能夠在資產列表中看到咱們剛纔添加到主機;

【DB寶48】JumpServer:多雲環境下更好用的堡壘機

3.2.四、建立數據庫應用

擊頁面左側的 應用管理 - 數據庫應用 - 建立數據庫應用 建立 mysql 數據庫

表單 MySQL 資產示例
名稱 test_mysql01
類型 MySQL
主機 172.16.80.31
端口 3306
數據庫
備註 MySQL 資產

數據庫 選項能夠留空, 若是是某些特定用戶, 只容許訪問指定的數據庫, 這裏指定數據庫名稱便可

3.2.五、建立系統用戶

IP System System User Password Group Sudo Sftp Root
172.16.80.11 Centos 7 testssh01 random pass ALL /
172.16.80.21 Windows 10 testrdp01 random pass Users
172.16.80.23 MySQL 5 root Test2020.M

點擊頁面左側的 資產管理 - 系統用戶 - 建立系統用戶 建立對應協議系統用戶

表單 SSH 系統用戶
名稱 test_ssh01_測試系統用戶
登陸模式 自動登錄
用戶名 testssh01
協議 ssh
自動推送
Sudo ALL
Shell /bin/bash
家目錄
用戶附屬組
自動生成密鑰
SFTP根路徑 /
表單 RDP 系統用戶
名稱 test_rdp01_測試系統用戶
登陸模式 自動登錄
用戶名 testrdp01
協議 rdp
自動推送
自動生成密鑰
表單 MySQL 系統用戶
名稱 test_mysql01_測試系統用戶
登陸模式 自動登錄
用戶名 root
協議 mysql
密碼 Test2020.M

資產管理--->系統用戶--->新建,填寫好用戶名,勾選自動推送和自動生成密鑰,點擊最下方的提交便可;這裏填寫的用戶會用做jumpserver上登陸對應的主機用到用戶,若是被管控端沒有這個用戶,jumpserver就會利用咱們剛纔添加的管理用戶去建立一個這裏的系統用戶;

【DB寶48】JumpServer:多雲環境下更好用的堡壘機

3.三、建立受權規則

權限管理--->資產受權--->建立,填寫好名稱後,要選擇用戶和組以及資產和系統用戶,而後點擊最下方的提交;到此一個資源就受權給test用戶和test組中的成員了;這裏須要注意一點,一個節點中有不少server,若是你只想受權單臺server給某個用戶,下面的節點就留空,若是你想受權一個節點給用戶你能夠選擇節點,上面的資產就能夠留空,若是你又想受權單個資產和某個節點給用戶,就選擇對應的資產和節點便可;若是這裏選擇default節點,表示把default節點下的全部主機都受權給用戶;默認default節點包含全部主機;

【DB寶48】JumpServer:多雲環境下更好用的堡壘機

3.3.一、爲用戶分配資產

IP System System User User
172.16.80.11 Centos 7 testssh01 admin
172.16.80.21 Windows 10 testrdp01 admin
172.16.80.31 MySQL 5 root admin

點擊頁面左側的 受權管理 - 資產受權 - 建立受權規則 建立兩個受權

表單 SSH 資產受權 RDP 資產受權
名稱 test_ssh01_測試受權 test_rdp01_測試受權
用戶 Administrator(admin) Administrator(admin)
用戶組
資產 test_ssh01(172.16.80.11) test_rdp01(172.16.80.21)
節點
系統用戶 test_ssh01_測試系統用戶(testssh01) test_rdp01_測試系統用戶(testrdp01)
權限 √ 所有 √ 所有

3.3.二、爲用戶分配數據庫應用

點擊頁面左側的 受權管理 - 數據庫應用 - 建立受權規則 建立數據庫受權

表單 MySQL 資產受權
名稱 test_mysql01_測試受權
用戶 Administrator(admin)
用戶組
數據庫應用 test_mysql01
系統用戶 test_mysql01_測試系統用戶(root)

3.四、用戶登陸

  • 登陸 JumpServer
    點擊頁面左側的 會話管理 - Web終端 用戶只能看到本身被管理員受權了的 資產 , 若是登陸後無資產, 請聯繫管理員進行確認

  • 鏈接資產
    在個人資產點擊資產右邊的 鏈接 快速鏈接資產
    也能夠點擊左側欄的 Web終端 點擊 資產 名字, 就連上資產了
    若是顯示鏈接 超時, 請參考 FAQ 文檔進行處理

  • 斷開資產
    點擊頁面頂部的 Server 按鈕會彈出選個選項, 第一個斷開所選的鏈接, 第二個斷開全部鏈接
    也能夠直接點資產小窗口的 X , SSH 會話也能夠輸入 exit 來退出
    直接關閉頁面也能夠, 可是不推薦

  • 文件管理
    點擊 文件管理
    先在左邊選擇資產, 目前只支持自動登陸的 SSH 協議 資產
    也可使用 sftp 方式進行 文件管理

3.五、查看用戶操做回放

點擊會話管理---->會話管理---->歷史會話----> 找到對應會話後面的回放便可查看對應用戶在過去會話中執行的操做;

【DB寶48】JumpServer:多雲環境下更好用的堡壘機

About Me


● 本文做者:小麥苗,部份內容整理自網絡,如有侵權請聯繫小麥苗刪除
● 本文原始發表於我的微 信公衆號(DB寶)上● QQ羣號: 230161599 、618766405,微信羣私聊 ● 我的QQ號(646634621),微 信號(db_bao),註明添加原因● 版權全部,歡迎分享本文,轉載請保留出處

相關文章
相關標籤/搜索