開源堡壘機 Jumpserver 入門教程

運維之美2019-07-11 22:19:01


背景


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

Jumpserver 介紹


Jumpserver 是全球首款完全開源的堡壘機,使用 GNU GPL v2.0 開源協議,是符合 4A 的專業運維審計系統。


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

Jumpserver 採納分佈式架構,支持多機房跨區域部署,中心節點提供 API,各機房部署登錄節點,可橫向擴展、無併發訪問限制。


  • Jumpserver 架構圖




  • Jumpserver 組件説明

1. Jumpserver

現指 Jumpserver 管理後台,是核心組件(Core), 使用 Django Class Based View 風格開發,支持 Restful API。


2. Coco

實現了 SSH Server 和 Web Terminal Server 的組件,提供 SSH 和 WebSocket 接口, 使用 Paramiko 和 Flask 開發。


3. Luna

現在是 Web Terminal 前端,計劃前端頁面都由該項目提供,Jumpserver 只提供 API,不再負責後台渲染 html 等。


4. Guacamole

Apache 跳板機項目,Jumpserver 使用其組件實現 RDP 功能,Jumpserver 並沒有修改其代碼而是添加了額外的插件,支持 Jumpserver 調用。


5. Jumpserver-Python-SDK

Jumpserver API Python SDK,Coco 目前使用該 SDK 與 Jumpserver API 交互。

系統運行


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


  • 下載鏡像

在 Docker 官方鏡像庫當中並沒有收錄 Jumpserver,因此下載鏡像命令如下所示

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


從 1.4.5 版本開始,官方鏡像庫中已經收錄了 Jumpserver。如果你需要使用最新版本可以用以下命令下載鏡像:

$ docker pull jumpserver/jms_all


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

1.0.0: Pulling from public/jumpserveraf4b0a2388c6: Pull completeaa66a3d10fd2: Pull complete1d4c6a27f2ac: Pull complete2490267572de: Pull completeb00f1599768d: Pull complete398fc903cdc3: Pull completef8490bbfc09a: Pull complete86d238b365f5: Pull complete2cd3b1ef59b2: Pull complete4a21434eeb73: Pull completeae8cf3e909e0: Pull complete7c440776471a: Pull complete0a5e895f91af: Pull completeb86672241685: Pull completeaf16a4945f95: Pull complete0374e723cd6c: Pull completee18b86849df9: Pull complete648aa832cb74: Pull completeb52364a5c704: Pull completeDigest: sha256:0f26e439c492ac52cbc1926aa950a59730607c947c79557ab3da51bfc2c7b5d4Status: Downloaded newer image for registry.jumpserver.org/public/jumpserver:1.0.0

  • 運行鏡像


下載之後筆者需要將下載下來的容器運行起來,為了防止 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

  • 運行檢查


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


首先通過如下命令可以查看當前正在運行的容器。

$ docker ps


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

CONTAINER ID        IMAGE                                             COMMAND               CREATED             STATUS              PORTS                                                   NAMES4709a7d85af2        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/


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



配置入門


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


  • 登錄系統


在前面的檢驗運行的截圖當中可以看到需要登錄,而賬號和密碼筆者並沒有在官方文檔中所看到,筆者隨手一嘗試,發現用户名和密碼分別是 admin 與admin,如下圖所示:


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


  • 管理用户

接下來筆者需要添加一些資產,添加資產的前提條件是有一個管理用户,這個管理用户是資產的最高權限賬户,堡壘機之後會使用此賬户來登錄並管理資產,和獲取一些統計信息,筆者在資產管理->管理用户列表中點擊創建系統用户按鈕,便來到了創建管理用户的頁面,如下圖所示:




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

  • 資產管理

在添加管理用户之後,便可以添加資產了,添加資產也非常的簡單,在資產列表點擊創建資產按鈕,便來到了添加資產的頁面,如下圖所示:



添加資產需要填寫,資產的 IP 地址,以及 SSH 的端口號,以及選擇資產的操作系統類型,並且選擇用哪一個管理用户。


  • 系統用户


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


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

測試驗證

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

  • 連接測試

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


如果能看到左側的硬件信息發生了變更,就代表此前配置的管理用户沒有問題,否則會彈出錯誤提示框。


  • 用户授權


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



第二步則是給用户自己本身授權,在授權管理->資產權限->創建權限規則中做好相應配置,如下圖所示:


  • Web 終端

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


  • 在線會話


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




  • 命令記錄


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



至此,我們就演示完了 Jumpserver 堡壘機的基本安裝和使用。如果你對其非常感興趣,可自行參考官方文檔做進一步研究喲~

來源:segmentfault
原文:http://t.cn/EwxjhFU
題圖:
來自谷歌圖片搜索 
版權:
本文版權歸原作者所有
投稿:歡迎投稿,投稿郵箱: [email protected]


推薦閲讀

  • 10 個構建和管理容器的技巧

  • 談談互聯網架構

  • 開源堡壘機 Teleport 入門教程

  • 淺談 TCP 的三次握手和四次揮手

  • 史上最全的 Linux 運維工程師面試問答錄

https://hk.wxwenku.com/d/201124552