資深開源用戶眼中的JumpServer:一款「瘋狂」疊代的堡壘機

fit2cloud飛致雲 發佈 2022-02-15T20:16:44+00:00

編者註:2022年1月,JumpServer開源社區訪談了來自廣州的開源社區資深用戶劉哲,以下內容根據本次訪談的內容整理而成。「作為一個JumpServer開源堡壘機的資深用戶,我一直都在關注JumpServer項目的技術演進情況。

編者註:2022年1月,JumpServer開源社區訪談了來自廣州的開源社區資深用戶劉哲,以下內容根據本次訪談的內容整理而成。

「作為一個JumpServer開源堡壘機的資深用戶,我一直都在關注JumpServer項目的技術演進情況。過去的幾年時間裡,JumpServer呈現出近乎『瘋狂』的疊代速度。」

——JumpServer開源項目資深用戶 劉哲

作為一位開源技術的愛好者,我從事IT運維的工作多年,在不同行業的公司都做過運維方面的工作,對新技術,尤其是開源技術也非常感興趣。目前我主要負責的是DevOps運維方面的工作。

最早接觸到JumpServer開源項目是在2017年。從當時的v0.4.0版本到現在使用的v2.17.0版本,我一直都是JumpServer的忠實粉絲,深入研究過JumpServer,也持續跟隨著JumpServer的腳步不斷地升級新版本、使用新功能,並且使用JumpServer堡壘機成功地為所服務的公司建立了規範的運維安全審計系統。

為什麼會選擇JumpServer?

最早的時候我當時工作的公司使用的是傳統的跳板機,是通過在Windows上搭建服務,用戶開啟遠程桌面服務的方式來進行操作的。這種應用模式存在一些明顯的短板,具體表現在以下幾方面:

1. 缺乏錄像審計

由於跳板機是沒有審計功能的,所以我們交付給開發、測試同事的環境沒有操作過程的記錄,並且對高危命令、上傳/下載的管控存在漏洞,這就導致了一旦出錯後需要花費大量的時間來排錯。我們在使用過程中遇到過很多次類似的問題,當時還遇到過代碼泄露、伺服器宕機等事故,這些意外事件的發生觸發了公司尋找跳板機替代方案的需要;

2. 運維效率低下

隨著企業IT規模的不斷擴大,IT資產的體量也迅速膨脹,加上未來基礎設施的持續投入和發展,設備數量也會繼續增長。因此,如何實現對大規模資產的高效管理成了運維管理的重點工作之一;

3. 安全審計的需要

之前我們在一台資產上保存了大量的用戶密碼,這就產生了很大的安全隱患,公司對於安全審計的需求逐漸提升。同時,隨著IT系統運維對堡壘機依賴程度的不斷增加,系統穩定運行的重要性也不斷地攀升,這就需要對用戶操作所產生的大量審計資料進行有效存儲,並隨時可以提取回溯。

毫無疑問,堡壘機對於運維人員來說是一個非常關鍵的工具,大部分企業的運維人員都會首選堡壘機來進行資產的管理和接入。

基於以上痛點問題和實際需求,我們急需找到一款堡壘機去替代跳板機來進行日常的運維安全管理。

作為一個開源愛好者,我偶然間在GitHub上找到了JumpServer開源項目,發現它在功能層面能夠滿足我們的主要需求,比如錄像審計、資產錄入、密碼代填等功能,並且完全可以覆蓋到我們常用的一些使用場景。

以下四點我認為是JumpServer比較具有吸引力的地方:

好用:JumpServer簡單易用,沒有技術門檻,非常容易上手,對於那些沒有技術基礎的用戶十分友好。同時,這種易用性也讓技術人員能夠花費更少的時間成本來學習堡壘機的使用技能;

開源:JumpServer提供了一個開放、兼容的平台,用戶基數大,讓更多像我一樣的開源用戶相互溝通進步,共同參與到安全管理的生態中來;

安全:JumpServer符合4A規範,能夠滿足企業運維安全審計的實際要求;

用戶體驗極佳:用戶訪問JumpServer的時候能夠享受到簡潔的使用界面,無需插件,很大程度提升了用戶的使用體驗。

JumpServer的使用經驗

算起來我個人使用JumpServer開源堡壘機也有將近五年的時間了,也積累了相對豐富的使用經驗。總結過去幾年的使用體驗,JumpServer以下的幾個核心功能能夠切實提升企業的運維管理能力:

■ 操作審計功能

我們進行系統交付、故障處理、日常巡檢等工作的時候,往往需要一些後端同事、合作夥伴或者運維外包人員登錄資產來進行操作。這樣一來,可能會出現人員不熟悉操作或者誤操作的情況,從而引發一些系統故障,我們經常會發現各種因環境臨時變更而導致的問題。發生這種情況後,運維團隊就需要溯源整個操作過程,定位具體原因。

通過JumpServer,我們可以對所有的操作進行錄屏錄像、記錄操作命令,並且作為審計依據進行保存。同時,管理員或者運維負責人還可以對操作進行實時監控,一旦發現違規操作,立即中斷操作。即使是發生了系統故障問題,也可以根據審計錄像快速定位故障原因,無需花費過多的時間去驗證。這也是我們認為JumpServer最為核心的一個功能。

■ 用戶管理和授權控制功能

通常情況下,企業會根據兩個維度來進行授權控制,分別是以用戶及用戶組為核心維度和以資產為核心維度。相信大多數的公司都會以用戶組來區分授權,以便於管理。

由於我們公司有不同的項目組,需要授權不同的資產,因此我們選擇的是「以資產為核心維度」進行授權控制,將不同用戶帳戶加入不同權限用戶組授權訪問單台設備。

