袁海波 祁建東
摘要:文章就大部分企業(yè)局域網(wǎng)絡(luò)遇到的網(wǎng)絡(luò)速度慢、影響企業(yè)正常業(yè)務(wù)運行、又難以管理的網(wǎng)絡(luò)問題,以客戶端控制進(jìn)程并與服務(wù)器端進(jìn)行通訊方式編寫了網(wǎng)絡(luò)控制軟件。該軟件實際應(yīng)用中采用了“白名單”思路控制客戶端的軟件操作,而且能夠根據(jù)時間進(jìn)行控制,從而達(dá)到管理網(wǎng)絡(luò)終端,防止網(wǎng)絡(luò)帶寬被占用,提高網(wǎng)絡(luò)速度的目的。
關(guān)鍵詞:網(wǎng)絡(luò) 終端進(jìn)程 控制
0 引言
隨著計算機(jī)網(wǎng)絡(luò)的發(fā)展和普及,各大企業(yè)都建立了自己的局域網(wǎng)。利用網(wǎng)絡(luò)不單純是上網(wǎng)瀏覽網(wǎng)頁、收發(fā)電子郵件,更主要的是業(yè)務(wù)在網(wǎng)上的傳遞,如:財務(wù)系統(tǒng)、物資系統(tǒng)、人力資源等系統(tǒng)的應(yīng)用。這些系統(tǒng)的應(yīng)用,對企業(yè)網(wǎng)絡(luò)速度、網(wǎng)絡(luò)的穩(wěn)定性和網(wǎng)絡(luò)安全性有了嚴(yán)格的要求。目前,幾乎所有的企業(yè)內(nèi)部網(wǎng)絡(luò)都遇到了網(wǎng)絡(luò)速度慢,影響業(yè)務(wù)的正常運行,即便是主干千兆、桌面百兆的網(wǎng)絡(luò)、互聯(lián)網(wǎng)出口20兆的網(wǎng)絡(luò)。經(jīng)過我們調(diào)查分析,其實真正影響網(wǎng)絡(luò)速度是下載軟件、大型游戲等軟件的運行以及病毒木馬的傳播。網(wǎng)絡(luò)終端控制軟件就是針對企業(yè)面臨的這種情況,通過技術(shù)手段對影響網(wǎng)絡(luò)速度的軟件、游戲加以控制,來保證企業(yè)正常業(yè)務(wù)的運行。該軟件采用控制進(jìn)程的方法,對非法進(jìn)程和不允許運行的進(jìn)程進(jìn)行控制,同時該軟件對木馬軟件也起到一定的防范作用。
1 特點
網(wǎng)絡(luò)終端控制軟件與網(wǎng)絡(luò)管理軟件對比
網(wǎng)管軟件的主要協(xié)議
雖然各網(wǎng)管軟件提供商在產(chǎn)品性能方面不盡相同,但是基本上都采用了SNMP、DMI、WMI、TCP/IP、SPX/IPX、SNA、DECNET、SAN等協(xié)議,如3Com Network、BMC software、SiteView等。SNMP是由一系列協(xié)議組和規(guī)范組成的,它們提供了一種從網(wǎng)絡(luò)上的設(shè)備中收集網(wǎng)絡(luò)管理信息的方法。另外,有些網(wǎng)絡(luò)管理軟件采用了CMIP協(xié)議(一種較SNMP更為詳細(xì)的網(wǎng)絡(luò)管理協(xié)議)但由于其自身的一些缺陷,并未被廣泛使用。
1.1 網(wǎng)管軟件的主要技術(shù) 隨著網(wǎng)絡(luò)管理需求的不斷增加,越來越多的網(wǎng)絡(luò)管理技術(shù)被開發(fā)和使用,下面簡要介紹網(wǎng)絡(luò)管理領(lǐng)域相關(guān)的一些主要技術(shù)。
1.1.1 Portal技術(shù) Portal 是一個基于瀏覽器的、建立和開發(fā)企業(yè)信息門戶的軟件環(huán)境,具有很強(qiáng)的可擴(kuò)展性、兼容性和綜合性。它提供了對分布式軟件服務(wù)和信息資源的安全、可管理的框架。便于使用的Portal界面為每個用戶提供了他所需要的信息和Web內(nèi)容,同時也保證了每個用戶只能訪問他所能訪問的信息資源和應(yīng)用邏輯。
1.1.2 RMON技術(shù) 網(wǎng)絡(luò)管理技術(shù)的一個新的趨勢是使用RMON(遠(yuǎn)程網(wǎng)絡(luò)監(jiān)控)。RMON的目標(biāo)是為了擴(kuò)展SNMP的MIB-II(管理信息庫),使SNMP更為有效、更為積極主動地監(jiān)控遠(yuǎn)程設(shè)備。
1.1.3 基于Web的網(wǎng)絡(luò)管理技術(shù) 由于Web有獨立的平臺,且易于控制和使用,因而常被用來實現(xiàn)可視化的顯示。
1.1.4 XML技術(shù) 采用XML技術(shù),系統(tǒng)提供了標(biāo)準(zhǔn)的信息源,可以與企業(yè)內(nèi)部的其它專業(yè)系統(tǒng)或外部系統(tǒng)進(jìn)行數(shù)據(jù)交互。
1.1.5 CORBA技術(shù) CORBA是OMG(Object Management Group)為解決不同軟硬件產(chǎn)品之間互操作而提出的一種解決方案。簡單地說,CORBA是一個面向?qū)ο蟮姆植际接嬎闫脚_,它允許不同的程序之間可以透明地進(jìn)行互操作,而不用關(guān)心對方位于何地、由誰來設(shè)計、運行于何種軟硬件平臺以及用何種語言實現(xiàn)等,從而使不同的網(wǎng)絡(luò)管理模式能夠結(jié)合在一起。
SNMP是簡單網(wǎng)絡(luò)管理協(xié)議(Simple Network Management Protocol)的縮寫,它是由Internet工程任務(wù)組織(Internet Engineering Task Force)的研究小組為了解決Internet上的路由器管理問題而提出的,提供了一種從網(wǎng)絡(luò)上的設(shè)備中收集網(wǎng)絡(luò)管理信息的方法,也為設(shè)備向網(wǎng)絡(luò)管理中心報告問題和錯誤提供了一種方法。
具有遠(yuǎn)程管理能力的SNMP使管理人員可以對整個子網(wǎng)進(jìn)行管理,而不是對整個子網(wǎng)內(nèi)的設(shè)備進(jìn)行管理。SNMP是一個標(biāo)準(zhǔn)的用于管理IP網(wǎng)絡(luò)上結(jié)點的協(xié)議。此協(xié)議包括了監(jiān)視和控制變量集以及用于監(jiān)視設(shè)備的兩個數(shù)據(jù)格式:SMI和MIB。
目前大部分網(wǎng)絡(luò)管理軟件采用SNMP協(xié)議進(jìn)行網(wǎng)絡(luò)管理,與網(wǎng)絡(luò)控制軟件相比
1.2 網(wǎng)絡(luò)終端控制軟件 優(yōu)點:①可以查看被管理終端的進(jìn)程、任務(wù),便于終端問題的維護(hù)(木馬、非法進(jìn)程等)。②不進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)過濾,所以不降低網(wǎng)絡(luò)速度。③可以群發(fā)消息。④可以遠(yuǎn)程設(shè)置終端,對終端進(jìn)行控制。⑤不用增加服務(wù)器等其他硬件。⑥不用改變網(wǎng)絡(luò)架構(gòu)。缺點:①安裝麻煩,工作量大(需要逐個終端安裝)。②需要制定相應(yīng)的管理制度,防止程序刪除,不受服務(wù)器端控制。
2 結(jié)構(gòu)及功能
2.1 軟件分為服務(wù)器端和客戶端,采用TCP/IP協(xié)議進(jìn)行通訊。
2.1.1 服務(wù)器端:管理防火墻等硬件設(shè)備;更新控制程序;查詢客戶端控制情況。采用了在服務(wù)器端控制防火墻的方法,解決安裝客戶端的麻煩。即受控計算機(jī)不安裝客戶端,將不能上互聯(lián)網(wǎng)。同時軟件采用了反向思維方法,不允許運行即為禁止,減少了系統(tǒng)管理員每發(fā)現(xiàn)一個要禁止的軟件,就要維護(hù)一次的繁瑣工作量(采用了白名單的管理方式)。
2.1.2 客戶端:接收服務(wù)器端指令;控制客戶端進(jìn)程;觀測客戶端網(wǎng)絡(luò)連接、任務(wù)、流量等信息。
2.2 軟件功能:控制局域網(wǎng)內(nèi)計算機(jī)終端的軟件運行;遠(yuǎn)程設(shè)置控制信息(單一計算機(jī)、所有在線計算機(jī));可以分時段進(jìn)行控制(上班時間禁止、下班時間允許等);計算機(jī)終端日志統(tǒng)計;查看網(wǎng)絡(luò)端口;查看控制列表;查看進(jìn)程列表;查看任務(wù)列表等;被控制的計算機(jī)IP和MAC地址綁定進(jìn)行客戶端控制;從技術(shù)上可以監(jiān)測到客戶端的任何活動。
3 關(guān)鍵技術(shù)
3.1 進(jìn)程控制 進(jìn)程管理在Windows中是一個比較重要的內(nèi)容,由于每一個正在運行的程序(包括Windows的后臺程序和動態(tài)鏈接庫)都對應(yīng)有各自的進(jìn)程,通過對進(jìn)程的管理可以防止一些非法程序(如特洛伊木馬程序)的運行,但是Windows的任務(wù)管理器雖然能夠中止進(jìn)程,不過它的進(jìn)程列表里面已經(jīng)屏蔽了某些與系統(tǒng)有關(guān)的進(jìn)程,現(xiàn)在有的特洛伊木馬(如冰河)在編程時將自己注冊為系統(tǒng)服務(wù),因此通過Windows的任務(wù)管理器并不能中止它的進(jìn)程;而Windows的系統(tǒng)信息工具msinfo32.exe雖然能夠列出系統(tǒng)中所有的進(jìn)程,但是并不能中止進(jìn)程,所以也是于事無補(bǔ)。
為此我們可以自己編寫一個進(jìn)程管理軟件,首先,它要能夠列出系統(tǒng)中的所有進(jìn)程,其次也要能夠中止系統(tǒng)中任意一個進(jìn)程(當(dāng)然有些進(jìn)程中止后將有可能導(dǎo)致死機(jī))。
編程思路:列出系統(tǒng)進(jìn)程一般的方法是通過調(diào)用一組ToolHelp32函數(shù),該組函數(shù)存在于kernel32.dll鏈接庫中,它有許多功能,而枚舉系統(tǒng)中的進(jìn)程只是它眾多功能中的一項。下面是要用到的幾個關(guān)于進(jìn)程的API函數(shù):CreateToolHelpSnapshot()、ProcessFirst()、ProcessNext()。不知道是什么原因,這么重要的函數(shù)微軟居然并沒有將其錄入到VB的API文本瀏覽器中,因此我們只好手工將其錄入了,下面是聲明:
Public Declare Function CreateToolhelpSnapshot Lib "kernel32" Alias "CreateToolhelp32Snapshot" (ByVal lFlags As Long,ByVal lProcessID As Long) As Long
Public Declare Function ProcessFirst Lib "kernel32" Alias "Process32First" (ByVal hSnapShot As Long,uProcess As PROCESSENTRY32) As Long
Public Declare Function ProcessNext Lib "kernel32" Alias "Process32Next" (ByVal hSnapShot As Long,uProcess As PROCESSENTRY32) As Long
此外還需要定義一個PROCESSENTRY32結(jié)構(gòu),這個結(jié)構(gòu)中包含有有關(guān)系統(tǒng)中進(jìn)程的某些信息。
Public Type PROCESSENTRY32
dwSize As Long
cntUsage As Long
th32ProcessID As Long
th32DefaultHeapID As Long
th32ModuleID As Long
cntThreads As Long
th32ParentProcessID As Long
pcPriClassBase As Long
dwFlags As Long
szExeFile As String*MAX_PATH
End Type
下面是列出系統(tǒng)進(jìn)程的步驟:
3.1.1 用CreateToolHelpSnapshot()函數(shù)來創(chuàng)建系統(tǒng)中進(jìn)程信息的“快照”,該函數(shù)返回一個句柄(該句柄將在下面的函數(shù)中得到應(yīng)用)。
3.1.2 用ProcessFirst()函數(shù)從以上“快照”中獲取進(jìn)程,該函數(shù)有兩個參數(shù),第一個是第一步中函數(shù)返回的句柄,第二個是指向PROCESSENTRY32結(jié)構(gòu)的指針,當(dāng)系統(tǒng)中還有其它進(jìn)程時,該函數(shù)返回true。
3.1.3 用ProcessNext()函數(shù)從“快照”中不斷獲取進(jìn)程,直到它返回false為止;關(guān)閉進(jìn)程也是一個值得討論的問題,傳統(tǒng)的方法是用GetWindow來查找窗口句柄,再利用GetWindowText來獲得窗口的標(biāo)題,然后利用SendMessage函數(shù)發(fā)送WM_CLOSE消息來關(guān)閉該程序。不過這種方法有很大的缺陷:首先是有的窗口是沒有標(biāo)題欄的,這樣的程序是無法通過該方法關(guān)閉的;其次,這種方法對動態(tài)鏈接庫也是無法關(guān)閉的。在這里我們可以充分利用PROCESSENTRY32結(jié)構(gòu),它里面有一個th32ProcessID成員,通過TerminateProcess()函數(shù)就可以關(guān)閉進(jìn)程。
3.2 設(shè)計思路:為了減少網(wǎng)絡(luò)管理者的工作量,程序采用反向思維方式,即非允許的即時被控制的(白名單)。軟件提供允許進(jìn)程列表,系統(tǒng)隨時查詢運行進(jìn)程,對照控制列表實現(xiàn)對客戶的進(jìn)程的控制。
軟件開包括任務(wù)控制、流量控制、網(wǎng)絡(luò)連接等技術(shù),由于篇幅有限筆者不再贅述。
4 實施與應(yīng)用
軟件使用 客戶端軟件安裝運行后不用操作,整個操作全部在服務(wù)器端。
服務(wù)器管理軟件界面如下:
4.1 遠(yuǎn)程設(shè)置某一計算機(jī)允許或禁止某一軟件運行
例如設(shè)置1#計算機(jī)禁止“任務(wù)管理器”運行,鼠標(biāo)單擊計算機(jī)列表中要設(shè)置的計算機(jī),選擇軟件名稱“任務(wù)管理器”,點擊禁止運行,點擊“遠(yuǎn)程設(shè)置”即可。
注意:安裝完成客戶端以后,控制列表中沒有允許的都將不能使用,系統(tǒng)管理員需要提前作調(diào)查(如:CAD、工資軟件、Windows 媒體播放器、PDF閱讀器等等)是否允許運行,以免造成這些軟件不能運行,影響正常工作。
默認(rèn)的計算機(jī)控制列表如下:
ALG.EXE [全天] [允許]
BT下載 [全天] [禁止]
CSRSS.EXE [全天] [允許]
CTFMON.EXE [全天] [允許]
CTFON.EXE [全天] [允許]
EXCEL.EXE [全天] [允許]
EXPLORER.EXE [全天] [允許]
Foxmail.exe [全天] [允許]
……………
大唐豪俠 [上班] [禁止]
大唐豪俠設(shè)置 [上班] [禁止]
記事本 [全天] [允許]
金山詞霸 [全天] [允許]
任務(wù)管理器 [全天] [允許]
瑞星殺毒RavMonD [全天] [允許]
瑞星殺毒軟件Rav [全天] [允許]
瑞星殺毒軟件RavStub [全天] [允許]
紙牌游戲 [上班] [禁止]
4.2 查看進(jìn)程、任務(wù)、端口等信息 選擇要查看的計算機(jī),點擊相應(yīng)的按鈕即可。查看后的列表信息可以復(fù)制到記事本等文字處理軟件保存。
4.3 控制設(shè)置(修改控制軟件) 點擊“控制設(shè)置”按紐后進(jìn)入設(shè)置界面,如下圖
5 防火墻控制
服務(wù)器端與防火墻連接,對于受控計算機(jī),不在線時,防火墻自動添加命令,不讓其訪問互聯(lián)網(wǎng)。設(shè)置方法如下:
填寫被控制的計算機(jī)IP和MAC地址
注意:該表將與防火墻中阻止主機(jī)數(shù)據(jù)同步,不要刪除表中內(nèi)容。不要在自動控制時填寫此表。
單擊“主機(jī)阻止”按鈕,出現(xiàn)以下界面:
選擇“連接”菜單,中的設(shè)置,選擇串口,確保該串口已經(jīng)聯(lián)通了防火墻。選擇“連接”。輸入用戶名、密碼,單擊登錄,測試能否登陸成功。
登陸成功后,單擊“自動控制”,全部設(shè)置完畢。
6 結(jié)論
該軟件實際應(yīng)用中能夠控制客戶端的軟件操作,甚至其他軟件的安裝也可以被控制,現(xiàn)有的軟件如果不設(shè)置在“白名單”(允許)中也不能運行。而且能夠根據(jù)時間進(jìn)行控制,在實際運行中由于控制相對嚴(yán)格,同時因為安裝在客戶端,用戶擔(dān)心有隱私被發(fā)現(xiàn),用戶存在不愿意接受的情況。還需要制定相應(yīng)的管理制度來制約,采用技術(shù)加管理的方式控制終端程序的運行,從而達(dá)到管理防止網(wǎng)絡(luò)帶寬被占用的目的。被管理的計算機(jī)被強(qiáng)行安裝控制軟件,未安裝控制軟件的計算機(jī)不運行上網(wǎng)。系統(tǒng)管理員注意收集被控制軟件的信息,經(jīng)常更新控制庫。根據(jù)用戶需求,下一步需要增加一些終端資產(chǎn)管理的功能(計算機(jī)臺賬)。
參考文獻(xiàn):
[1]林永.Widnows API編程手冊.人民郵電出版社.2002-06-24.
[2]http://www.snmpc.com.cn/news/readnews2.asp?NewsID=187.
[3]http://vb.xin-soft.com/resource/article/OCX/71.txt.
[4]http://www.dcnetworks.com.cn/cn/download/Download.php?productid=567&menuid=7&rlistid=298&cmd=dpDCFW-1800E/S手冊2.8.