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

一、背景

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

  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

我的博客即將入駐“雲棲社區”,誠邀技術同仁一同入駐。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章