在這種情況下,我們的一台資料庫需要三種權限:第一種權限是針對後端同事的讀寫權限;第二種是針對測試同事的只讀權限;第三種是針對運維人員的高級權限,也就是管理權限。通過資料庫本身的帳號權限給予權限後,再通過JumpServer用不同的帳號分發下去,這就很好地實現了更細粒度的資產授權管理。

■ 密碼代填功能

密碼代填也是我們使用得比較多的功能,目前我們所有的資產都已經實現了資產密碼代填。

以前,我們所有人員都是共同使用相同的帳號密碼登錄到資產來進行運維管理與操作。因此,每當遇到高危命令、數據誤刪等事故時,就很難定位到具體的操作人,無法進行責任的認定與相應的故障分析。部署JumpServer之後,每一個用戶都會分配到一個帳號,每個帳號授權不同的資產登錄權限。

同時,JumpServer託管了所有的資產密碼,通過密碼代填功能,我們不需要將密碼給到用戶,用戶可以直接登錄到資產進行操作。任何人通過JumpServer登錄到資產,管理員都能很容易地查詢出是誰在何時、用了什麼帳號登錄了哪台資產?進行了什麼樣的操作?這樣一來,很大程度上提升了系統和資產的安全性。

■ Kubernetes運維管理

Kubernetes的運維管理是我最為驚喜的JumpServer的功能之一,這也是JumpServer區別於其他堡壘機的一個亮點功能。我之前接觸過很多其他品牌的堡壘機,它們都沒有針對Kubernetes進行接入或管理,一般是通過RemoteApp的方式,在每個人的本地客戶端安裝一個kubectl的工具來實現的,非常麻煩。

而通過JumpServer堡壘機來應對日常Kubernetes運維管理任務就非常方便。在Kubernetes上配置好RBAC(Role-Based Access Control,基於角色的訪問控制權限)並進行授權,就可以直接連入集群,一步到位,非常便捷。

目前我們是有4個集群在使用這個功能,比如日常的台帳都是通過Kubernetes去接入的,這樣就可以隨時隨地、更加快捷地去進行操作,方便了運維操作,提升了整體的安全性。

我們公司的生產環境,包括微服務框架,都是部署在Kubernetes上的,Kubernetes已經成為我們主流的部署方式。因此,我們非常注重JumpServer對Kubernetes部署場景的支持,這也有利於我們全面推行容器化部署,進行橫向擴展。

JumpServer亮點功能

除了以上幾個核心功能以外,還有一些我比較欣賞的JumpServer亮點功能想要跟大家分享一下:

安裝部署方便,一鍵即可完成部署、升級,操作簡單;

支持MFA二次認證等多種認證方式,支持水印、多種密碼策略,提升了安全性;

支持錄像文件上傳至公有雲對象存儲等功能,實用且安全;

Web界面實現文件上傳/下載功能;

從用戶角度考慮,支持終端自定義設計,讓用戶可以根據自己的喜好去設置,非常貼心。

對JumpServer的期望與建議

最近幾年,JumpServer開源項目呈現出了一種近乎「瘋狂」的疊代速度,這種「瘋狂」是用戶所樂見的。JumpServer項目每個月的更新日誌我都有認真去看,每一次新版本都會增加很多新的功能,功能越來越完善,更加貼合用戶的需求,帶給了我非常多的驚喜。

長期從事運維的相關工作,我對傳統的堡壘機也有所了解,也擁有實際使用的經驗。有些品牌的堡壘機在易用性上做得非常好,也很符合當時用戶的使用習慣。比方說直接去調用本地的終端,類似於XShell等;比方說一些堡壘機在很早期就提供類似於RemoteApp的功能,支持的應用類型也比較豐富。

從我的角度看,JumpServer的優勢在於它一直保持著高速疊代的狀態。整個開源社區的活躍度非常高,對社區用戶的需求響應速度也很快。這些都讓JumpServer有了「超越」的可能。像是會話共享的功能,有的堡壘機在2018年就發布了這個功能,JumpServer在v2.14.0版本也實現了這個功能。

從某種程度來說,這不是哪款產品比哪款產品好的問題,而是誰更貼近用戶,誰更能適應用戶需求的變化。每一個用戶的使用場景都不一樣,我之前所工作的公司沒有容器化部署的需求,他們一直在使用傳統的堡壘機。而我現在工作的公司有非常多的Kubernetes集群,JumpServer自然成為了堡壘機的首選。

最後說說我個人對JumpServer的一些期望,希望在未來能夠看到JumpServer在以下三方面的優化:

資料庫場景

資料庫場景是我們公司目前比較重度使用的一個場景。每個公司使用的資料庫有所不同,我們主要的資料庫場景有MySQL和微軟的SQL Server,還在使用PostgreSQL來同步總公司的數據。

目前,JumpServer已經支持了多種資料庫類型,包括MySQL、Redis,還有企業版支持的Oracle、PostgreSQL、MariaDB、SQL Server資料庫應用授權,未來我們也期待著JumpServer能夠支持納管更多的資料庫類型;

優化RemoteApp功能

在JumpServer的RemoteApp上使用發布工具時,有些用戶會認為不太方便。因為所有的代填、接入等操作都需要通過RemoteApp這個平台去連接。如果關閉窗口後,再次通過RemoteApp連接資料庫開啟新窗口,之前所操作的語句就無法找到,而且通過RemoteApp的方式沒辦法實現命令阻斷。希望未來能夠有更多關於RemoteApp功能的優化;

權限控制的優化

JumpServer目前在需要獲取資產設備狀態時,要給用戶比較大的sudo權限。從安全的角度考慮,我們不希望將那麼大的權限給到用戶去獲取設備信息,所以希望未來JumpServer在這方面能夠提供更加優化的解決方案。

關鍵字: