基於 Docker 搭建 Jumpserver 堡壘機操作實踐.md

daxia發表於2018-10-30

一、背景

筆者最近想起此前公司使用過的堡壘機系統,覺得用的很方便,而現在的公司並沒有搭建此類系統,想著以後說不定可以用上;而且最近也有點時間,因此來了搭建堡壘機系統的興趣,在搭建過程中參考了比較多的文件,其中最詳細的還是官方文件,地址如下所示:

  1. Jumpserver 文件

二、操作概要

1. 系統執行
2. 配置入門
3. 測試驗證

三、系統執行

在官方文件中安裝堡壘機有很多種方法,這讓筆者有些糾結,另外而且在不同系統中安裝方法也不一致,不過正在徘徊不定時,發現一種通用的安裝方法,便是採用docker進行安裝,因此本文中筆者將以docker安裝為例

3.1 下載映象

在docker官方映象庫當中並沒有收錄jumpserver,因此下載映象命令如下所示:

docker pull registry.jumpserver.org/public/jumpserver:1.0.0

下載過程可能比較慢,筆者大約花費了14分鐘才將其下載完成,下載完成後結果如下所示

1.0.0: Pulling from public/jumpserver
af4b0a2388c6: Pull complete
aa66a3d10fd2: Pull complete
1d4c6a27f2ac: Pull complete
2490267572de: Pull complete
b00f1599768d: Pull complete
398fc903cdc3: Pull complete
f8490bbfc09a: Pull complete
86d238b365f5: Pull complete
2cd3b1ef59b2: Pull complete
4a21434eeb73: Pull complete
ae8cf3e909e0: Pull complete
7c440776471a: Pull complete
0a5e895f91af: Pull complete
b86672241685: Pull complete
af16a4945f95: Pull complete
0374e723cd6c: Pull complete
e18b86849df9: Pull complete
648aa832cb74: Pull complete
b52364a5c704: Pull complete
Digest: sha256:0f26e439c492ac52cbc1926aa950a59730607c947c79557ab3da51bfc2c7b5d4
Status: Downloaded newer image for registry.jumpserver.org/public/jumpserver:1.0.0

3.2 執行映象

下載之後筆者需要將下載下來的容器執行起來,為了防止80埠被宿主機其他程式所佔用,因此將容器埠對映到宿主機的8011上,執行命令如下所示:

docker run --name jms_server -d -p 8011:80 -p 2222:2222 registry.jumpserver.org/public/jumpserver:1.0.0

在引數當中因為有加入後臺執行引數-d,容器執行之後終端不會進入容器bash中,而且當命令執行成功之後,docker將會返回容器ID,如果返回資訊則可能出現了異常錯誤,正常返回結果如下所示

4709a7d85af28bf05a63fb3e42541a41c30edda6668fd54a446cfab006c35b9e

3.3 執行檢查

容器執行之後,筆者需要對其進行檢測確保執行成功,檢查方式有兩個,首先觀察容器是否正常執行,然後是檢查堡壘機是否能被瀏覽器所訪問

首先通過如下命令可以檢視當前正在執行的容器

docker ps

如果容器正常執行將會出現剛在筆者所執行的堡壘機容器ID,正常返回結果參考如下

CONTAINER ID        IMAGE                                             COMMAND               CREATED             STATUS              PORTS                                                   NAMES
4709a7d85af2        registry.jumpserver.org/public/jumpserver:1.0.0   "/opt/start_jms.sh"   8 minutes ago       Up 8 minutes        443/tcp, 0.0.0.0:2222->2222/tcp, 0.0.0.0:8011->80/tcp   jms_server

在返回結果當中可以看到之前docker返回的容器ID正處於執行狀態,便可以確定容器執行正常,接著筆者還需要通過瀏覽器來檢測是否執行成功,使用瀏覽器開啟如下地址

http://127.0.0.1:8011/

當瀏覽器出現如下介面時,則基本代表成功

image

四、配置入門

