23.1 什麼是堡壘機
堡壘機,是在一個特定的網絡環境下,爲了保障網絡和數據不受來自外部和內部用戶的***和破壞,而運用各種技術手段實時收集和監控網絡環境中每一個組成部分的系統狀態、安全事件、網絡活動,以便集中報警、及時處理及審計定責。
我們又把堡壘機叫做跳板機,簡易的跳板機功能簡單,主要核心功能是遠程登錄服務器和日誌審計。運維堡壘機的理念起源於跳板機。2000年左右,高端行業用戶爲了對運維人員的遠程登錄進行集中管理,會在機房裏部署跳板機。跳板機就是一臺服務器,維護人員在維護過程中,首先要統一登錄到這臺服務器上,然後從這臺服務器再登錄到目標設備進行維護。
堡壘機從功能上講,它綜合了核心系統運維和安全審計管控兩大主幹功能,從技術實現上講,通過切斷終端計算機對網絡和服務器資源的直接訪問,而採用協議代理的方式,接管了終端計算機對網絡和服務器的訪問。形象地說,終端計算機對目標的訪問,均需要經過運維安全審計的翻譯。打一個比方,運維安全審計扮演着看門者的工作,所有對網絡設備和服務器的請求都要從這扇大門經過。因此運維安全審計能夠攔截非法訪問,和惡意***,對不合法命令進行命令阻斷,過濾掉所有對目標設備的非法訪問行爲,並對內部人員誤操作和非法操作進行審計監控,以便事後責任追蹤。
安全審計作爲企業信息安全建設不可缺少的組成部分,逐漸受到用戶的關注,是企業安全體系中的重要環節。同時,安全審計是事前預防、事中預警的有效風險控制手段,也是事後追溯的可靠證據來源。
爲什麼企業需要堡壘機?
近年來數據安全事故頻發,包括斯諾登事件、希拉里郵件醜聞以及攜程宕機事件等,數據安全與防止泄露成爲政府和企業都非常關心的議題,因此雲堡壘機也應運而生。
案例一:
讓我們共同回顧最具代表性的數據泄露引發的安全事故,美國著名的斯諾登事件。2013年6月,美國《華盛頓郵報》報道,美國國家安全局和聯邦調查局於2007年啓動了一個代號爲“棱鏡”的祕密監控項目,直接進入美國網際網路公司的中心服務器裏挖掘數據、收集情報。洩露這些絕密文件的並非國家安全局的內部員工,而是國家安全局的外聘人員愛德華·斯諾登。
斯諾登事件若放在今天,將不可能發生,因爲我們有了雲堡壘機!其中的管理員角色可以設置敏感操作的事前攔截、事中斷開、事後審計,並且可以做到全程無代理實時監控。類似斯諾登這樣的外聘人員將無法接觸到這些敏感信息,更不用說泄露出來了。並且某些雲堡壘機支持錄屏功能也可以幫助用戶進行審計和追責。
案例二:
2015年5月28日上午11點至晚上8點,在某旅遊出行平臺官網及APP上登錄、下單或交易時,跳轉均出現問題,導致操作無法順利完成。造成直接經濟損失巨大,按照其上一季度的財報公佈的數據,宕機的損失爲平均每小時106.48萬美元。
最終,平臺迴應此事稱系由於員工誤操作刪除了服務器上的執行代碼導致。不論是因爲******還是員工誤操作,真金白銀800萬美元的經驗教訓告誡我們對於數據的安全和備份必須要引起重視!雲堡壘機能解決這2個問題,一是***面小,二是可定製雙機備份。
以上事實說明,雲堡壘機對安全的重要程度不言而喻。
比較優秀的用於搭建堡壘機的開源軟件:jumpserver。主要功能有:認證、授權、審計、自動化、資產管理等。
商業堡壘機的功能比開源的要強大,比較出名的有:齊治,Citrix XenApp等。
23.2 搭建簡易堡壘機思路
堡壘機需要具有公網IP以及內網IP,其中內網IP用於和機房其他機器通信。公網IP是用於在外部登錄,通過公網IP登錄到堡壘機後,才能訪問內網的機器,這一點和跳板機一樣。
搭建堡壘機,首先需要限制端口,留出可以遠程登錄的端口,其他的端口都封閉掉。然後還需要配置白名單IP,規定只有哪些IP可以登錄,以及禁止密碼登錄,只允許密鑰登錄等,做這些事情的目的是爲了增加堡壘機的安全性。
除此之外,還需要限制登錄的用戶,限制爲普通用戶登錄,和限制用戶可以執行的命令等。
還需要在客戶機器上做日誌審計。
23.3 安裝jailkit實現chroot
安裝jailkit實現chroot的目的是爲了限制登錄的用戶能夠執行的命令,因爲要防止登錄的用戶對堡壘機進行其他的操作。jailkit可以把用戶限制在一個虛擬的系統中,這個虛擬系統的環境是chroot的,讓用戶無法直接操作真實系統。
編譯安裝jailkit:
[root@localhost ~]# cd /usr/local/src/ [root@localhost /usr/local/src]# wget [root@localhost /usr/local/src]# tar jxvf jailkit-2.19.tar.bz2 [root@localhost /usr/local/src]# cd jailkit-2.19 [root@localhost /usr/local/src/jailkit-2.19] # ./configure && make && make install [root@localhost /usr/local/src/jailkit-2.19]# echo $? 0 [root@localhost /usr/local/src/jailkit-2.19] #./configure && make && make install echo $? 0
創建一個目錄作爲虛擬系統的根目錄:
mkdir /home/jail
給虛擬系統初始化一些命令,讓這個系統具有基本的文件結構、網絡相關的以及常用命令等:
jk_init -v -j /home/jail/ basicshell jk_init -v -j /home/jail/ editors jk_init -v -j /home/jail/ netutils jk_init -v -j /home/jail/ ssh
初始化完成後/home/jail/下會生成以下幾個目錄:
ls /home/jail/
創建真實系統的用戶:
useradd jailUser passwd jailUser 更改用戶 jailUser 的密碼 。 新的 密碼: 重新輸入新的 密碼: passwd:所有的身份驗證令牌已經成功更新。
創建虛擬系統的sbin目錄,並拷貝虛擬系統的shell文件:
mkdir /home/jail/usr/sbin cp /usr/sbin/jk_lsh /home/jail/usr/sbin/jk_lsh
創建虛擬系統的用戶:
jk_jailuser -m -j /home/jail jailUser
編輯虛擬系統用戶的密碼文件內容如下:
root:x:0:0:root:/root:/bin/bash jailUser:x:1011:1011::/home/jailUser:/bin/bash # 改成/bin/bash後才能被遠程登錄
完成以上操作後,遠程登錄一下jailUser這個賬戶:
登錄成功: