劉春雷 馬云飛
1.臨沂市人民醫(yī)院;2.菲律賓克里斯汀大學(xué)國際學(xué)院
為保證數(shù)據(jù)安全,保障業(yè)務(wù)的高可用,兩個或多個數(shù)據(jù)中心協(xié)同作戰(zhàn),共同保障的方式成為大家共認的解決方案。堡壘機作為數(shù)據(jù)中心重要的運維安全設(shè)備,其雙活部署可以很好的解決一個數(shù)據(jù)中心癱瘓的情況下,運維人員可以幾乎無感知的繼續(xù)運維,保障運維的連續(xù)性和高效性。本文研究了堡壘機跨數(shù)據(jù)中心雙活部署的原理與實現(xiàn),以供參考。
隨著信息化進程的不斷推進,企業(yè)信息系統(tǒng)變的日益復(fù)雜。不同運維背景和運維水平的人員,因信息安全意識不同,技術(shù)能力不足等原因,越權(quán)操作、違規(guī)操作計算設(shè)備、操作系統(tǒng)、網(wǎng)絡(luò)設(shè)備、安全設(shè)備、數(shù)據(jù)庫等設(shè)備或軟件而造成安全問題的事件層出不窮。堡壘機也稱作運維安全審計系統(tǒng),其主要是用來防護特定區(qū)域網(wǎng)絡(luò)內(nèi)的網(wǎng)絡(luò)信息系統(tǒng)的一種設(shè)備,堡壘機的防護主要是兩個層面,一個是外部的用戶訪問入侵和惡意破壞,另一個是防護內(nèi)部用戶對網(wǎng)絡(luò)信息資源的訪問入侵和惡意破壞,依托多種技術(shù)措施和手段來實時監(jiān)控堡壘機防護范圍內(nèi)的網(wǎng)絡(luò)環(huán)境下的每個軟硬件的使用狀況、操作實況、進行追溯回放等。通過集中化運維管控、統(tǒng)一運維管理出口,實行身份認證與權(quán)限控制、記錄和監(jiān)控運維人員操作過程、從而為數(shù)據(jù)中心運維,構(gòu)建了一套完善的事前預(yù)防、事中監(jiān)控、事后審計的運維管控體系,最終實現(xiàn)對運維訪問的合規(guī)性控制。堡壘機作為一種重要的運維安全審計設(shè)備,已經(jīng)成為現(xiàn)代數(shù)據(jù)中心運維中必不可少的一種安全設(shè)備。
堡壘機的作為主要的運維審計設(shè)備,其主要功能體現(xiàn)在幾個方面:(1)運維賬號的設(shè)立及對應(yīng)權(quán)限的設(shè)置。根據(jù)維護人員的分工權(quán)限,設(shè)立維護人員在堡壘機的運維賬號并授予其管理的軟件或硬件的操作權(quán)限,賬號和權(quán)限的細粒度關(guān)聯(lián),使得用戶與系統(tǒng)和操作之間做到一一對應(yīng),滿足了細粒度管理的要求。(2)對運維賬號的全生命周期的操作審計。從運維賬號登錄時間起一直到賬號退出,此賬號所做的所有操作均被記錄,方便事后追溯。(3)滿足網(wǎng)絡(luò)安全法及等保要求。運維審計日志保存6個月以上以及雙因素認證登錄,滿足了網(wǎng)絡(luò)安全法和等保的相關(guān)要求。
為保證業(yè)務(wù)的可靠性、連續(xù)性,服務(wù)器和數(shù)據(jù)在多數(shù)據(jù)中心存在,已成為一種業(yè)務(wù)安全性保障的一種重要措施。不論是雙活數(shù)據(jù)中心建設(shè),還是容災(zāi)機房建設(shè),還是災(zāi)備機房建設(shè),目的均是為了保證數(shù)據(jù)的安全,確保在突發(fā)情況發(fā)生時,另一份數(shù)據(jù)可以拉起或者可以恢復(fù)。
如前所述,堡壘機是數(shù)據(jù)中心設(shè)備運維當(dāng)中的唯一通道,其是打開服務(wù)器、網(wǎng)絡(luò)產(chǎn)品、安全產(chǎn)品等核心設(shè)備的一把“鑰匙”,如果運維過程中鑰匙丟失或者損壞,我們將不得不采取密碼恢復(fù),將密碼明文告知工程師,運維審計無法進行等情況,將會給我們的運維工作帶來很多麻煩和無法預(yù)估的損失,所以堡壘機的冗余部署勢在必行。
傳統(tǒng)的堡壘機部署方式有單機部署,HA本地高可靠部署。單機部署是風(fēng)險最高的,只要此單臺設(shè)備故障,堡壘機即失去運維能力。本地雙機部署可以解決單機部署所帶來的風(fēng)險,一臺設(shè)備出現(xiàn)故障,另一臺設(shè)備可以接替故障設(shè)備繼續(xù)工作,但是本地雙機部署仍然無法解決數(shù)據(jù)中心級別故障情況下的設(shè)備運維問題。比如一個數(shù)據(jù)中心發(fā)生停電,水災(zāi)等情況,整個數(shù)據(jù)中心無法使用,即使另一個數(shù)據(jù)中心是雙活或容災(zāi)數(shù)據(jù)中心,但因為堡壘機只部署在故障數(shù)據(jù)中心內(nèi),可用數(shù)據(jù)中心的設(shè)備無法實現(xiàn)運維接管,必然會進行密碼的恢復(fù)等系列操作,耽誤很多的業(yè)務(wù)恢復(fù)時間。所以多數(shù)據(jù)中心情況下的堡壘機跨數(shù)據(jù)中心部署是運維連續(xù)性的一項重要舉措,非常有必要。
堡壘機跨數(shù)據(jù)中心的雙活部署,需要重點解決兩個層面的問題。(1)網(wǎng)絡(luò)引流的問題,即堡壘機運維會話的負載分發(fā),通過適合的負載配置將運維會話請求分配到適合的堡壘機節(jié)點上,由堡壘機節(jié)點完成連接服務(wù)器的后續(xù)操作。(2)保障兩臺堡壘機之間的數(shù)據(jù)一致性,運維人員不論在哪個數(shù)據(jù)中心,都可以呈現(xiàn)統(tǒng)一運維界面,同一運維內(nèi)容。實現(xiàn)這兩點,堡壘機才能為用戶提供跨數(shù)據(jù)中心運維正確的訪問授權(quán)和審計服務(wù)。
我院堡壘機的數(shù)據(jù)引流算法,選用的是LVS-SH調(diào)度算法,LVS-SH調(diào)度算法可以對訪問堡壘機的源地址進行Hash,并通過Hash找出對應(yīng)的堡壘機節(jié)點。這樣相同IP在訪問堡壘機集群時,在會話?;钇趦?nèi)訪問的均是同一臺節(jié)點,后續(xù)所有數(shù)據(jù)均由此節(jié)點與客戶端直接交互,不再經(jīng)過調(diào)度節(jié)點進行轉(zhuǎn)發(fā),因此具有較高的處理效率,而且此算法幾乎沒有單點瓶頸。調(diào)度節(jié)點出現(xiàn)故障后,也不會影響已經(jīng)連接到其他節(jié)點上的正在進行的服務(wù)。
為保證配置數(shù)據(jù)的一致性,堡壘機將配置數(shù)據(jù)保存在PostgreSQL數(shù)據(jù)庫中,并采用PostgreSQL Replication技術(shù)來實現(xiàn)數(shù)據(jù)同步。集群內(nèi),有一個節(jié)點為PG主節(jié)點,所有的寫操作都在這上面發(fā)生;其他節(jié)點均為PG從節(jié)點,會實時同步PG主節(jié)點上的數(shù)據(jù)變動。所有從節(jié)點中,有一個節(jié)點會與主節(jié)點進行數(shù)據(jù)的同步備份(僅當(dāng)備份成功后,數(shù)據(jù)庫事物才會提交);其他節(jié)點則與主節(jié)點進行數(shù)據(jù)的異步備份(數(shù)據(jù)庫事物在主節(jié)點提交后,隨后才會備份到從節(jié)點上,不影響數(shù)據(jù)庫的響應(yīng)能力)。這樣部署既可以保證數(shù)據(jù)的高可用,也可以最大程度上確保集群的性能。另外堡壘機的數(shù)據(jù)庫服務(wù)器部署在跨數(shù)據(jù)中心的私有云環(huán)境中,即使一端數(shù)據(jù)中心出現(xiàn)極端情況,出現(xiàn)了服務(wù)器宕機等情況,數(shù)據(jù)庫服務(wù)器仍可以自動漂移至另一院區(qū)數(shù)據(jù)中心的虛擬化池中,這也保證了數(shù)據(jù)庫的高可用和數(shù)據(jù)的一致性[1]。
對于審計數(shù)據(jù),通過使用GlusterFS分布式文件系統(tǒng)保存回放文件等以文件形式保存的審計數(shù)據(jù)。GlusterFS具有無元數(shù)據(jù)節(jié)點瓶頸、高可用、高擴展、高性能、高效率等特點,特別是對于堡壘機的回放文件通常比較大的特點,GlusterFS可以充分發(fā)揮其大文件處理效率高的特點。
堡壘機的故障檢測和切換是通過Keepalived實現(xiàn)的,而Keepalived高可用服務(wù)對之間的故障切換轉(zhuǎn)移,是通過VRRP來實現(xiàn)的。VRRP可以實現(xiàn)堡壘機雙活中的虛擬IP共享,用戶僅需要訪問虛擬IP地址即可。在 Keepalived服務(wù)對之間,作為主的服務(wù)器會一直發(fā)送 VRRP廣播包,告訴備服務(wù)器它還活著,此時備不會搶占主,當(dāng)主不可用時,即備監(jiān)聽不到主發(fā)送的廣播包時,就會啟動相關(guān)服務(wù)接管主,承擔(dān)主所運行的資源,從而保證業(yè)務(wù)的連續(xù)性。因接管速度最快可以小于1秒,用戶幾乎無感知。至于會話連接,當(dāng)雙活的某個節(jié)點故障時,連接到該節(jié)點的會話會斷開,被自動分配到其他正常節(jié)點上,而且一直連接到其他正常節(jié)點的會話沒有影響,雙活將持續(xù)運行。故障節(jié)點恢復(fù)后,將自動重新恢復(fù)雙活,無需進行人工干預(yù),雙活狀態(tài)自動恢復(fù)到正常狀態(tài)。
在分析透徹雙活堡壘機部署的原理和難點后,再行部署雙活堡壘機頓感目標(biāo)明確,思路清晰。在我們單位實現(xiàn)跨院區(qū)雙活數(shù)據(jù)中心的基礎(chǔ)上,我們給雙活堡壘機搭建了虛擬堡壘機數(shù)據(jù)庫服務(wù)器,部署PostgreSQL數(shù)據(jù)庫。兩臺堡壘機分別部署在兩個數(shù)據(jù)中心,配置獨立的IP地址后,通過VRRP協(xié)議虛擬出虛IP地址,運維人員通過此虛擬IP分別自動連到恰當(dāng)?shù)谋緳C上實行運維。雙活堡壘機部署完畢后,我們組織進行了堡壘機切換測試和堡壘機故障演練,將一端的堡壘機硬性斷電,查看另一端堡壘機的接管情況,實際檢驗雙活堡壘機的切換效果。通過測試,運維賬戶可以實現(xiàn)無感知繼續(xù)運維,我院雙活堡壘機部署切換正常,雙活堡壘機部署取得了成功[2]。雙活堡壘機部署如圖1所示:
圖1 雙活堡壘機部署Fig.1 Double live fortress machine deployment
堡壘機部署過程中也遇到了一些困難。堡壘機內(nèi)存使用率過高就是其中一個。經(jīng)過分析,雙活部署模式下,因運維人員多,運維數(shù)據(jù)大,每天呈現(xiàn)百萬級增漲,堡壘機數(shù)據(jù)處理模塊效率下降,每分鐘處理數(shù)據(jù)量無法滿足每分鐘產(chǎn)生的數(shù)據(jù)量,導(dǎo)致堡壘機數(shù)據(jù)緩存服務(wù)不斷堆積新數(shù)據(jù)。物理內(nèi)存不斷消耗,直至被耗費殆盡。
經(jīng)過與研發(fā)和實施工程師反復(fù)研究,造成這個問題的原因是在雙活部署環(huán)境下,堡壘機數(shù)據(jù)庫的分區(qū)表插件工作效率嚴重下降導(dǎo)致,通過研發(fā)工程師重寫分區(qū)表插件解決了這個問題。部署過程中還遇到用戶在多次使用堡壘機的過程中,造成一些業(yè)務(wù)無法正常使用或需要頻繁登錄。通過LVS會話持久化配置,使登錄用戶在一定時間段內(nèi)連接的會話均分發(fā)至同一堡壘機,從而解決用戶某些需要會話保持的功能,無法正常使用的問題。
堡壘機跨數(shù)據(jù)中心部署,保證了數(shù)據(jù)中心級別災(zāi)難發(fā)生的情況下,服務(wù)器的運維仍可正常進行,使用習(xí)慣不改變,維護效率不降低,可以取得高可用的效果,但凡事正反兩面,高可用、高安全必然牽涉到更多的技術(shù),更復(fù)雜的結(jié)構(gòu),這也就對運維提出了更高的要求。安全設(shè)備的運維一定要以制度加技術(shù)相結(jié)合的方式進行管理[3]。
堡壘機的管理首先需要從制度上明確數(shù)據(jù)運維管理的責(zé)任義務(wù)。堡壘機賬號的申請,不論是單位內(nèi)部職工還是公司駐場人員,都需要先行簽訂保密協(xié)議且確有運維服務(wù)器的需求。正式申請必須要通過辦公流程進行審批,審批通過后方可開通賬號。賬號要分級分類進行管理,根據(jù)賬號持有人的需求,分配相應(yīng)權(quán)限。為滿足等保要求,堡壘機管理制度中還需要對雙因子認證登錄,三權(quán)分立管理,日志留存六個月,告知賬號申請人堡壘機管理規(guī)定等相關(guān)內(nèi)容。
既然要通過堡壘機實現(xiàn)身份認證和SSO,那就要堵住其他服務(wù)器運維管理的通道和端口。通過防火墻做好ACL策略,控制以遠程桌面方式訪問Windows系統(tǒng)以及SSH協(xié)議或telnet協(xié)議訪問Centos等Linux系統(tǒng),限制訪問服務(wù)器的IP地址,不允許其他IP地址登錄服務(wù)器,只允許堡壘機訪問,以便將所有運維及訪問入口均通過堡壘機設(shè)備管控,實現(xiàn)全流程監(jiān)管。
通過設(shè)置雙因子認證。登錄堡壘機的運維賬戶不僅要輸入賬戶密碼還要輸入隨機驗證碼,這大大降低了被攻擊識別的可能性。開啟防暴力破解功能,讓試圖通過撞擊密碼進行的攻擊,在猜測三次后即被關(guān)閉在“大門”之外。
堡壘機雙活部署雖然保證了運維的高可用,但如果運維工作跟不上,高可用也會變成不可用,所以進行定期的雙活堡壘機的巡檢非常的重要。每日運維人員登陸主備堡壘機和堡壘機數(shù)據(jù)服務(wù)器查看數(shù)據(jù)庫服務(wù)器狀態(tài),及時發(fā)現(xiàn)問題處理苗頭性問題,始終保持兩臺堡壘機的良好運行狀態(tài),對于保證雙活堡壘機運行的長久穩(wěn)定性很有必要。
堡壘機做為運維管控的核心設(shè)備,其集群部署,在目前多數(shù)據(jù)中心并存成為主流的背景下,解決了在一個數(shù)據(jù)中心癱瘓的情況下,服務(wù)器、交換機、數(shù)據(jù)庫等關(guān)鍵軟硬件設(shè)備的運維,仍可以在無需調(diào)整運維方式的情況下繼續(xù)運維,保持實現(xiàn)運維審計和權(quán)限管控功能,實現(xiàn)了運維安全的連續(xù)性,為兩個或多個數(shù)據(jù)中心設(shè)備的不間斷運維提供了很好的解決方案。