運維技術分享:伺服器管理需要注意的問題及為什麼需要堡壘機
本文來自JumpServer首席架構師董帥在運維派技術交流群上的分享
講師介紹:
董帥:網際網路從業8年,曾打造多家電商以及金融公司技術產品,有豐富的系統安全經驗,專注於系統架構設計,致力於推動自動化運維事業。
安全的雜談
運維安全是企業安全保障的基石,不同於Web安全、移動安全或者業務安全,運維安全環節出現問題往往會比較嚴重。運維服務位於底層,涉及到伺服器,網路裝置,基礎應用等,一旦出現安全問題,直接影響到伺服器的安全。
安全上,又分為外在入侵風險和內在認為風險,我們往往致力於去努力保證防護外來入侵,但是內在的人為因素,也同樣需要關注,否則,外部風險會籍此趁虛而入。同樣,內部人員的誤操作,未經授權的操作,同樣會給企業帶來不可預計的損失。
據國外統計,黑客只需要100小時的工作,便可以摧毀一個估值數百萬美元的公司數年來的工作成果,運維的安全,本質上決定著企業的核心利益,不得不引起我們的重視.
本次分享,從我們內部一些因素入手,去防範可能發生的安全風險。
日常小案例
這裡,我們分享幾個碰到過的小案例:
- 檔案刪除案例
這是一個比較經典的案例,被rm搞崩的伺服器不在少數,在我之前的公司,人數不多,運維一兩個,系統基本裸奔狀態,業務混合狀態,有一天,我們需要清空一個業務的歷史快取,看似簡單的一件事情,最後因為疏忽,刪除了快取的上級目錄,導致業務受到影響 - 憤怒的運維
這個是前幾年的一個事情,杭州一個比較有名的地方站,19樓, 忽然有一天被發現打不開,最後發現,因為和運維人員發生了比較大的衝突,該夥伴清空了所有伺服器. - 進錯門
當伺服器數量多了之後,不可避免,要努力維護一個伺服器資訊的表,但總有失手的時候,之前,我們一直使用內部DNS進行機器對映,有一次,因為錯誤的DNS修改,導致DNS指向發生錯誤,導致直接導致指令碼執行命令登入了錯誤的主機,對現有和新業務均造成很大的影響
企業的運維過程中,不可避免的發生各種這樣的因為人為發生的問題,無論是單打獨鬥還是運維成為了一個比較大的團隊的時候。
常見的伺服器管理方式
最早伺服器管理方式
最早的伺服器管理方式,應該也是我們各位經常使用的方式,使用ssh工具儲存session,有需要時通過session登入伺服器即可。
優點:簡單易操作
缺點:沒有統一管理,無法留存記錄,需要手動在伺服器新增使用者
進階的管理方式
使用一臺機器作為跳板機,該跳板機上某使用者(sa或dev或dba)和其它主機做好ssh互信,通過授權使用者登入這臺機器然後管理後面主機
優點:較為簡單,可以簡單實現記錄
缺點:授權不好管理,需要使用工具在後面新增使用者,審計記錄過於簡單
更高階的管理方式
使用一臺主機作為跳板機,可以新增使用者,資產,授權等也就是我們傳統意義上的跳板機。可以認證,授權和審計,提供了web terminal等,我們稱之為跳板機1.0
優點:完成了認證,授權,審計功能,提供了額外的sftp等功能
缺點:不夠靈活,跳板機獨立存在,需要手動或者使用公司自動化運維工具在後端建立使用者,使用不方便
面向未來的管理方式
將跳板機和CMDB,OPS元件打通,本身跳板機是需要cmdb和ops作為支撐,CMDB提供資產配置資訊,OPS提供自動化推送使用者等工作,使用websocket實現web terminal等,簡言之 可以簡單、方便、快捷、安全的管理使用者的登入、授權、審計。我們稱之為網際網路跳板機,或者說跳板機2.0
優點:靈活,方便,自動,安全,擴充套件性好
缺點:需要整合資源(不過這個Jumpserver會幫你做了)
伺服器管理需要注意的問題
- 安全意識
聽起來很空洞的東西,但是這並非一個不需要關注的一個問題,很多時候出現的安全問題,歸根結底,是因為很多人並沒有良好的安全意識,安全規範和標準可以落實到各個部門,以流程的方式強制執行。但是運維人員的安全意識受制於個人和體現,很難進行控制。
最簡單的就是弱口令,各種系統的弱口令,後臺的弱口令,服務的弱口令。這麼多年了從來沒有消失過,因為弱口令造成的損失,也沒有減少過。 - 運維人員的一些壞習慣
有的人喜歡在web目錄直接壓縮檔案作為備份,這樣,很容易被掃描到備份檔案,備份檔案一旦被下載,必然造成資訊洩露.
很多時候,為了方便偷懶,很多人喜歡用web的形式下載伺服器上的檔案,經常使用 php -S 或者 python -m SimpleHTTPServer 開一個伺服器進行檔案的下載,更有甚者,會在根目錄執行,這樣,就徹底把伺服器大白於天下,一旦被利用,後果不堪設想
有些人,在工作的過程中,產生了許許多多自己或者他人完成的自動化指令碼,所以,很多時候,會在各種程式碼託管站中,上傳自己的指令碼,方便隨時使用,指令碼這東西,難免有敏感資訊,不經意間,洩露了系統敏感資訊。
如何保證伺服器避免非外來的安全風險
風險無處而不在,就像之前所說,安全意識一類的問題,很難進行控制,一方面,我們需要加強對運維人員的培訓,提高安全人員的安全意識,另一方面,我們可以通過一些其他的手段,去規避一些因為運維帶來的風險,這之中比較好的實踐,就是 — 堡壘機
堡壘機
-
堡壘機是什麼
堡壘機,即在一個特定的網路環境下,為了保障網路和資料不受來自外部和內部使用者的入侵和破壞,而運用各種技術手段實時收集和監控網路環境中每一個組成部分的系統狀態、安全事件、網路活動,以便集中報警、記錄、分析、處理的一種技術手段。
-
為什麼需要堡壘機
堡壘機能夠攔截非法訪問和惡意攻擊,對不合法命令進行命令阻斷,過濾掉所有對目標裝置的非法訪問行為,綜合了運維管理和安全性的融合,切斷了終端計算機對網路和伺服器資源的直接訪問,而由堡壘機作為中介軟體進行監控,在這之中,我們可以根據設定的規則,攔截大量非法操作以及不安全操作。
同時,因為對使用者和後端伺服器做了代理,使用者不需要直接訪問到後端伺服器,使用者就不需要接觸伺服器相關的核心安全資訊,一定程度上保證了後端伺服器資訊不被洩露。
堡壘機可以建立完善的許可權管理制度,能夠將使用者繫結到特定伺服器,所有人員根據需要授權,最大程度減少越權導致的問題產生.
堡壘機的應用場景
- 集中帳號管理,提高管理效率
- 集中認證與訪問控制,提高運維的安全度
- 集中授權,安全審計,降低運維風險
- 精細化伺服器資源與使用者管理,防止越權操作產生
JUMPSERVER
系統介紹
Jumpserver 是一款由python編寫開源的跳板機(堡壘機)系統,實現了跳板機應有的功能。基於ssh協議來管理,客戶端無需安裝agent。
支援常見系統:
1. CentOS, RedHat, Fedora, Amazon Linux
2. Debian
3. SUSE, Ubuntu
4. FreeBSD
5. 其他ssh協議硬體裝置
特點:
* 完全開源,GPL授權
* Python編寫,容易再次開發
* 實現了跳板機基本功能,認證、授權、審計
* 集成了Ansible,批量命令等
* 支援WebTerminal
* Bootstrap編寫,介面美觀
* 自動收集硬體資訊
* 錄影回放
* 命令搜尋
* 實時監控
* 批量上傳下載
WebTerminal:
Web批量執行命令
錄影回放
跳轉和批量命令
命令統計
新版本設計
老版本使用了 Django 1.6進行了開發,功能已經比較完整,經過團隊討論,我們決定讓jumpserver向前跨一步,進行一次徹底的架構升級.
目前版本的系統,基本處於了一個高耦合狀態,幾乎所有元件互相呼叫,新版本,我們進行了徹底的解耦,根據功能重新劃分了模組,新版本使用 flask框架 開發,每個模組拆分成獨立的子系統:
- core 核心元件,處理整個系統的各種基礎事務
- web 使用者介面,使用AngularJS進行開發,實現了錢後端分離
- cmdb 資產管理,用於後端裝置的管理
- perm 伺服器許可權管理,用於管理操作後端伺服器許可權的控制
- audit 審計管理, 用於監控審計
- terminal 終端模組,為使用者和後端資源做代理,並提供websocket
- ops 自動化運維模組,增加了產品的自動運維能力
新版本中,所有模組使用RPC進行通訊,各個模組均可獨立執行,方便了大規模時的分散式部署,並做到了元件可插拔的特性,使用我們官方提供的互動方式,可以很方便的定製自己的元件加入到系統中,與系統中現有元件進行協作,當然,你也可以很方便的替換我們的元件為你自己喜歡的元件.
應用案例
JUMPSERVER支援從小到幾臺,多到幾千臺伺服器的應用場景,目前已經被眾多知名網際網路廠商部署使用,也在不停收到各種各樣的反饋,我們會努力,把產品做的更好.
以下是採用和部署JUMPSERVER的部分企業(無排名因素):
- 中國電信雲端計算分公司 – 國內首家運營商級的雲端計算公司
- 廣州七樂康藥業連鎖有限公司 – 國內知名的網際網路醫藥電商、移動醫療公司,細分類目排名五年第一
- 群英網路 – 專業致力於資料中心(IDC)完整解決方案的運營商
- 闊地教育科技有限公司 – 讓人人擁有獲得優質教育資源的機會
- 天拓遊戲 – 為熱愛,拓不凡
- 珠海全志科技股份有限公司 – 領先的智慧應用處理器SoC和智慧模擬晶片設計廠商。
- 綿陽科技城大資料技術有限公司