在確定系統正常執行之後,接下來就可以對系統進行一些配置,堡壘機配置比較簡單,下面的配置是將是使用堡壘機最為基礎的一些配置,配置主要是新增一些資產進行管理,這便需要新增管理使用者、系統普通使用者、賬戶授權等操作。

4.1 登入系統

在前面的檢驗執行的截圖當中可以看到需要登入,而賬號和密碼筆者並沒有在官方文件中所看到,筆者隨手一嘗試,發現使用者名稱和密碼分別是adminadmin,如下圖所示

image

登入成功之後,進入系統看到的介面如下圖所示

image

4.2 管理使用者

接下來筆者需要新增一些資產,新增資產的前提條件是有一個管理使用者,這個管理使用者是資產的最高許可權賬戶,堡壘機之後會使用此賬戶來登入並管理資產,和獲取一些統計資訊,筆者在資產管理->管理使用者列表中點選建立系統使用者按鈕,便來到了建立管理使用者的頁面,如下圖所示

image

在表單中可以看見必須填寫使用者名稱,和認證所用的密碼或私鑰,按照真實情況去填寫,比如筆者的資產最高許可權賬戶是song,密碼123456Ab,那麼就如實填寫上去。

4.3 資產管理

在新增管理使用者之後,便可以新增資產了,新增資產也非常的簡單,在資產列表點選建立資產按鈕,便來到了新增資產的頁面,如下圖所示

image

新增資產需要填寫,資產的IP地址,以及ssh的埠號,以及選擇資產的作業系統型別,並且選擇用哪一個管理使用者

4.4 系統使用者

在資產管理下還有一個系統使用者管理,這個系統使用者的使用場景是,有時候需要在很多個目標資產中建立一個普通賬戶,這時候肯定是十分麻煩;此時便可以通過堡壘機上的系統使用者管理來建立一個系統使用者;然後下發到目標資產中,這樣一來就不需要去目標主機一個個登入然後去建立,因此非常方便,新增系統使用者如下圖所示

image

建立系統使用者需輸入需要建立的賬號,以及選擇認證的方式,預設為祕鑰方式,也可以將選擇框選中去掉,通過密碼來認證。

五、測試驗證

在前面的配置步驟操作完畢後,便可以進行一些常規功能驗證,以此來加深對jumpserver系統的瞭解,這些功能測試點有 資產連線測試、使用者授權、Web終端、線上會話、命令記錄等功能。

5.1 連線測試

連線測試的目的是檢查資產是否可以被堡壘機所訪問,可以在資產列表點選資產名稱,便可以進入資產詳情頁面,右側有兩個按鈕,點選重新整理按鈕,正確配置的參考效果如下圖所示

image

如果能看到左側的硬體資訊發生了變更,就代表此前配置的管理使用者沒有問題,否則會彈出錯誤提示框;

5.2 使用者授權

當配置資產後,如果想在堡壘機中直接連線終端就還需要給使用者授權,授權分為兩個步驟,第一步是給web終端賬戶授權,在會話管理->終端管理,如下圖所示

image

第二步則是給使用者自己本身授權,在授權管理->資產許可權->建立許可權規則中做好相應配置,如下圖所示

image

5.3 web終端

當給使用者授權之後,使用者便可以會話管理->Web終端中與系統進行互動,如下圖所示

image

5.4 線上會話

有些時候想看誰在操作伺服器,可以很輕鬆的通過線上會話功能來檢視當前有哪些使用者在操作終端,在會話管理->線上會話列表中進行檢視,如下圖所示
image

5.5 命令記錄

筆者覺得堡壘機最大的作用之一便是審計,如果想知道某個使用者在系統中執行了那些命令,可以很方便的在會話管理->命令記錄中進行檢視,如下圖所示

image

六、 圖書推薦

如果對筆者的實戰文章較為感興趣,可以關注筆者新書《PHP Web安全開發實戰》,現已在各大平臺上架銷售,封面如下圖所示

image

作者:湯青松

微信:songboy8888

日期:2018-10-30

相關文章