本申請涉及計算機領域,特別是涉及一種實現(xiàn)虛擬機網(wǎng)絡訪問控制的方法及裝置。
背景技術:
隨著大數(shù)據(jù)時代的到來,如何保護數(shù)據(jù)變得越來越重要,同時隨著云計算技術的發(fā)展,在越來越多的應用場景下,需要使用虛擬機來訪問某個應用。
因此,如何針對虛擬機進行靈活可靠的網(wǎng)絡訪問控制,對保護數(shù)據(jù)的意義越來越重要。
現(xiàn)有技術中,對于虛擬機的網(wǎng)絡訪問控制主要有以下三種方式:
第一,通過在虛擬機中加入一些網(wǎng)絡訪問控制軟件進行網(wǎng)絡訪問控制。
此種方法雖然可以對虛擬機的網(wǎng)絡訪問控制做到很細的粒度,例如針對應用或針對用戶等。但是,該方法是通過虛擬機中的軟件進行網(wǎng)絡訪問控制,因此虛擬機中的軟件是用戶可以接觸到的,也就存在被用戶繞過的可能。
第二,通過對虛擬機的ip等參數(shù)實現(xiàn)對虛擬機的網(wǎng)絡訪問控制。
該方法在網(wǎng)關或應用入口處通過限制源ip的方式來進行網(wǎng)絡訪問控制。但是該方法也存在以下幾點問題:
1)如果虛擬機在宿主機上通過網(wǎng)絡地址轉(zhuǎn)換(Network Address Translation,NAT)的方式訪問網(wǎng)絡,則無法拿到虛擬機的ip,只能通過限制宿主機的ip來完成網(wǎng)絡訪問控制,此時粒度就會變大。
2)如果在網(wǎng)關做限制且能拿到虛擬機的ip,此種情況下也只能對整個虛擬機進行網(wǎng)絡訪問控制,而無法實現(xiàn)針對其中的某一個應用做網(wǎng)絡訪問控制。
3)在應用入口處根據(jù)源ip做訪問控制,需要修改應用,非常不靈活。
第三,通過給虛擬機所在的網(wǎng)絡實現(xiàn)網(wǎng)絡訪問控制。
該方法通過給虛擬機劃分網(wǎng)絡,通過網(wǎng)絡隔離的方式來進行網(wǎng)絡訪問控制,由于該方法是針對虛擬機所在的網(wǎng)絡,因此粒度太大,不靈活。
因此,現(xiàn)有技術中無法精確實現(xiàn)對虛擬機中某一應用的網(wǎng)絡訪問控制,且避免用戶繞過。
技術實現(xiàn)要素:
本申請實施例提供了一種實現(xiàn)虛擬機網(wǎng)絡訪問控制的方法及裝置,用以實現(xiàn)對虛擬機中任一應用的網(wǎng)絡訪問控制,且避免用戶繞過。
本申請實施例提供的具體技術方案如下:
一種實現(xiàn)虛擬機網(wǎng)絡訪問控制的方法,包括:
截獲本地的虛擬機通過本地的虛擬網(wǎng)卡發(fā)送的數(shù)據(jù)包,并對所述數(shù)據(jù)包進行解析;
根據(jù)所述數(shù)據(jù)包的解析結(jié)果確定所述虛擬機中需要發(fā)起網(wǎng)絡訪問的應用程序;
根據(jù)網(wǎng)絡訪問策略集合,判斷是否允許所述應用程序訪問網(wǎng)絡,若是,繼續(xù)發(fā)送所述數(shù)據(jù)包,否則,拋棄所述數(shù)據(jù)包,其中,一條網(wǎng)絡訪問策略表征一虛擬機中的一應用程序通過對應的虛擬網(wǎng)卡進行網(wǎng)絡訪問的權限配置信息。
本申請的方法,具有細粒度,防繞過的特點,使得對虛擬機的網(wǎng)絡訪問控制更加靈活,也更加可靠。
可選的,在截獲本地的虛擬機通過本地的虛擬網(wǎng)卡發(fā)送的數(shù)據(jù)包之前,進一步包括:
接收網(wǎng)絡訪問控制策略服務器下發(fā)的針對本地所有虛擬機的網(wǎng)絡訪問策略集合。
可選的,進一步包括:
定期將當前所有虛擬機及對應的虛擬網(wǎng)卡信息發(fā)送至所述網(wǎng)絡訪問控制策略服務器。
可選的,進一步包括:
當檢測到有新的虛擬網(wǎng)卡創(chuàng)建時,將所述新的虛擬網(wǎng)卡及對應的虛擬機的通知信息發(fā)送至所述網(wǎng)絡訪問控制策略服務器。
可選的,進一步包括:
當檢測到已有的虛擬網(wǎng)卡刪除時,將所述已有的虛擬網(wǎng)卡及對應的虛擬機的通知信息發(fā)送至所述網(wǎng)絡訪問控制策略服務器。
一種實現(xiàn)虛擬機網(wǎng)絡訪問控制的裝置,包括:
處理單元,用于截獲本地的虛擬機通過本地的虛擬網(wǎng)卡發(fā)送的數(shù)據(jù)包,并對所述數(shù)據(jù)包進行解析;
分析單元,用于根據(jù)所述數(shù)據(jù)包的解析結(jié)果確定所述虛擬機中需要發(fā)起網(wǎng)絡訪問的應用程序;
判斷單元,用于根據(jù)網(wǎng)絡訪問策略集合,判斷是否允許所述應用程序訪問網(wǎng)絡,若是,繼續(xù)發(fā)送所述數(shù)據(jù)包,否則,拋棄所述數(shù)據(jù)包,其中,一條網(wǎng)絡訪問策略表征一虛擬機中的一應用程序通過對應的虛擬網(wǎng)卡進行網(wǎng)絡訪問的權限配置信息。
可選的,在截獲本地的虛擬機通過本地的虛擬網(wǎng)卡發(fā)送的數(shù)據(jù)包之前,進一步包括:
接收單元,用于接收網(wǎng)絡訪問控制策略服務器下發(fā)的針對本地所有虛擬機的網(wǎng)絡訪問策略集合。
可選的,進一步包括:
同步單元,用于定期將當前所有虛擬機及對應的虛擬網(wǎng)卡信息發(fā)送至所述網(wǎng)絡訪問控制策略服務器。
可選的,所述同步單元進一步用于:
當檢測到有新的虛擬網(wǎng)卡創(chuàng)建時,將所述新的虛擬網(wǎng)卡及對應的虛擬機,的通知信息發(fā)送至所述網(wǎng)絡訪問控制策略服務器。
可選的,所述同步單元進一步用于:
當檢測到已有的虛擬網(wǎng)卡刪除時,將所述已有的虛擬網(wǎng)卡及對應的虛擬機的通知信息發(fā)送至所述網(wǎng)絡訪問控制策略服務器。
本申請的方法,具有細粒度,防繞過的特點,使得對虛擬機的網(wǎng)絡訪問控制更加靈活,也更加可靠。
附圖說明
圖1為本申請實施例中網(wǎng)絡訪問控制系統(tǒng)示意圖;
圖2為本申請實施例中網(wǎng)絡訪問控制策略服務器的結(jié)構示意圖;
圖3為本申請實施例中實現(xiàn)網(wǎng)絡訪問控制的概述流程圖;
圖4為本申請實施例中實現(xiàn)網(wǎng)絡訪問控制裝置的結(jié)構示意圖。
具體實施方式
為了實現(xiàn)對虛擬機中任一應用的網(wǎng)絡訪問控制,且避免用戶繞過,本申請?zhí)峁┝艘环N實現(xiàn)虛擬機網(wǎng)絡訪問控制的方法及裝置,該方法為:截獲本地的虛擬機通過本地的虛擬網(wǎng)卡發(fā)送的數(shù)據(jù)包,并對數(shù)據(jù)包進行解析;根據(jù)數(shù)據(jù)包的解析結(jié)果確定虛擬機中需要發(fā)起網(wǎng)絡訪問的應用程序;根據(jù)網(wǎng)絡訪問策略集合,判斷是否允許應用程序訪問網(wǎng)絡,若是,繼續(xù)發(fā)送數(shù)據(jù)包,否則,拋棄數(shù)據(jù)包,其中,一條網(wǎng)絡訪問策略表征一虛擬機中的一應用程序通過對應的虛擬網(wǎng)卡進行網(wǎng)絡訪問的權限配置信息。
下面結(jié)合附圖對本申請優(yōu)選的實施方式進行詳細說明。
參閱圖1所示,為本申請中網(wǎng)絡訪問控制系統(tǒng)示意圖。
圖1中所示的宿主機中包括兩個虛擬機,分別為虛擬機1和虛擬機2,它們分別對應著虛擬網(wǎng)卡1和虛擬網(wǎng)卡2,并通過宿主機網(wǎng)絡協(xié)議棧與網(wǎng)絡訪問控制代理(agent)建立網(wǎng)絡訪問控制關系。
網(wǎng)絡訪問控制代理接收網(wǎng)絡訪問控制策略服務器發(fā)送的針對本地所有虛擬機的網(wǎng)絡訪問策略集合。
網(wǎng)絡訪問控制策略服務器至少包括以下五個模塊,參閱圖2所示。
策略配置模塊20提供給管理員配置策略的接口,
其中,網(wǎng)絡訪問控制策略至少包括以下元素,虛擬機名稱,虛擬網(wǎng)卡名稱,應用名稱,和訪問權限以及該應用的數(shù)據(jù)包格式。例如,虛擬機1,虛擬網(wǎng)卡1,不可訪問應用1,應用1的數(shù)據(jù)包格式,可訪問應用2,應用2的數(shù)據(jù)包格式等。
策略配置模塊20接收到管理員配置的策略后,如發(fā)現(xiàn)有更新,將其存入策略數(shù)據(jù)庫21,并將策略發(fā)送給策略分發(fā)模塊22。
策略分發(fā)模塊22通過根據(jù)虛擬機名以及虛擬網(wǎng)卡名查詢agent信息數(shù)據(jù)庫23,找到對該虛擬機網(wǎng)絡進行控制的agent,即宿主機,并將策略下發(fā)給對應agent。
Agent管理模塊24,負責監(jiān)聽agent的同步信號,以更新agent的狀態(tài),并將其存入agent信息數(shù)據(jù)庫23。
具體的,網(wǎng)絡訪問控制策略服務器與宿主機上的網(wǎng)絡訪問控制agent上的虛擬機和虛擬網(wǎng)卡信息保持同步,至少包括以下三種情況:
第一,網(wǎng)絡訪問控制agent定期將當前所有虛擬機及對應的虛擬網(wǎng)卡信息發(fā)送至網(wǎng)絡訪問控制策略服務器。
第二,當網(wǎng)絡訪問控制agent檢測到有新的虛擬網(wǎng)卡創(chuàng)建時,將新的虛擬網(wǎng)卡及對應的虛擬機的通知信息發(fā)送至網(wǎng)絡訪問控制策略服務器。
第三,當網(wǎng)絡訪問控制agent檢測到已有的虛擬網(wǎng)卡刪除時,將已有的虛擬網(wǎng)卡及對應的虛擬機的通知信息發(fā)送至網(wǎng)絡訪問控制策略服務器。
圖3所示,為本申請中通過網(wǎng)絡訪問控制agent實現(xiàn)虛擬機網(wǎng)絡訪問控制的具體流程:
步驟300:截獲本地的虛擬機通過本地的虛擬網(wǎng)卡發(fā)送的數(shù)據(jù)包,并對數(shù)據(jù)包進行解析。
網(wǎng)絡訪問控制agent通過本地宿主機內(nèi)核截獲所使用虛擬機通過虛擬網(wǎng)卡 發(fā)送的ip數(shù)據(jù)包。
其中。該數(shù)據(jù)包的訪問控制是在宿主機上通過網(wǎng)絡訪問控制agent完成的,由于網(wǎng)絡控制不是發(fā)生在虛擬機內(nèi)部,用戶無法觸及到修改網(wǎng)絡訪問權限,因此具有不可繞過的特征。
步驟310:根據(jù)數(shù)據(jù)包的解析結(jié)果確定虛擬機中需要發(fā)起網(wǎng)絡訪問的應用程序。
網(wǎng)絡訪問控制agent通過虛擬網(wǎng)卡確定數(shù)據(jù)包來自哪一個虛擬機,并通過對數(shù)據(jù)包進行解析確定需要發(fā)起網(wǎng)絡訪問的應用程序。
例如,通過虛擬網(wǎng)卡標識信息確定發(fā)送ip數(shù)據(jù)包的虛擬機,并通過對數(shù)據(jù)包包頭的解析結(jié)果確定該數(shù)據(jù)包是由哪個應用程序發(fā)送的網(wǎng)絡訪問。
步驟320:根據(jù)網(wǎng)絡訪問策略集合,判斷是否允許應用程序訪問網(wǎng)絡,若是,繼續(xù)發(fā)送數(shù)據(jù)包,否則,拋棄數(shù)據(jù)包,其中,一條網(wǎng)絡訪問策略表征一虛擬機中的一應用程序通過對應的虛擬網(wǎng)卡進行網(wǎng)絡訪問的權限配置信息。
具體的,根據(jù)該數(shù)據(jù)包的解析結(jié)果,包括虛擬機名稱,虛擬網(wǎng)卡名稱,和發(fā)起網(wǎng)絡訪問的應用程序名稱,查詢網(wǎng)絡訪問控制agent接收到的網(wǎng)絡訪問策略集合,找出與該數(shù)據(jù)包解析結(jié)果相對應的網(wǎng)絡訪問策略。
例如,該數(shù)據(jù)包的解析結(jié)果為虛擬機1,虛擬網(wǎng)卡1,應用1,則在網(wǎng)絡訪問策略集合中查找相應的網(wǎng)絡訪問的權限配置信息,若確定虛擬機1,虛擬網(wǎng)卡1,可以訪問應用1,則繼續(xù)發(fā)送該數(shù)據(jù)包。若確定虛擬機1,虛擬網(wǎng)卡1,不可以訪問應用1,則拋棄該數(shù)據(jù)包。
因此,網(wǎng)絡訪問控制agent可以實現(xiàn)虛擬機網(wǎng)絡訪問細粒度且防繞過的控制,使得對虛擬機的網(wǎng)絡訪問控制更加靈活,也更加可控。
例如,所有對應用的網(wǎng)絡訪問必須使用虛擬機來完成。因此,虛擬機在一個網(wǎng)段內(nèi)可以通過對網(wǎng)絡的控制來確保這一點。另外,在云環(huán)境中,所有用戶使用的都是虛擬機,這時的網(wǎng)絡訪問也必須通過虛擬機來完成。對于重要的應 用,我們可以獲知它的特定數(shù)據(jù)包結(jié)構,因此可以通過在宿主機上解析這些應用發(fā)送的數(shù)據(jù)包結(jié)構來判斷是否允許其進行網(wǎng)絡訪問。
以應用A為例,虛擬機通過虛擬網(wǎng)卡發(fā)送應用A的數(shù)據(jù)包,宿主機通過解析該數(shù)據(jù)包的數(shù)據(jù)包結(jié)構,通過查詢網(wǎng)絡訪問策略可以判斷其是否允許網(wǎng)絡訪問,若通過查詢網(wǎng)絡訪問策略確定該應用不具網(wǎng)絡訪問權限,則拋棄該數(shù)據(jù)包,若該應用具有網(wǎng)絡訪問權限,則轉(zhuǎn)發(fā)該數(shù)據(jù)包,這樣一來有效實現(xiàn)了對重要應用的訪問控制。
此外,這種對虛擬機的網(wǎng)絡訪問控制的方法還具有以下幾點好處:
第一,當一個虛擬機對某些應用的訪問權限發(fā)生變化時,可以很容易通過網(wǎng)絡訪問策略服務器來進行調(diào)整。
例如,虛擬機對多個應用的網(wǎng)絡訪問權限可能是不同的,也可能隨著時間變化,通過網(wǎng)絡訪問控制策略服務器能夠靈活地調(diào)整這些應用的網(wǎng)絡訪問權限。
第二,當虛擬機發(fā)生遷移的時候,網(wǎng)絡的結(jié)構也不必因為訪問控制發(fā)生大的變化。
第三,不需要對所要訪問的應用進行任何改造。
參閱圖4所示,一種實現(xiàn)虛擬機網(wǎng)絡訪問控制的裝置,包括:
處理單元40,用于截獲本地的虛擬機通過本地的虛擬網(wǎng)卡發(fā)送的數(shù)據(jù)包,并對數(shù)據(jù)包進行解析;
分析單元41,用于根據(jù)數(shù)據(jù)包的解析結(jié)果確定虛擬機中需要發(fā)起網(wǎng)絡訪問的應用程序;
判斷單元42,用于根據(jù)網(wǎng)絡訪問策略集合,判斷是否允許應用程序訪問網(wǎng)絡,若是,繼續(xù)發(fā)送數(shù)據(jù)包,否則,拋棄數(shù)據(jù)包,其中,一條網(wǎng)絡訪問策略表征一虛擬機中的一應用程序通過對應的虛擬網(wǎng)卡進行網(wǎng)絡訪問的權限配置信息。
可選的,在截獲本地的虛擬機通過本地的虛擬網(wǎng)卡發(fā)送的數(shù)據(jù)包之前,進 一步包括:
接收單元43,用于接收網(wǎng)絡訪問控制策略服務器下發(fā)的針對本地所有虛擬機的網(wǎng)絡訪問策略集合。
可選的,進一步包括:
同步單元44,用于定期將當前所有虛擬機及對應的虛擬網(wǎng)卡信息發(fā)送至網(wǎng)絡訪問控制策略服務器。
可選的,同步單元44進一步用于:
當檢測到有新的虛擬網(wǎng)卡創(chuàng)建時,將新的虛擬網(wǎng)卡及對應的虛擬機,的通知信息發(fā)送至網(wǎng)絡訪問控制策略服務器。
可選的,同步單元44進一步用于:
當檢測到已有的虛擬網(wǎng)卡刪除時,將已有的虛擬網(wǎng)卡及對應的虛擬機的通知信息發(fā)送至網(wǎng)絡訪問控制策略服務器。
綜上所述,本申請中提供了一種實現(xiàn)虛擬機網(wǎng)絡訪問控制的方法及裝置,宿主機上的網(wǎng)絡訪問控制軟件截獲本地的虛擬機通過本地的虛擬網(wǎng)卡發(fā)送的數(shù)據(jù)包,并對數(shù)據(jù)包進行解析,根據(jù)數(shù)據(jù)包的解析結(jié)果確定虛擬機中需要發(fā)起網(wǎng)絡訪問的應用程序,根據(jù)接收到的網(wǎng)絡訪問策略集合,判斷是否允許應用程序訪問網(wǎng)絡,若是,繼續(xù)發(fā)送數(shù)據(jù)包;否則,拋棄數(shù)據(jù)包。
本申請的方法,具有細粒度,防繞過的特點,使得對虛擬機的網(wǎng)絡訪問控制更加靈活,也更加可靠。
此外,當一個虛擬機對某些應用的訪問權限發(fā)生變化時,可以很容易通過網(wǎng)絡訪問控制策略服務器來進行調(diào)整,以及當虛擬機發(fā)生遷移的時候,網(wǎng)絡的結(jié)構也不必因為訪問控制發(fā)生大的變化,更不需要對所要訪問的應用進行任何改造。
本領域內(nèi)的技術人員應明白,本申請的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本申請可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本申請可采用在一個或多個其中包 含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產(chǎn)品的形式。
本申請是參照根據(jù)本申請實施例的方法、設備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
盡管已描述了本申請的優(yōu)選實施例,但本領域內(nèi)的技術人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權利要求意欲解釋為包括優(yōu)選實施例以及落入本申請范圍的所有變更和修改。
顯然,本領域的技術人員可以對本申請實施例進行各種改動和變型而不脫離本申請實施例的精神和范圍。這樣,倘若本申請實施例的這些修改和變型屬于本申請權利要求及其等同技術的范圍之內(nèi),則本申請也意圖包含這些改動和變型在內(nèi)。