上海交通大學(xué)信息安全工程學(xué)院 王 鋒 單蓉勝
中小企業(yè)的網(wǎng)絡(luò)管理員常常會(huì)面臨這樣的困境,企業(yè)由于預(yù)算等原因而不得不將內(nèi)部網(wǎng)絡(luò)置于工作組的管理模式下。眾所周知,工作組模式下主機(jī)地位平等,缺乏統(tǒng)一集中的安全管理機(jī)制。為保證企業(yè)內(nèi)部網(wǎng)絡(luò)的安全,管理員不得不在每臺(tái)主機(jī)上進(jìn)行設(shè)置,并不斷的通過人工檢查來保證所做的安全設(shè)置不會(huì)被員工誤操作、病毒感染等因素破壞,這種方式即占用了管理員的大量時(shí)間和精力,又不能保證企業(yè)內(nèi)網(wǎng)的安全水平。本文提出利用開源的內(nèi)網(wǎng)監(jiān)控解決方案zabbix解決工作組環(huán)境下的主機(jī)安全問題的方法。該方法利用監(jiān)控系統(tǒng)掃描客戶端的安全設(shè)置,當(dāng)發(fā)現(xiàn)客戶端的安全配置不符合要求時(shí),監(jiān)控系統(tǒng)可以遠(yuǎn)程自動(dòng)的更改被監(jiān)控端的配置,強(qiáng)制客戶端執(zhí)行公司的安全策略。同時(shí)監(jiān)控系統(tǒng)還實(shí)時(shí)的檢查主機(jī)行為,當(dāng)發(fā)現(xiàn)員工QQ、MSN、游戲等工作無關(guān)的軟件,或網(wǎng)絡(luò)中某臺(tái)終端濫用網(wǎng)絡(luò)資源時(shí)系統(tǒng)可以根據(jù)設(shè)定好的規(guī)則進(jìn)行自動(dòng)處理。
本文所設(shè)計(jì)的方法由監(jiān)控系統(tǒng)的數(shù)據(jù)采集模塊、報(bào)警模塊以及反饋控制模塊三部分共同完成。數(shù)據(jù)采集由安裝在被監(jiān)控主機(jī)上的客戶端程序來完成,監(jiān)控服務(wù)器設(shè)置被監(jiān)控端數(shù)據(jù)采集的方式、數(shù)據(jù)采集的項(xiàng)目,數(shù)據(jù)采集的頻率等信息;被監(jiān)控端定期與服務(wù)器通信下載這些配置信息,并根據(jù)配置信息的設(shè)定定期發(fā)送監(jiān)控?cái)?shù)據(jù)到服務(wù)器端。報(bào)警模塊由服務(wù)器程序完成,報(bào)警模塊的主要作用是根據(jù)監(jiān)控?cái)?shù)據(jù)判斷客戶端的安全策略執(zhí)行情況,發(fā)現(xiàn)問題時(shí)及時(shí)預(yù)警。反饋控制模塊的主要作用是在工作組的環(huán)境下提供一種機(jī)制,由監(jiān)控系統(tǒng)根據(jù)警報(bào)在客戶端遠(yuǎn)程執(zhí)行命令或應(yīng)用程序,自動(dòng)的修改客戶端的系統(tǒng)配置,保證客戶端的安全配置和主機(jī)行為符合公司的安全策略。系統(tǒng)的工作流程如圖1所示。
具體流程一般包含以下五個(gè)步驟:
(1)被監(jiān)控主機(jī)定期從服務(wù)器下載監(jiān)控配置信息,根據(jù)配置信息的要求向服務(wù)器發(fā)送監(jiān)控?cái)?shù)據(jù)。
(2)服務(wù)器收集客戶端的監(jiān)控?cái)?shù)據(jù),將當(dāng)采集的數(shù)據(jù)與預(yù)設(shè)的闕值進(jìn)行比較,如果比較的結(jié)果滿足預(yù)設(shè)的某種情況時(shí)監(jiān)控系統(tǒng)產(chǎn)生事件,否則就不做處理。
(3)當(dāng)事件產(chǎn)生時(shí),服務(wù)器進(jìn)一步檢查系統(tǒng)配置中該事件對(duì)應(yīng)的動(dòng)作,根據(jù)動(dòng)作的設(shè)定進(jìn)行下一步操作,向遠(yuǎn)端主機(jī)的客戶端程序發(fā)出指令。
(4)被監(jiān)控主機(jī)的客戶端程序接到服務(wù)器的指令后,根據(jù)指令的內(nèi)容執(zhí)行相應(yīng)的Windows命令或應(yīng)用程序,更改主機(jī)的系統(tǒng)配置。
(5)監(jiān)控系統(tǒng)根據(jù)最新采集到的監(jiān)控?cái)?shù)據(jù)判斷當(dāng)前被監(jiān)控主機(jī)是否符合公司的安全策略。如果符合就不做處理繼續(xù)掃描主機(jī)安全設(shè)置;如果依舊不符合就根據(jù)設(shè)置進(jìn)行下一步處理。
數(shù)據(jù)采集模塊的主要功能是自動(dòng)采集內(nèi)網(wǎng)監(jiān)控管理所需要的相關(guān)數(shù)據(jù),其基本設(shè)計(jì)思想是:利用Zabbix所提供的機(jī)制作為基本的數(shù)據(jù)獲取和通信手段來實(shí)現(xiàn)監(jiān)控?cái)?shù)據(jù)的采集。Zabbix是一個(gè)基于WEB界面的提供分布式系統(tǒng)監(jiān)視以及網(wǎng)絡(luò)監(jiān)視功能的企業(yè)級(jí)的開源解決方案。Zabbix通過C/S模式采集數(shù)據(jù),通過B/S模式在Web端展示和配置。Zabbix系統(tǒng)以Zabbix Server為中心與其他組件溝通,包括Zabbix Database、Zabbix Web Frontend、Zabbix Agent、Zabbix Proxy等組件。數(shù)據(jù)采集以監(jiān)控項(xiàng)(Item)為基本元素,每一個(gè)監(jiān)控項(xiàng)對(duì)應(yīng)一個(gè)采集值;監(jiān)控項(xiàng)關(guān)聯(lián)到監(jiān)控主機(jī)(Host)決定對(duì)被監(jiān)控主機(jī)需要采集的數(shù)據(jù)。被監(jiān)控主機(jī)上的客戶端程序首先獲取服務(wù)器上的監(jiān)控項(xiàng)的列表,然后收集列表中要求的本機(jī)信息,最后發(fā)送給服務(wù)器進(jìn)行下一步處理。系統(tǒng)默認(rèn)提供了關(guān)于主機(jī)連通性、服務(wù)、性能等方面的監(jiān)控項(xiàng)可供使用,對(duì)主機(jī)安全性方面的檢查需要通過Zabbix提供的自定義監(jiān)控項(xiàng)來完成。自定義監(jiān)控的主要原理是由客戶端程序根據(jù)配置文件中的設(shè)置調(diào)用主機(jī)上的系統(tǒng)命令或是腳本程序,將運(yùn)行結(jié)果作為監(jiān)控?cái)?shù)據(jù)發(fā)送給服務(wù)器。這種方式極大的增強(qiáng)了監(jiān)控系統(tǒng)的功能,系統(tǒng)中幾乎全部的信息都可以被采集。
報(bào)警模塊的分兩個(gè)部分:一是定義事件,將客戶端的監(jiān)控?cái)?shù)值與預(yù)設(shè)的闕值做比較來判斷事件是否發(fā)生;二是動(dòng)作的設(shè)定,決定當(dāng)事件發(fā)生時(shí)系統(tǒng)如何進(jìn)行下一步動(dòng)作。事件的定義使用了Zabbix的觸發(fā)器(Trigger),觸發(fā)器由一個(gè)邏輯表達(dá)式Expression定義,來反映系統(tǒng)的狀態(tài)。觸發(fā)器有三種狀態(tài):PROBLEM(當(dāng)Item采集值滿足邏輯表達(dá)式定義的觸發(fā)條件時(shí)觸發(fā)器的狀態(tài),表示系統(tǒng)中發(fā)生某個(gè)事件)、OK(這是觸發(fā)器通常的狀態(tài),表明觸發(fā)器所關(guān)聯(lián)的監(jiān)控項(xiàng)目正常)、UNKNOWN(通常由于邏輯表達(dá)式設(shè)定錯(cuò)誤而造成的系統(tǒng)無法判別)。報(bào)警動(dòng)作包括動(dòng)作產(chǎn)生的條件和處理方式的設(shè)定。監(jiān)控系統(tǒng)中產(chǎn)生的事件中會(huì)有不同的級(jí)別,只有當(dāng)某類事件發(fā)生時(shí)才會(huì)引發(fā)報(bào)警;所以需要對(duì)監(jiān)控系統(tǒng)產(chǎn)生的事件進(jìn)行過濾,選出合適的事件,這種過濾通過動(dòng)作產(chǎn)生條件來完成。對(duì)不同的事件類型設(shè)置相應(yīng)的處理方式,包括發(fā)送報(bào)警消息和執(zhí)行遠(yuǎn)程命令等。
反饋控制的實(shí)現(xiàn)過程中利用了報(bào)警模塊產(chǎn)生的事件和動(dòng)作,當(dāng)檢查監(jiān)控?cái)?shù)據(jù)后發(fā)現(xiàn)客戶端的安全設(shè)置出現(xiàn)問題報(bào)警模塊就會(huì)產(chǎn)生事件,反饋控制使用了Actions中的remote command自動(dòng)修改客戶端的系統(tǒng)配置來保證客戶端的安全性。因?yàn)閆abbix agent在被監(jiān)控端是被注冊(cè)為服務(wù)啟動(dòng)的,所以Zabbix系統(tǒng)可以在被監(jiān)控端以系統(tǒng)服務(wù)的身份運(yùn)行絕大多數(shù)windows命令,也可以運(yùn)行腳本,可執(zhí)行程序等。使用Run remote commands功能,必須在被監(jiān)控端的客戶端配置文件中找到Option:EnableRemoteCommands,設(shè)置EnableRemoteCommands=1,Zabbix默認(rèn)為0,表示不允許執(zhí)行遠(yuǎn)程命令。
實(shí)驗(yàn)環(huán)境介紹:實(shí)驗(yàn)中共有兩臺(tái)計(jì)算機(jī),一臺(tái)為Zabbix服務(wù)器安裝Linux系統(tǒng),一臺(tái)為被監(jiān)控客戶端安裝WindowsXP系統(tǒng)。在Zabbix服務(wù)器上安裝Zabbix Server、Zabbix Database、Zabbix Web Frontend;在客戶端安裝Zabbix Agent。
實(shí)驗(yàn)內(nèi)容:設(shè)置Zabbix系統(tǒng)監(jiān)控Telnet服務(wù)的情況,當(dāng)系統(tǒng)遭受黑客攻擊或是管理員誤操作而打開Telnet服務(wù)時(shí)自動(dòng)生成警報(bào),并關(guān)閉Telnet服務(wù)。實(shí)驗(yàn)中手動(dòng)打開Telnet服務(wù),觀察監(jiān)控系統(tǒng)對(duì)這一情況如何處理。監(jiān)控系統(tǒng)的設(shè)置步驟如下:
(1)定義監(jiān)控項(xiàng):在web界面選擇需要監(jiān)控的主機(jī),建立監(jiān)控項(xiàng)Item;監(jiān)控鍵值選擇系統(tǒng)提供的service_state[TlntSvr](tlntsvr.exe是Windows服務(wù)器程序,可以在Windows服務(wù)中的查看服務(wù)名稱)。
(2)定義警報(bào):在相同的主機(jī)建立Trigger,Name為TelNet服務(wù)打開;Expression為{win_xp3:service_state[TlntSvr].last(0)}=0,表示當(dāng)最近一次采集的監(jiān)控值為0時(shí)引發(fā)警報(bào)。
(3)定義動(dòng)作產(chǎn)生條件:在Configuration>Actions界面中,創(chuàng)建Action。動(dòng)作產(chǎn)生條件為Host="hostname"、Trigger="hostname:TelNet服務(wù)打開”、Trigger value="PROBLEM";
(4)設(shè)置動(dòng)作:在Action operations選框中點(diǎn)擊new,在彈出的對(duì)話框中選擇Operation type為Run remote commands,在Remote command中輸入:{HOSTNAME}:net stop Tlntsvr。({HOSTNAME}是Zabbix提供的宏,自動(dòng)轉(zhuǎn)換為被監(jiān)控主機(jī)的名稱),net stop Tlntsvr是Windows命令。
實(shí)驗(yàn)結(jié)果:客戶端Telnet服務(wù)開啟后,監(jiān)控系統(tǒng)發(fā)出警報(bào),檢查客戶端Telnet服務(wù)狀態(tài)發(fā)現(xiàn)服務(wù)被自動(dòng)關(guān)閉,達(dá)到理想的預(yù)期效果。
利用Zabbix監(jiān)控系統(tǒng)結(jié)合Windows命令的方法可以實(shí)現(xiàn)自動(dòng)化、流程化、標(biāo)準(zhǔn)化的企業(yè)內(nèi)網(wǎng)管理,降低管理復(fù)雜度,使維護(hù)人員由原來的“系統(tǒng)救火員”角色變?yōu)檎嬲南到y(tǒng)管理員,變被動(dòng)為主動(dòng),極大的提高了網(wǎng)絡(luò)的維護(hù)效率。解決企業(yè)網(wǎng)絡(luò)管理工作中工作組環(huán)境下安全管理薄弱的問題,增強(qiáng)了系統(tǒng)安全性,對(duì)于企業(yè)的信息化建設(shè)起到了重要作用。
[1]萬加富,張文斐,張占松.網(wǎng)絡(luò)監(jiān)控系統(tǒng)原理與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2004.1.
[2]高楊.內(nèi)網(wǎng)終端安全操作監(jiān)控方案研究[J].硅谷,2009.8.
[3]李朝陽.利用ZABBIX進(jìn)行系統(tǒng)和網(wǎng)絡(luò)管理[J].計(jì)算機(jī)時(shí)代,2008.10.