專(zhuān)利名稱::管理防火墻服務(wù)的對(duì)象模型的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明一般涉及計(jì)算機(jī)或網(wǎng)絡(luò)上的安全,尤其涉及防火墻及其管理。
背景技術(shù):
:一般而言,防火墻是一種防止未授權(quán)用戶訪問(wèn)網(wǎng)絡(luò)或計(jì)算機(jī)上的某些文件的電子邊界。防火墻可作為用戶計(jì)算機(jī)上的防火墻代碼提供(“主機(jī)防火墻”)。可選地,可在網(wǎng)絡(luò)的邊緣上提供專(zhuān)用防火墻(“邊緣防火墻”),該網(wǎng)絡(luò)與網(wǎng)絡(luò)之外的計(jì)算機(jī)接口,并內(nèi)建了特殊的安全預(yù)防措施,以保護(hù)網(wǎng)絡(luò)內(nèi)的計(jì)算機(jī)上的敏感文件。該思想是保護(hù)隱藏在邊緣防火墻之后的更松散管理的機(jī)器群類(lèi)免遭網(wǎng)絡(luò)外部的用戶的攻擊。邊緣防火墻所位于的機(jī)器通常被稱為“網(wǎng)關(guān)”或“專(zhuān)用網(wǎng)關(guān)”。如果被配置成保護(hù)網(wǎng)絡(luò)免遭因特網(wǎng)攻擊,則該機(jī)器通常被稱為“因特網(wǎng)網(wǎng)關(guān)裝置”。防火墻使用至少三種不同安全措施的一個(gè)或多個(gè),來(lái)控制流入和流出網(wǎng)絡(luò)的通信。在被稱為靜態(tài)分組過(guò)濾的第一種方法中,對(duì)照一組過(guò)濾器分析分組。被過(guò)濾器批準(zhǔn)的分組被發(fā)送到發(fā)請(qǐng)求的系統(tǒng);所有其它的分組被丟棄。在被稱為代理服務(wù)的第二種方法中,來(lái)自因特網(wǎng)的信息由防火墻檢索、對(duì)照一種政策評(píng)估、然后被發(fā)送到發(fā)請(qǐng)求的系統(tǒng),反之亦然。在被稱為全狀態(tài)檢查的第三種較新的方法中,不檢查分組的內(nèi)容,但作為替代,將分組的密鑰部分與可信信息數(shù)據(jù)庫(kù)進(jìn)行比較。監(jiān)控從防火墻內(nèi)部傳輸?shù)酵獠康男畔⒌奶囟ㄌ卣鳎缓髮⑤斎胄畔⑴c這些特征相比較。如果比較生成合理的匹配,則允許信息通過(guò)。否則它被丟棄??墒褂闷渌ㄐ趴刂疲陨先N方法作為示例給出。防火墻通常是可定制的,這意味著例如可基于若干條件添加或移除過(guò)濾器。例如,可使用因特網(wǎng)協(xié)議(“IP”)地址來(lái)限制或阻斷通信。如果是這樣,則在一個(gè)示例中,如果網(wǎng)絡(luò)外部的IP地址從服務(wù)器讀取了太多的文件,則防火墻可阻斷來(lái)往于該地址的所有通信。作為另一示例,防火墻可阻斷對(duì)某一域名的所有訪問(wèn),或允許僅訪問(wèn)特定域名。作為又一示例,公司可建立僅具有一個(gè)或兩個(gè)機(jī)器的網(wǎng)絡(luò)以處理一個(gè)或多個(gè)特定協(xié)議,并禁止所有其它機(jī)器上的這些協(xié)議。再一示例使用端口來(lái)限制通信。例如,如果服務(wù)器機(jī)器正在運(yùn)行web(HTTP)服務(wù)器和FTP服務(wù)器,則web服務(wù)器通常在端口80上可用,而FTP服務(wù)器在端口21上可用。公司可阻斷端口21訪問(wèn)網(wǎng)絡(luò)上除一個(gè)機(jī)器之外的所有機(jī)器。由此,防火墻通過(guò)審閱網(wǎng)絡(luò)通信,并僅允許符合防火墻的防火墻服務(wù)內(nèi)部設(shè)定的政策的通信,確保了安全性。盡管上述通信控制方法對(duì)過(guò)濾通信起較好的作用,然而管理防火墻是困難的。例如,用戶可能想要對(duì)一個(gè)機(jī)器設(shè)置特定的訪問(wèn)政策,但是不理解端口、分組和/或過(guò)濾器。用于指定配置防火墻的防火墻政策的現(xiàn)有方法通常是不直觀的,和/或需要網(wǎng)絡(luò)協(xié)議和實(shí)現(xiàn)的深入知識(shí)。
發(fā)明內(nèi)容以下提出了本發(fā)明的某些實(shí)施例的簡(jiǎn)化概述,以提供對(duì)本發(fā)明的基本理解。本概述并非本發(fā)明的廣泛綜述。它并不意味著標(biāo)識(shí)本發(fā)明的關(guān)鍵/決定性元素,或描繪本發(fā)明的范圍。其唯一的目的是以簡(jiǎn)化的形式提出本發(fā)明的某些實(shí)施例,作為對(duì)稍后提出的更詳細(xì)描述的前序。依照本發(fā)明的一個(gè)實(shí)施例,提供了一種對(duì)象模型作為用于管理網(wǎng)絡(luò)服務(wù)的通用框架,如防火墻服務(wù)、網(wǎng)絡(luò)服務(wù)質(zhì)量、父母控制和網(wǎng)絡(luò)入侵檢測(cè),作為非限制性示例。計(jì)算機(jī)的用戶或管理員可使用該對(duì)象模型來(lái)管理服務(wù)。例如,用戶可訪問(wèn)一用戶接口,它訪問(wèn)該對(duì)象模型,并且用戶可通過(guò)該用戶接口設(shè)置服務(wù)政策。另外,該對(duì)象模型可由遠(yuǎn)程管理工具訪問(wèn),如由網(wǎng)絡(luò)管理員訪問(wèn)。以這一方式,該對(duì)象模型可用于遠(yuǎn)程地設(shè)置服務(wù)政策,并且單個(gè)管理員可管理多個(gè)計(jì)算機(jī)的服務(wù)。該對(duì)象模型使用戶和/或管理員無(wú)需處理涉及配置服務(wù)的許多可能的問(wèn)題。該對(duì)象模型包括兩個(gè)主要名字空間政策引擎平臺(tái)和政策對(duì)象模型。政策引擎平臺(tái)是與服務(wù)政策交互的中心點(diǎn)和實(shí)際執(zhí)行服務(wù)的內(nèi)核組件。政策引擎平臺(tái)執(zhí)行建立政策和將政策插入到平臺(tái)內(nèi)核組件的動(dòng)作。政策對(duì)象模型用于指定服務(wù)所支持的政策。政策對(duì)象模型準(zhǔn)許高級(jí)用戶定義傳統(tǒng)的以分組為中心的類(lèi)型的過(guò)濾政策,或準(zhǔn)許較低級(jí)用戶使用更簡(jiǎn)化的規(guī)則基于使用該服務(wù)的應(yīng)用程序和該應(yīng)用程序的用戶來(lái)開(kāi)發(fā)政策。結(jié)合附圖閱讀以下詳細(xì)描述,可以清楚本發(fā)明的其它特征,附圖中圖1所示是通過(guò)網(wǎng)絡(luò)連接的計(jì)算機(jī)的示意圖;圖2是一般示出了可用于實(shí)現(xiàn)本發(fā)明的一個(gè)實(shí)施例的示例性計(jì)算機(jī)系統(tǒng)的示意圖;圖3所示是可依照本發(fā)明的一個(gè)實(shí)施例使用的圖2的計(jì)算機(jī)系統(tǒng)的體系結(jié)構(gòu)的細(xì)節(jié)的框圖;圖4是一般表示可依照本防火墻政策對(duì)象模型的一個(gè)實(shí)施例產(chǎn)生的防火墻服務(wù)對(duì)象的圖示;圖5示出了依照本發(fā)明的一個(gè)實(shí)施例從政策對(duì)象導(dǎo)出的五個(gè)不同的基本抽象防火墻政策對(duì)象的示例;圖6示出了可依照本發(fā)明的一個(gè)實(shí)施例從政策條件對(duì)象導(dǎo)出的若干不同的政策條件類(lèi);圖7示出了可依照本發(fā)明的一個(gè)實(shí)施例從政策行動(dòng)對(duì)象導(dǎo)出的若干不同的政策行動(dòng)類(lèi);圖8是一般表示依照本發(fā)明的一個(gè)實(shí)施例的防火墻政策引擎平臺(tái)的類(lèi)的框圖;圖9示出了關(guān)于圖8所示的類(lèi)的更多細(xì)節(jié);圖10是一般表示依照本發(fā)明的一個(gè)實(shí)施例使用規(guī)則編輯器對(duì)象用于創(chuàng)建、編輯或刪除PolicyRule的步驟的流程圖;圖11是一般表示依照本發(fā)明的一個(gè)實(shí)施例使用設(shè)置編輯器對(duì)象用于創(chuàng)建PolicyRule的步驟的流程圖;圖12是一般表示依照本發(fā)明的一個(gè)實(shí)施例使用規(guī)則探查器用于對(duì)象察看PolicyRule的步驟的流程圖。具體實(shí)施例方式在以下描述中,將描述本發(fā)明的各種實(shí)施例。為解釋目的,陳述了具體的配置和細(xì)節(jié)以提供對(duì)這些實(shí)施例的透徹的理解。然而,本領(lǐng)域的技術(shù)人員也可清楚,本發(fā)明可以不采用這些特定細(xì)節(jié)來(lái)實(shí)踐。此外,可忽略或簡(jiǎn)化眾所周知的特征以不使所描述的實(shí)施例難以理解。在繼續(xù)本發(fā)明的各種實(shí)施例的描述之前,現(xiàn)在提供在其中可實(shí)踐本發(fā)明的各種實(shí)施例的計(jì)算機(jī)和網(wǎng)絡(luò)環(huán)境。盡管并非所需,但本發(fā)明將在諸如由計(jì)算機(jī)執(zhí)行的程序模塊等計(jì)算機(jī)可執(zhí)行指令的一般上下文環(huán)境中描述。一般而言,程序包括例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等,執(zhí)行特定的任務(wù)或?qū)崿F(xiàn)特定的抽象數(shù)據(jù)類(lèi)型。如本發(fā)明所使用的術(shù)語(yǔ)“程序”或“模塊”意味著單個(gè)程序模塊或一致行動(dòng)的多個(gè)程序模塊。如本發(fā)明所使用的術(shù)語(yǔ)“計(jì)算機(jī)”和“計(jì)算裝置”包括電子地執(zhí)行一個(gè)或多個(gè)程序的任一裝置,如個(gè)人計(jì)算機(jī)(PC)、手持式設(shè)備、多處理器系統(tǒng)、基于微處理器的可編程消費(fèi)者電子產(chǎn)品、網(wǎng)絡(luò)PC、小型機(jī)、圖形輸入板PC、膝上計(jì)算機(jī)、具有微處理器或微控制器的消費(fèi)者設(shè)備、路由器、網(wǎng)關(guān)、集線器等等。本發(fā)明也可在分布式計(jì)算環(huán)境中采用,其中,任務(wù)由通過(guò)通信網(wǎng)絡(luò)連接的遠(yuǎn)程處理設(shè)備來(lái)執(zhí)行。在分布式計(jì)算環(huán)境中,程序可位于本地和遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。適合結(jié)合本發(fā)明的各方面的計(jì)算機(jī)網(wǎng)絡(luò)環(huán)境的一個(gè)示例參考圖1來(lái)描述。示例計(jì)算機(jī)網(wǎng)絡(luò)環(huán)境包括通過(guò)由云表示的安全網(wǎng)絡(luò)104彼此通信的若干計(jì)算機(jī)102。安全網(wǎng)絡(luò)104可包括許多眾所周知的組件,如路由器、網(wǎng)關(guān)、集線器等等,并允許計(jì)算機(jī)102通過(guò)有線和/或無(wú)線媒質(zhì)進(jìn)行通信。當(dāng)通過(guò)安全網(wǎng)絡(luò)104彼此交互時(shí),計(jì)算機(jī)102的一個(gè)或多個(gè)可擔(dān)當(dāng)客戶機(jī)、服務(wù)器或?qū)τ谄渌?jì)算機(jī)102的對(duì)等體。因此,本發(fā)明的各個(gè)實(shí)施例可在客戶機(jī)、服務(wù)器、對(duì)等體或其組合上實(shí)踐,即使本發(fā)明所包含的具體示例可能不涉及所有這些計(jì)算機(jī)類(lèi)型。本示例中的安全網(wǎng)絡(luò)104被認(rèn)為是“安全”的網(wǎng)絡(luò),因?yàn)橛?jì)算機(jī)102由公用防火墻保護(hù),在本示例中被示出為因特網(wǎng)網(wǎng)關(guān)設(shè)備106。因特網(wǎng)網(wǎng)關(guān)設(shè)備106保護(hù)計(jì)算機(jī)102免遭位于公共或非安全網(wǎng)絡(luò)110-本示例中由云示出—上的遠(yuǎn)程計(jì)算機(jī)108的攻擊。盡管被描述為因特網(wǎng)網(wǎng)關(guān)設(shè)備106,然而網(wǎng)關(guān)設(shè)備可保護(hù)安全網(wǎng)絡(luò)免遭其它類(lèi)型的非安全網(wǎng)絡(luò)的攻擊,它們不必為因特網(wǎng),可包括LAN、WAN或另一網(wǎng)絡(luò)。盡管示出具有多個(gè)計(jì)算機(jī),然而安全網(wǎng)絡(luò)104可僅包括單個(gè)計(jì)算機(jī)102。另外,盡管示出非安全網(wǎng)絡(luò)110具有多個(gè)遠(yuǎn)程計(jì)算機(jī)108,然而它也可僅具有一個(gè)遠(yuǎn)程計(jì)算機(jī)。此外,盡管圖1所示的網(wǎng)絡(luò)同時(shí)包括安全網(wǎng)絡(luò)104和非安全網(wǎng)絡(luò)110,然而諸如計(jì)算機(jī)102的一臺(tái)計(jì)算機(jī)可在采用或不采用安全網(wǎng)絡(luò)104和/或因特網(wǎng)網(wǎng)關(guān)設(shè)備106的情況下直接連接到非安全網(wǎng)絡(luò)110。參考圖2,示出了可在其中實(shí)現(xiàn)此處所描述的本發(fā)明的實(shí)施例的計(jì)算機(jī)102的基本配置的一個(gè)示例。這一基本配置也可用于因特網(wǎng)網(wǎng)關(guān)設(shè)備106。然而,為便于描述,通常參考計(jì)算機(jī)102來(lái)描述本發(fā)明的實(shí)施例。在其最基本的配置中,計(jì)算機(jī)102通常包括至少一個(gè)處理單元202和存儲(chǔ)器204。處理單元202執(zhí)行指令以實(shí)現(xiàn)依照本發(fā)明的各種實(shí)施例的任務(wù)。在實(shí)現(xiàn)這類(lèi)任務(wù)時(shí),處理單元202可向計(jì)算機(jī)102的其它部件并向計(jì)算機(jī)102外部的裝置發(fā)送電信號(hào),以促使某些結(jié)果。根據(jù)計(jì)算機(jī)102的確切配置和類(lèi)型,存儲(chǔ)器204可以是易失(如RAM)、非易失(如ROM、閃存等)或兩者的某一組合。這一最基本配置在圖2中由虛線206示出。計(jì)算機(jī)102也可具有另外的特征/功能。例如,計(jì)算機(jī)102也可包括另外的存儲(chǔ)(可移動(dòng)208和/或不可移動(dòng)210),包括但不限于,磁盤(pán)、光盤(pán)或磁帶。計(jì)算機(jī)存儲(chǔ)媒質(zhì)包括以用于儲(chǔ)存包括計(jì)算機(jī)可執(zhí)行指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)的信息的任一方法和技術(shù)實(shí)現(xiàn)的易失和非易失、可移動(dòng)和不可移動(dòng)媒質(zhì)。計(jì)算機(jī)存儲(chǔ)媒質(zhì)包括但不限于,RAM、ROM、EEPROM、閃存、CD-ROM、數(shù)字多功能盤(pán)(DVD)或其它光存儲(chǔ)、磁盒、磁帶、磁盤(pán)存儲(chǔ)或其它磁存儲(chǔ)設(shè)備、或可以用來(lái)儲(chǔ)存期望的信息并可由計(jì)算機(jī)102訪問(wèn)的任一其它媒質(zhì)。任一這類(lèi)計(jì)算機(jī)存儲(chǔ)媒質(zhì)可以是計(jì)算機(jī)102的一部分。計(jì)算機(jī)102較佳地也包含允許裝置與其它裝置,如安全網(wǎng)絡(luò)104上的其它計(jì)算機(jī)102,或非安全網(wǎng)絡(luò)110上的遠(yuǎn)程計(jì)算機(jī)108(在圖2中僅示出了單個(gè)遠(yuǎn)程計(jì)算機(jī)108)進(jìn)行通信的通信連接212。通信連接是通信媒質(zhì)的一個(gè)示例。通信媒質(zhì)通??梢灾T如載波或其它傳輸機(jī)制等已調(diào)制數(shù)據(jù)信號(hào)中的計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)來(lái)實(shí)施,并包括任一信息傳送媒質(zhì)。作為示例而非局限,術(shù)語(yǔ)“通信媒質(zhì)”包括無(wú)線媒質(zhì),如聲學(xué)、RF、紅外和其它無(wú)線媒質(zhì)。本發(fā)明使用的術(shù)語(yǔ)“計(jì)算機(jī)可讀媒質(zhì)”包括計(jì)算機(jī)存儲(chǔ)媒質(zhì)和通信媒質(zhì)。計(jì)算裝置102也可具有輸入設(shè)備216,如鍵盤(pán)/小鍵盤(pán)、鼠標(biāo)、輸入筆、語(yǔ)音輸入設(shè)備、觸摸輸入設(shè)備等等。也可包括輸出設(shè)備218,如顯示器220、揚(yáng)聲器、打印機(jī)等等。這些設(shè)備在本領(lǐng)域中是眾所周知的,無(wú)需在此詳細(xì)描述。在以下描述中,將參考由一個(gè)或多個(gè)計(jì)算裝置執(zhí)行的行動(dòng)和操作的符號(hào)表示來(lái)描述本發(fā)明,除非另外指明。由此,可以理解,這類(lèi)行動(dòng)和操作,有時(shí)稱為計(jì)算機(jī)執(zhí)行的,包括計(jì)算機(jī)102的處理單元對(duì)以結(jié)構(gòu)化形式表示數(shù)據(jù)的電信號(hào)的操縱。這一操縱轉(zhuǎn)換了數(shù)據(jù)或在計(jì)算機(jī)102的存儲(chǔ)器系統(tǒng)中的位置上維護(hù)它,從而以本領(lǐng)域的技術(shù)人員都理解的方式重配置或改變了計(jì)算機(jī)102的操作。維護(hù)數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是存儲(chǔ)器的物理位置,具有數(shù)據(jù)的格式所定義的具體特性。然而,盡管在上述的上下文中描述本發(fā)明,它并不意味著限制,如本領(lǐng)域的技術(shù)人員所理解的,后文所描述的行動(dòng)和操作的各方面也可以硬件實(shí)現(xiàn)。圖3所示是可依照本發(fā)明的一個(gè)實(shí)施例使用的計(jì)算機(jī)102的體系結(jié)構(gòu)的細(xì)節(jié)的框圖。計(jì)算機(jī)102包括主機(jī)防火墻服務(wù),由標(biāo)號(hào)302指示。防火墻服務(wù)302可以是操作系統(tǒng)的組件或單獨(dú)的防火墻應(yīng)用程序,或運(yùn)行在計(jì)算機(jī)102上或與其相關(guān)聯(lián)的程序。一般而言,如本發(fā)明所使用的,“防火墻”服務(wù)是負(fù)責(zé)管理防火墻政策并將防火墻政策插入到內(nèi)核組件用于實(shí)施的用戶模式服務(wù)。在所示的示例中,防火墻服務(wù)302擔(dān)當(dāng)主機(jī)防火墻服務(wù),因?yàn)榉阑饓Ψ?wù)保護(hù)它在其上運(yùn)行的計(jì)算機(jī)102。防火墻服務(wù)302也可被配置成令計(jì)算機(jī)102擔(dān)當(dāng)網(wǎng)關(guān)設(shè)備。依照本發(fā)明的一個(gè)實(shí)施例,提供了對(duì)象模型一在圖3中示出為防火墻對(duì)象模型300,作為用于管理網(wǎng)絡(luò)服務(wù)—在圖3所示的實(shí)施例中為防火墻服務(wù)302-的通用框架。盡管參考用于管理諸如防火墻服務(wù)302等防火墻服務(wù)的對(duì)象模型描述了本發(fā)明的實(shí)施例,然而本發(fā)明的各方面以及本發(fā)明的實(shí)施例也可用于管理計(jì)算機(jī)的其它網(wǎng)絡(luò)服務(wù),如網(wǎng)絡(luò)服務(wù)質(zhì)量、父母控制和網(wǎng)絡(luò)入侵檢測(cè),作為非限制性示例。簡(jiǎn)要描述,防火墻對(duì)象模型300使用戶和/或管理員無(wú)需處理涉及配置和管理防火墻服務(wù)302的許多可能的問(wèn)題。計(jì)算機(jī)102的用戶或計(jì)算機(jī)或安全網(wǎng)絡(luò)的管理員可使用防火墻對(duì)象模型300來(lái)管理防火墻服務(wù)302。例如,用戶可訪問(wèn)防火墻用戶接口302,它訪問(wèn)防火墻對(duì)象模型300,用戶可通過(guò)該接口為防火墻服務(wù)302設(shè)置防火墻政策。防火墻用戶接口304可由例如防火墻服務(wù)302提供,或可由例如應(yīng)用程序提供或作為操作系統(tǒng)的一部分提供。另外,防火墻對(duì)象模型300可借助遠(yuǎn)程管理工具306,如由網(wǎng)絡(luò)管理員訪問(wèn)。以這一方式,防火墻對(duì)象300可用于對(duì)防火墻服務(wù)302遠(yuǎn)程地設(shè)置政策,準(zhǔn)許單個(gè)管理員在大量計(jì)算機(jī)上管理服務(wù)。防火墻政策308在計(jì)算機(jī)102上維護(hù)或與其相關(guān)聯(lián)。在所示的實(shí)施例中,將防火墻政策308示出為數(shù)據(jù)庫(kù),但是防火墻政策308可在若干數(shù)據(jù)庫(kù)中維護(hù),或以另一合適的方式儲(chǔ)存。防火墻對(duì)象模型300包括兩個(gè)主要的名字空間防火墻政策引擎平臺(tái)310和政策對(duì)象模型312。簡(jiǎn)要地描述,防火墻政策引擎平臺(tái)310是用于與防火墻政策308和防火墻平臺(tái)內(nèi)核組件314交互的中心點(diǎn)。防火墻平臺(tái)內(nèi)核組件314,如TCP/IP或網(wǎng)絡(luò)棧,是實(shí)際執(zhí)行過(guò)濾分組或來(lái)自計(jì)算機(jī)102的其它信息的功能的內(nèi)核組件。防火墻政策引擎平臺(tái)310執(zhí)行創(chuàng)建和配置政策的動(dòng)作,如后文進(jìn)一步描述的。政策對(duì)象模型312用于指定防火墻服務(wù)302支持的防火墻政策。政策對(duì)象模型312準(zhǔn)許高級(jí)用戶定義傳統(tǒng)的以分組為中心類(lèi)型的過(guò)濾政策,或準(zhǔn)許較低級(jí)的用戶基于應(yīng)用程序和應(yīng)用程序的用戶定義政策,如后文進(jìn)一步描述的。防火墻對(duì)象模型300使用面向?qū)ο蟮姆妒?,其中,可管理?duì)象使用類(lèi)和實(shí)例的概念來(lái)模型化。防火墻對(duì)象模型300中出現(xiàn)的對(duì)象是類(lèi)、實(shí)例、屬性和限定詞。類(lèi)是對(duì)象的模型或模板,而實(shí)例是類(lèi)的體現(xiàn),屬性是類(lèi)或?qū)嵗膫€(gè)別字段,限定詞是這些的任一個(gè)的修飾詞。政策對(duì)象模型312可用于定義政策對(duì)象,它們是指定防火墻服務(wù)的安全行動(dòng)的規(guī)則。防火墻政策引擎平臺(tái)310包括可在政策對(duì)象上執(zhí)行諸如創(chuàng)建、刪除或修改等動(dòng)作的活動(dòng)對(duì)象。圖4示出了一般表示可依照防火墻政策對(duì)象模型312的一個(gè)實(shí)施例產(chǎn)生的防火墻服務(wù)對(duì)象的圖示。PolicyObject(政策對(duì)象)對(duì)象400是防火墻對(duì)象模型300中使用的對(duì)象的抽象基類(lèi)。它具有三個(gè)主要的子類(lèi)PolicyRule(政策規(guī)則)402、PolicyAction(政策行動(dòng))404以及PolicyCondition(政策條件)406。PolicyRule402將規(guī)則模型化,并且在給出的示例中包括五個(gè)不同的屬性。第一個(gè)屬性Contidion(條件)定義為了使該規(guī)則中的一個(gè)行動(dòng)發(fā)生要匹配的一個(gè)或多個(gè)條件。這些條件可由PolicyCondition類(lèi)表示,如后文進(jìn)一步描述的。第二個(gè)屬性Action(行動(dòng))定義了當(dāng)匹配該規(guī)則中指定的一個(gè)或多個(gè)條件時(shí)所采取的一個(gè)或多個(gè)行動(dòng)。這些行動(dòng)可由PolicyAction類(lèi)來(lái)表示,如后文進(jìn)一步描述的。第三個(gè)屬性TimeConstraint(時(shí)間約束)指定了該規(guī)則有效的一周中的日和一天中的時(shí)間,如上午9點(diǎn)—下午5點(diǎn),周一—周五。第四個(gè)屬性NetworkLocation(網(wǎng)絡(luò)位置)指定了該規(guī)則有效的網(wǎng)絡(luò)位置。第五個(gè)屬性Weight(權(quán)值)指定了該規(guī)則的權(quán)值,并由防火墻政策引擎平臺(tái)310用于解決規(guī)則沖突。TimeConstraint、NetworkLoaction和Weight屬性可由用戶或管理員例如通過(guò)防火墻用戶接口304或遠(yuǎn)程管理工具306來(lái)編輯。PolicyRule402是抽象類(lèi),并可從其導(dǎo)出基礎(chǔ)抽象防火墻政策對(duì)象。圖5示出了從PolicyRule402導(dǎo)出的五個(gè)不同的基礎(chǔ)防火墻政策對(duì)象的示例。如有需要,可導(dǎo)出其它對(duì)象以反映由某些網(wǎng)絡(luò)政策,如服務(wù)質(zhì)量(QoS)或父母控制政策施加的其它約束。圖5示出的這五個(gè)基礎(chǔ)防火墻政策對(duì)象是TransportRule(傳輸規(guī)則)502、KeyingModule(密鑰模塊)504、IKERule(IKE規(guī)則)506、IPSecRule(IPSec規(guī)則)508以及ApplicationRule(應(yīng)用程序規(guī)則)510。關(guān)于這些示例導(dǎo)出政策規(guī)則類(lèi)的細(xì)節(jié)包括在展示A中。依照本發(fā)明的一個(gè)實(shí)施例,防火墻服務(wù)302能夠在分組通過(guò)網(wǎng)絡(luò)棧時(shí)在若干不同的層上檢查分組。例如,防火墻服務(wù)302可包括IP幀構(gòu)造層過(guò)濾器、TCP層過(guò)濾器、傳輸層過(guò)濾器、應(yīng)用層過(guò)濾器、遠(yuǎn)程過(guò)程調(diào)用層過(guò)濾器以及提供較低層過(guò)濾的許多其它過(guò)濾器,使得項(xiàng)目在其被阻斷之前不必要通過(guò)整個(gè)棧。這類(lèi)防火墻服務(wù)302被設(shè)計(jì)成在微軟的將要發(fā)行的LONGHORN操作系統(tǒng)中實(shí)現(xiàn)??上虻谌教峁?yīng)用編程接口,以允許第三方參與在各個(gè)層上發(fā)生的過(guò)濾決策。這些過(guò)濾器的具體實(shí)現(xiàn)細(xì)節(jié)對(duì)描述本發(fā)明并非必需。然而,可配置基礎(chǔ)抽象防火墻政策對(duì)象,以在每一相應(yīng)的層上用這些特定的過(guò)濾器來(lái)操作。TransportRule502將主要在標(biāo)準(zhǔn)5元組上過(guò)濾的傳統(tǒng)防火墻規(guī)則模型化。IPSecRule508、KeyingModule規(guī)則504和IKERule506是用于指定與IPSec相關(guān)的政策的三個(gè)不同的規(guī)則。如已知的,IPSec是提供在諸如因特網(wǎng)等未受保護(hù)的網(wǎng)絡(luò)上傳輸敏感信息的安全的協(xié)議。IPSec擔(dān)當(dāng)網(wǎng)絡(luò)層,保護(hù)并驗(yàn)證參與設(shè)備之間的IP分組。IPSecRule508、KeyingModule規(guī)則504以及IKERule506的細(xì)節(jié)在本發(fā)明所附加的展示A中給出。ApplicationRule510使用2003年6月25日提交的名為“協(xié)助應(yīng)用程序穿過(guò)防火墻的方法(MethodofAssistingandApplicationtoTraverseaFirewall)”的美國(guó)專(zhuān)利申請(qǐng)?zhí)?0/603,648中揭示的方法。簡(jiǎn)要地描述,該申請(qǐng)描述了一種可用于網(wǎng)絡(luò)棧的應(yīng)用層(“ALE”),使得用戶可容易地創(chuàng)建簡(jiǎn)單的防火墻政策或網(wǎng)絡(luò)訪問(wèn)政策,以允許或拒絕用戶計(jì)算機(jī)上的防火墻不知曉的應(yīng)用程序和服務(wù)連接到網(wǎng)絡(luò)。政策在每一用戶和每一應(yīng)用程序的基礎(chǔ)上設(shè)置。用戶不需要知道或使用規(guī)則報(bào)告、協(xié)議或IP地址來(lái)使應(yīng)用程序穿過(guò)防火墻工作。實(shí)施模塊包括監(jiān)視應(yīng)用程序和服務(wù)對(duì)網(wǎng)絡(luò)棧的連接并偵聽(tīng)其嘗試的截取模塊。截取模塊俘獲這些嘗試,并確定哪一用戶正在作出該嘗試、哪一應(yīng)用程序或服務(wù)正在作出該嘗試,然后執(zhí)行防火墻政策查找以確定該用戶和/或應(yīng)用程序是否被允許連接到該網(wǎng)絡(luò)。如果是,則截取模塊可指令主機(jī)和/或邊緣防火墻配置其自身用于請(qǐng)求的連接。PolicyCondition對(duì)象406是可從其導(dǎo)出政策條件類(lèi)的抽象對(duì)象。每一政策條件類(lèi)表示防火墻服務(wù)302會(huì)遇見(jiàn)的模式或情況。圖6示出了可依照本發(fā)明的一個(gè)實(shí)施例從PolicyCondition對(duì)象406導(dǎo)出的若干不同的政策條件類(lèi)。這些政策條件類(lèi)的每一個(gè)表示不同的模式或條件,如IP條件、傳輸條件、應(yīng)用條件或當(dāng)試圖使用防火墻服務(wù)302時(shí)存在的其它模式。從PolicyCondition406導(dǎo)出的類(lèi)具有子類(lèi)。例如,作為示例,傳輸條件可包括TCP條件、ICMP條件、UDP條件。圖6所示的這些條件類(lèi)的描述包括在展示B中。再一次,當(dāng)采用上文描述的政策對(duì)象時(shí),條件可涉及對(duì)防火墻服務(wù)302可用的過(guò)濾器。眾多不同的政策行動(dòng)可用于政策對(duì)象模型312。從PolicyAction類(lèi)404導(dǎo)出的不同的政策行動(dòng)類(lèi)的示例在圖7中示出。一般而言,允許的行動(dòng)有Permit(準(zhǔn)許),它允許匹配相關(guān)聯(lián)的條件的分組;Deny(拒絕),它丟棄不匹配相關(guān)聯(lián)的條件的分組;以及Log(記錄),它記錄匹配相關(guān)聯(lián)的條件的分組。也可使用這些的組合??商峁└鼜?fù)雜的行動(dòng),如驗(yàn)證。圖7所示的行動(dòng)的許多示例的描述包括在展示C中。如圖8中所見(jiàn)到的,依照本發(fā)明的一個(gè)實(shí)施例,防火墻政策引擎平臺(tái)310包括四個(gè)主要的類(lèi)防火墻類(lèi)對(duì)象802、設(shè)置編輯器類(lèi)對(duì)象804、規(guī)則編輯器類(lèi)對(duì)象806以及規(guī)則探查器類(lèi)對(duì)象808。防火墻類(lèi)對(duì)象802是用于與防火墻服務(wù)302交互的主類(lèi)。防火墻類(lèi)對(duì)象802允許單獨(dú)的模式引用防火墻服務(wù)302。即,該類(lèi)唯一地僅描述了單個(gè)實(shí)例,即計(jì)算機(jī)102上可用的防火墻服務(wù)。防火墻類(lèi)對(duì)象802的示例屬性和方法的列表作為防火墻政策引擎平臺(tái)310的一部分在圖9中示出。對(duì)于防火墻類(lèi)對(duì)象802,依照本發(fā)明的一個(gè)實(shí)施例,防火墻類(lèi)對(duì)象802包括屬性FirewallMode(防火墻模式)和LogSettings(記錄設(shè)置)。FirewallMode是防火墻服務(wù)302的當(dāng)前過(guò)濾模式。其值可以是,例如,BlockAllTraffic(阻斷所有的通信)、PermitAllTraffic(準(zhǔn)許所有的通信)或Filtering(過(guò)濾),它表示防火墻服務(wù)302正在運(yùn)行并實(shí)施已定義的設(shè)置。LogSettings可表示指定記錄設(shè)置的全局設(shè)置,包括要記錄的內(nèi)容、記錄限制和溢出行為。這些屬性的每一個(gè)都是可編輯的,例如可通過(guò)防火墻用戶接口304或遠(yuǎn)程管理工具306來(lái)編輯。其它屬性可作為防火墻類(lèi)對(duì)象802的一部分包括在內(nèi)。防火墻類(lèi)對(duì)象802也可包括例示或創(chuàng)建防火墻政策引擎平臺(tái)310的其它三個(gè)類(lèi)的新實(shí)例的方法或操作;即,設(shè)置編輯器類(lèi)對(duì)象804(AcquireSettingEditor)、規(guī)則編輯器類(lèi)對(duì)象806(AcquireRuleEditor)和規(guī)則探查器類(lèi)對(duì)象808(AcquireRuleExplorer)。防火墻類(lèi)對(duì)象的配置的一個(gè)示例包括在展示E中。方法AcquireSettingEditor、AcquireRuleEditor和AcquireRuleExplorer的每一個(gè)使用政策提供者作為參數(shù)。依照本發(fā)明的一個(gè)實(shí)施例,防火墻類(lèi)對(duì)象802在多個(gè)政策提供者的政策之間存在沖突時(shí)擔(dān)當(dāng)仲裁者。一般而言,政策提供者是用于防火墻服務(wù)302的防火墻政策的來(lái)源,較佳地為可被安全地標(biāo)識(shí)的來(lái)源。政策提供者與特定的優(yōu)先級(jí)類(lèi)或可在其上添加來(lái)自該提供者的所有規(guī)則的層相關(guān)聯(lián)。例如,政策提供者可依照其個(gè)別的優(yōu)先級(jí)來(lái)分級(jí)。遠(yuǎn)程網(wǎng)絡(luò)安全管理服務(wù)器,如管理用戶的計(jì)算機(jī)作為增值服務(wù)的用戶的因特網(wǎng)服務(wù)提供商(ISP)可獲得等級(jí)“1”,指示最高優(yōu)先級(jí),并可給予其在ManagedServiceProvider(已管理服務(wù)提供者)的防火墻類(lèi)對(duì)象802中的定義。LocalProvider(本地提供者)被給予優(yōu)先級(jí)“2”,表示計(jì)算機(jī)的本地用戶或管理員。DomainProvider(域提供者)是用戶所掛連的域的管理員,并接收優(yōu)先級(jí)“3”。應(yīng)用程序提供者可被給予優(yōu)先級(jí)“4”。由應(yīng)用程序提供者設(shè)置的優(yōu)先級(jí)的一個(gè)示例是具有需要所有對(duì)其服務(wù)器的通信都為安全的設(shè)置的金融服務(wù)應(yīng)用程序。設(shè)置編輯器類(lèi)804可包括若干屬性,包括ApplicationSettings(應(yīng)用程序設(shè)置)、DefaultApplicationSetting(默認(rèn)應(yīng)用程序設(shè)置)、DefaultOSServiceSetting(默認(rèn)OS服務(wù)設(shè)置)、TrustedZone(可信區(qū))、SecureZone(安全區(qū))和IsICMPAllowed(是否允許ICMP)。ApplicationSettings屬性表示儲(chǔ)存在系統(tǒng)中的應(yīng)用程序防火墻規(guī)則。DefaultApplicationSetting是當(dāng)未指定應(yīng)用程序的防火墻設(shè)置時(shí)所應(yīng)用的默認(rèn)防火墻設(shè)置。DefaultOSServiceSetting是當(dāng)未指定操作系統(tǒng)服務(wù)的防火墻設(shè)置時(shí)所應(yīng)用的默認(rèn)防火墻設(shè)置。TrustedZone屬性是當(dāng)應(yīng)用程序設(shè)置未指定其自己的可信IP地址時(shí)所使用的可信因特網(wǎng)協(xié)議(“IP”)地址列表。SecureZone屬性是當(dāng)應(yīng)用程序設(shè)置未指定其自己的可信已驗(yàn)證的遠(yuǎn)程身份時(shí)所使用的默認(rèn)可信已驗(yàn)證的遠(yuǎn)程身份列表。最后,IsICMPAllowed屬性指示是否允許因特網(wǎng)控制消息協(xié)議(“ICMP”);如,TCP/IP棧將響應(yīng)查驗(yàn)并生成ICMP錯(cuò)誤。否則,阻斷ICMP消息。所有這些屬性可以是可編輯的,例如,可通過(guò)防火墻用戶接口304或遠(yuǎn)程管理工具306來(lái)編輯,除ApplicationSettings屬性之外。圖9所示的設(shè)置編輯器804的示例包括兩個(gè)方法SetDefaultSecurityLevel(設(shè)置默認(rèn)安全級(jí)別)和GetSecurityLevel(獲取安全級(jí)別)。SetDefaultSecurityLevel的參數(shù)是用戶(User)和安全級(jí)別(SecurityLevel)。GetSecurityLevel的參數(shù)是用戶(User)。SetDefaultSecurityLevel允許用戶或管理員對(duì)由參數(shù)指定的用戶設(shè)置默認(rèn)安全級(jí)別。GetSecurityLevel允許用戶或管理員獲取對(duì)參數(shù)所指定的用戶的默認(rèn)安全級(jí)別。設(shè)置編輯器類(lèi)對(duì)象804向防火墻和政策管理軟件開(kāi)發(fā)者提供了以簡(jiǎn)單且以應(yīng)用程序和用戶為中性的形式管理防火墻政策的編程接口。它所操作的主要對(duì)象是ApplicationSetting(應(yīng)用程序設(shè)置)902和SecurityLevel(安全級(jí)別)904。ApplicationSetting902將安全級(jí)別與應(yīng)用程序和用戶相關(guān)聯(lián),并包括三個(gè)屬性ApplicationID(應(yīng)用程序ID)、User(用戶)和SecurityLevel(安全級(jí)別)。ApplicationID和User表示該ApplicationSetting902所涉及的應(yīng)用程序,以及對(duì)其指定ApplicationSetting的用戶。它們一起形成了ApplicationSetting902的唯一密鑰。SecurityLevel是讀寫(xiě)屬性,它可由用戶或管理員如通過(guò)防火墻用戶接口304或遠(yuǎn)程管理工具306編輯。該屬性表示當(dāng)特定的用戶(User)使用特定的應(yīng)用程序(ApplicationID)時(shí)的安全級(jí)別。SecurityLevel可由SecurityLevel對(duì)象904使用ApplicationSetting902的GetRules(獲取規(guī)則)方法來(lái)提供。GetRules對(duì)象使用參數(shù)Application(應(yīng)用程序)、User(用戶)和Contacts(聯(lián)系人)來(lái)獲取實(shí)施設(shè)置“當(dāng)該用戶使用該應(yīng)用程序時(shí)將該安全級(jí)別用于這些遠(yuǎn)程聯(lián)系人”的應(yīng)用程序規(guī)則列表。依照本發(fā)明的一個(gè)實(shí)施例,SecurityLevel對(duì)象904包括一組模板,它包括用于應(yīng)用程序、用戶和聯(lián)系人的特定安全級(jí)別的應(yīng)用程序規(guī)則列表。關(guān)于SecurityLevel對(duì)象904和ApplicationSetting的更多信息在展示D中提供。RuleEditor(規(guī)則編輯器)類(lèi)806是由高級(jí)政策提供者用于執(zhí)行諸如添加、移除或更新政策等政策相關(guān)操作的應(yīng)用編程接口。如上所述,在單個(gè)主機(jī)上可存在一個(gè)以上政策提供者。RuleEditor類(lèi)對(duì)象806提供允許管理員和有能力的用戶為防火墻服務(wù)302的政策規(guī)則定義專(zhuān)用參數(shù)。圖9中的RuleEditor類(lèi)對(duì)象806的示例包括兩個(gè)屬性PriorityClass(優(yōu)先級(jí)類(lèi)別)和Provider(提供者)。PriorityClass是如上所述向特定的提供者給予的優(yōu)先級(jí)的類(lèi)別。Provider是請(qǐng)求行動(dòng)的提供者。圖9的RuleEditor類(lèi)對(duì)象806的示例包括五個(gè)方法AddRule(添加規(guī)則)、RemoveRule(移除規(guī)則)、UpdateRule(更新規(guī)則)、GetRules(獲取規(guī)則)和RemoveAll(移除所有)。AddRule用于向防火墻政策引擎平臺(tái)310下推(pushdown)一組政策規(guī)則。如果PolicyRule無(wú)效(如,PolicyAction不與PolicyCondition相匹配)、如果試圖添加政策的提供者不具有執(zhí)行這一行動(dòng)的特權(quán)(例如,基于上述分級(jí))、或者如果事務(wù)被中止,則添加PolicyRule(政策規(guī)則)的請(qǐng)求會(huì)失敗。如果添加PolicyRule的請(qǐng)求不失敗,則防火墻政策引擎平臺(tái)310進(jìn)而向防火墻平臺(tái)內(nèi)核組件314插入新的政策。RemoveRule用于移除指定的政策,并包括要移除的特定政策的參數(shù),并且可由于不正確的特權(quán)或事務(wù)失敗而失敗。UpdateRule用于改變先前所添加的指定政策,并使用要改變的政策作為參數(shù)。UpdateRule服從與AddRule一樣的例外。RemoveAll移除該特定政策提供者創(chuàng)建的所有政策,并且可由于不適當(dāng)?shù)奶貦?quán)而失敗。它可以是原子操作,即,用一個(gè)事務(wù)來(lái)完成。規(guī)則探查器類(lèi)對(duì)象808準(zhǔn)許用戶或管理員遵照特權(quán)規(guī)定察看當(dāng)前在防火墻平臺(tái)中的所有政策。依照本發(fā)明的一個(gè)實(shí)施例,察看是只讀的。在圖9的規(guī)則探查器類(lèi)對(duì)象808的示例中,存在一個(gè)事件RuleChangedEvent(規(guī)則改變事件)。RuleChangedEvent用于規(guī)則探查器類(lèi)對(duì)象808在它所察看的政策被改變時(shí)接收通知。在圖9的規(guī)則探查器類(lèi)對(duì)象808的示例中,存在一個(gè)屬性-EventFilter(事件過(guò)濾器)。EventFilter準(zhǔn)許用戶或管理員定義要察看的政策的子集。存在單個(gè)方法GetRules(獲取規(guī)則),它獲取當(dāng)前依照EventFilter在防火墻平臺(tái)中實(shí)施的規(guī)則。該操作可在單個(gè)事務(wù)中完成。圖10是一般表示依照本發(fā)明的一個(gè)實(shí)施例使用RuleEditor對(duì)象806創(chuàng)建、編輯或刪除政策規(guī)則的步驟的流程圖。這些步驟可例如通過(guò)與防火墻用戶接口304或遠(yuǎn)程管理工具306相關(guān)聯(lián)的軟件來(lái)執(zhí)行。在步驟1000開(kāi)始,創(chuàng)建防火墻類(lèi)802。用戶然后在步驟1002使用防火墻類(lèi)802中相應(yīng)的方法請(qǐng)求獲取RuleEditor類(lèi)。在步驟1004,確定該用戶是否正在請(qǐng)求刪除一個(gè)或多個(gè)政策。如果是,則步驟1004分支到步驟1006,用戶提供特定的政策作為參數(shù)。在步驟1008,例如通過(guò)將用戶的提供者等級(jí)(如上所述)與刪除特定政策所需的最小等級(jí)相比較,確定該用戶是否具有權(quán)限來(lái)刪除政策。如果用戶不具有權(quán)限,則1008分支到步驟1010,事務(wù)失敗。如果用戶的確具有權(quán)限,則步驟1008分支到步驟1012,刪除政策。如果用戶希望編輯或添加政策,則步驟1004分支到步驟1014。用于編輯政策的方法與添加略有不同,但是其相似性足以使兩者在此一起描述。圖10所示的從1014開(kāi)始步驟針對(duì)添加政策,并且在下文進(jìn)一步描述其與編輯顯著的差異。例如,如果用戶正在編輯政策,則在步驟1014之前,用戶提供政策作為參數(shù),使其能夠得以編輯。在步驟1014,用戶從現(xiàn)有的政策類(lèi),如圖5所示的規(guī)則502-510導(dǎo)出或選擇政策類(lèi)。在步驟1016,用戶從可用政策條件中選擇條件,或?qū)С鲂抡邨l件。在步驟1018,用戶對(duì)要建立的政策規(guī)則選擇行動(dòng)或?qū)С鲂抡咝袆?dòng)。如果用戶是在編輯現(xiàn)有政策而非創(chuàng)建政策,則步驟1014-1018可涉及選擇一個(gè)不同的政策類(lèi)、條件和/或行動(dòng)而非從零開(kāi)始。在步驟1020,確定特定的用戶是否具有權(quán)限來(lái)提交新政策。這一確定可類(lèi)似于步驟1008中作出的確定來(lái)作出。如果不是,則步驟1020分支到步驟1022,事務(wù)失敗。如果用戶的確具有權(quán)限,則步驟1020分支到步驟1024,確定是否允許特定的政策。例如,可依照由政策類(lèi)設(shè)置的規(guī)則確定特定的條件是否與行動(dòng)相匹配。如果不是,則步驟1024分支到步驟1026,事務(wù)失敗。如果是,則步驟1024分支到步驟1028,由防火墻政策引擎平臺(tái)310將政策插入到防火墻平臺(tái)內(nèi)核組件314中。圖10所示的方法準(zhǔn)許高級(jí)用戶為計(jì)算機(jī)102建立防火墻政策。高級(jí)用戶可依照計(jì)算機(jī)102的過(guò)濾需求來(lái)設(shè)置防火墻政策。圖11是一般表示使用設(shè)置編輯器對(duì)象804創(chuàng)建政策規(guī)則的步驟的流程圖。在步驟1100開(kāi)始,創(chuàng)建防火墻類(lèi)802。在步驟1102,通過(guò)防火墻類(lèi)802中提供的方法獲取設(shè)置編輯器對(duì)象。由于應(yīng)用程序和用戶都已知,在步驟1104,應(yīng)用程序設(shè)置902為已知的應(yīng)用程序和已知的用戶提供可用安全級(jí)別,并且向用戶提供一個(gè)或多個(gè)安全級(jí)別。用戶在步驟1106選擇安全級(jí)別之一。如果用戶未被授權(quán)來(lái)設(shè)置這一安全級(jí)別,則步驟1108分支到步驟1110,事務(wù)失敗。如果用戶的確具有權(quán)限,則步驟1108分支到步驟1112,防火墻政策引擎平臺(tái)310向防火墻平臺(tái)內(nèi)核組件314插入該政策。如所見(jiàn)的,圖11的方法為并非高級(jí)的用戶提供了一種相對(duì)簡(jiǎn)單的方法來(lái)對(duì)設(shè)置計(jì)算機(jī)102的防火墻政策。該政策可在沒(méi)有端口、分組或其它項(xiàng)目的知識(shí)的情況下設(shè)置,通常必須輸入這些知識(shí)來(lái)配置防火墻。圖12是一般表示依照本發(fā)明的一個(gè)實(shí)施例使用規(guī)則探查器對(duì)象808察看政策規(guī)則的步驟的流程圖。在步驟1200開(kāi)始,創(chuàng)建防火墻類(lèi)802。在步驟1202,使用防火墻類(lèi)802中關(guān)聯(lián)的方法獲取RuleExplorer對(duì)象808。在步驟1204,提供用戶想要看見(jiàn)的規(guī)則的適當(dāng)參數(shù)(如,特定提供商創(chuàng)建的所有規(guī)則)。在步驟1206,提供規(guī)則用于由用戶如通過(guò)防火墻用戶接口304來(lái)察看。盡管未在圖12中示出,通過(guò)RuleExplorer對(duì)象808察看規(guī)則可能需要驗(yàn)證,并且由此,它可被限于特定級(jí)別和更高級(jí)別提供商。另外,如果對(duì)規(guī)則作出改變,可通過(guò)RuleChangeEvent屬性向用戶發(fā)送這些改變的通知。本發(fā)明所引用的所有參考,包括出版物、專(zhuān)利申請(qǐng)和專(zhuān)利通過(guò)引用結(jié)合于此,其意義與在每一申請(qǐng)被個(gè)別并具體地指示為通過(guò)引用個(gè)別結(jié)合并以其整體闡明的意義相同。描述本發(fā)明的上下文中術(shù)語(yǔ)“一”、“一個(gè)”和“該”以及類(lèi)似的參照詞的使用(尤其是在所附權(quán)利要求書(shū)中)被解釋為覆蓋了單個(gè)和多個(gè)形式,除非在此另外指明或與上下文明確地抵觸。術(shù)語(yǔ)“由……組成”、“具有”、“包括”和“包含”被解釋為開(kāi)放式術(shù)語(yǔ)(即,意味著“包括,但不限于”),除非另外指明。本發(fā)明的數(shù)值范圍的列舉僅旨在擔(dān)當(dāng)個(gè)別地涉及落入該范圍內(nèi)的每一單獨(dú)數(shù)值的簡(jiǎn)寫(xiě)方法,除非在本發(fā)明中另外指明,并且每一單獨(dú)的數(shù)值被結(jié)合進(jìn)本說(shuō)明書(shū)中,如同它是在本發(fā)明中個(gè)別地引用一樣。本發(fā)明描述的所有方法可以任一合適的順序執(zhí)行,除非另外指明或與上下文明顯地抵觸。本發(fā)明所提供的任一或所有示例,或示例性語(yǔ)言(如,“諸如”)的使用旨在僅更好地闡明本發(fā)明的實(shí)施例,并非在本發(fā)明的范圍上施加限制,除非另外聲明。本說(shuō)明書(shū)中沒(méi)有什么言詞應(yīng)當(dāng)被解釋為指示任一未要求保護(hù)的元素對(duì)本發(fā)明的實(shí)踐是必需的。此處描述了本發(fā)明的較佳實(shí)施例,包括對(duì)發(fā)明人已知的用于實(shí)現(xiàn)本發(fā)明的最佳模式。在閱讀了以上描述之后,這些較佳實(shí)施例的變化對(duì)本領(lǐng)域的普通技術(shù)人員是顯而易見(jiàn)的。發(fā)明人期望技術(shù)人員在適當(dāng)時(shí)采用這些變化,并且發(fā)明人預(yù)期本發(fā)明除此處所具體描述的之外的場(chǎng)合實(shí)踐。因此,本發(fā)明包括適用法律所準(zhǔn)許的所附權(quán)利要求書(shū)中敘述的主題的所有修改和等效技術(shù)方案。此外,所有可能的變化中的上述元素的任一組合也由本發(fā)明包含在內(nèi),除非另外指明或與上下文明確地抵觸。展示ASystem.Firewall.Policy.ApplicationRulenamespaceSystem.Firewall.Policy{publicclassApplicationRulePolicyRule{publicApplicationRule();publicApplicationRule(ApplicationConditoncondition,ApplicationActionact);publicApplicationConditionApplicationCondition{get{}set{}}publicApplicationActionAction{get{}set{}}}}ApplicationRule是由應(yīng)用程序?qū)訉?shí)施所實(shí)施的規(guī)則,盡管它也可動(dòng)態(tài)地在其它層上例示,如傳輸層上的IPSec規(guī)則,以保護(hù)某一應(yīng)用程序或用戶的所有通信。System.Firewall.Policy.TransportRulenamespaceSystem.Firewall.Policy{ publicclassTransportRulePolicyRule { publicTransportRule(); publicTransportRule(TransportConditoncondition,F(xiàn)ilterActionact); publicTransportConditionTransportCondition{get{}set{}} publicFilterActionAction{get{}set{}} }}TransportRule將主要在標(biāo)準(zhǔn)5元組上過(guò)濾的傳統(tǒng)防火墻規(guī)則模型化。System.Firewall.Policy.IKERulenamespaceSystem.Firewall.Policy{ publicclassIKERulePolicyRule { publicIKERule(); publicIKERule(IPAddressValuesrc,IPAddressValuedst,IKEActionact); publicIPAddressValueSourceAddress{get{}set{}} publicIPAddressValueDestinationAddress{get{}set{}} publicIKEActionAction{get{}set{}}; }}有三種不同的規(guī)則用于指定與IPSec相關(guān)的政策IPSecRule、KeyingModuleRule和IKERule。IPSecRule在傳輸層上添加,其中匹配的通信觸發(fā)IPSec呼出。IPSec呼出設(shè)置分組中的安全上下文,使得IPSec模塊可被調(diào)用來(lái)搜索現(xiàn)有的SA以保護(hù)通信。如果沒(méi)找到,則匹配KeyingModuleRule以找出正確的密鑰模塊來(lái)執(zhí)行密鑰協(xié)商。根據(jù)所選擇的密鑰模塊,將匹配對(duì)應(yīng)的IKERule或Mamierule,以找出用于執(zhí)行密鑰交換的適當(dāng)?shù)呐渲迷O(shè)置。然后將再次匹配IPSecRule以設(shè)立用于實(shí)際保護(hù)通信的正確的IPSecSA,如AH或ESP。IKERule指定了實(shí)現(xiàn)IKE密鑰協(xié)商協(xié)議的參數(shù)。IKERule只能采用本地地址和遠(yuǎn)程地址作為其條件。IKERule的行動(dòng)是IKEAction。System.Firewall.Policy.IPSecRulenamespaceSyetem.Firewall.Policy{ publicclassIPSecRulePolicyRule { publicIPSecRule(); publicIPSecRule(IPAddressValuesrcAddr,IPAddressValuedstAddr, ByteValueprotocol,UInt16ValuesrcPort,UInt16ValuedstPort IPSecActionaction);<!--SIPO<DPn="16">--><dpn="d16"/> publicIPAddressValueSourceAddress{get{}set{}} publicIPAddressValueDestinationAddress{get{}set{}} publicByteValueProtocol{get{}set{}} publicUInt16ValueSourcePort{get{}set{}} publicUInt16ValueDestinationPort{get{}set{}} publicIPSecActionAction{get{}set{}}; }}概念上,IPSecRule扮演兩個(gè)不同的角色,一個(gè)在匹配關(guān)聯(lián)的條件時(shí)觸發(fā)IPSec,另一個(gè)指示保護(hù)匹配通信的配置參數(shù)。因此,它既指定了需要保護(hù)哪些分組,也指定了如何保護(hù)它們。不同的5元組可具有不同的IPSEc參數(shù)。盡管在傳輸層上,防火墻平臺(tái)可匹配比標(biāo)準(zhǔn)5元組更多的字段,如TCP標(biāo)志,然而為實(shí)現(xiàn)IPSec目的,5元組已足夠。因此,IPSecRule僅列出標(biāo)準(zhǔn)5元組,即源地址、目標(biāo)地址、協(xié)議、源端口和目標(biāo)端口,作為其條件字段。如果有需要匹配同一5元組的通信基于其它字段被不同地保護(hù)的實(shí)際情況,則可添加那些字段。System.Firewall.Policy.KeyingModuleRulenamespaceSystem.Firewall.Policy{ publicclassKeyingModuleRulePolicyRule { publicKeyingModuleRule(); publicKeyingModuleRule(IPAddressValuesrcAddr,IPAddressValue dstAddr,ByteValueprotocol,UInt16ValuesrcPort,UInt16Value dstPort,KeyingModuleActionaction); publicIPAddressValueSourceAdress{get{}set{}} publicIPAddressValueDestinationAddress{get{}set{}} publicByteValueProtocol{get{}set{}} publicUInt16ValueSourcePort{get{}set{}} publicUInt16ValueDestinationPort{get{}set{}} publicKeyingModuleActionAction{get{}set{}}; }}KeyingModuleRule在沒(méi)有到遠(yuǎn)程對(duì)等體的安全通道(關(guān)聯(lián))時(shí)選擇那個(gè)密鑰協(xié)商模塊來(lái)使用,遠(yuǎn)程對(duì)等體可以是主機(jī)或用戶。KeyingModuleRule也采取標(biāo)準(zhǔn)5元組作為其條件。在有一個(gè)以上模塊可用的情況下,例如,除傳統(tǒng)的IKE之外還有用于用戶驗(yàn)證的Mamie,則KeyingModuleAction以并行或串行嘗試列出它們直到它們的其中之一成功或都失敗。展示BSystem.Firewall.Policy.PolicyConditionnamespaceSystem.Firewall.Policy{ publicabstractclassPolicyConditionPolicyObject { publicabstractboolEquals(PolicyConditioncondition); publicabstractboolIntersects(PolicyConditioncondition); publicabstractboolContains(PolicyConditionconditon); }}方法名字Equals返回類(lèi)型Bool描述如果匹配該P(yáng)olicyCondition對(duì)象的所有分組也匹配傳遞的自變量condition并且反之亦然,則返回真。否則返回假。參數(shù)PolicyConditioncond方法名字Intersects返回類(lèi)型Bool描述如果存在匹配該P(yáng)olicyCondition對(duì)象也匹配傳遞的自變量condition的分組,則返回真。如果沒(méi)有這樣的分組,則返回假。參數(shù)PolicyCondition方法名字Contains返回類(lèi)型Bool描述如果匹配傳遞自變量condition的所有分組也匹配該P(yáng)olicyCondition對(duì)象,則返回真。否則返回假。參數(shù)PolicyConditionSystem.Firewall.Policy.EthernetConditionnamespaceSystem.Firewall.Policy{ publicabstractclassLinklayerConditionPolicyCondition { publicenumLinkLayer { InboundTop, OutboundTop, InboundBottom, OutboundBottom } //屬性 publicLinkLayerLayer{get{}set{}} } publicclassEthernetConditionPolicyCondition { publicMACAddressValueSourceMACAddress{get{}set{}} publicMACAddressValueDestinationMACAddress{get{}set{}} publicEthernetCondition(); pubiicEhternetCondition(LinkLayerlayer,MACAddressValuesrc,dst); publicoverrideboolEquals(PolicyConditionval); publicoverrideboolIntersects(PolicyConditionval); publicoverrideboolContains(PolicyConditionval); }}屬性名字Layer描述指定該鏈路層規(guī)則將應(yīng)用到何處·InboundTop該層在每一接收的分組橫穿過(guò)所有其它的NDIS輕量過(guò)濾器填隙片之后被調(diào)用。在接收路徑上,這是在其數(shù)據(jù)鏈路分組被傳遞到網(wǎng)絡(luò)層用于處理之前對(duì)其進(jìn)行過(guò)濾的最后一次機(jī)會(huì)?!utboundTop該層在每一發(fā)送分組穿過(guò)任一其它NDIS輕量過(guò)濾器填隙片之前被調(diào)用。在發(fā)送路徑上,這是在數(shù)據(jù)鏈路分組由其它NDIS輕過(guò)濾器處理之前對(duì)其進(jìn)行過(guò)濾的第一次機(jī)會(huì)?!nboundBottom該層在每一接收分組穿過(guò)任一其它NDIS輕過(guò)濾器填隙片之前被調(diào)用。該層是過(guò)濾接收分組的第一次機(jī)會(huì)?!utboundBottom該層在每一發(fā)送分組穿過(guò)所有其它的NDIS輕過(guò)濾器填隙片之后被調(diào)用。該層是過(guò)濾發(fā)送分組的最后一次機(jī)會(huì)。訪問(wèn)權(quán)限讀/寫(xiě)屬性名字SourceMACAddress描述該值用于匹配以太網(wǎng)頭部中的源MAC地址字段。訪問(wèn)權(quán)限讀/寫(xiě)屬性名字DestinationMACAddress描述該值用于匹配以太網(wǎng)頭部中的目標(biāo)MAC地址字段。訪問(wèn)權(quán)限讀/寫(xiě)System.Firewall.Policy.IPConditionnamespaceSystem.Firewall.Policy{ publicclassIPConditionPolicyCondition { publicenumIPLayer InboundIPPacket, OutboundIPPacket, InboundIPFragment, OutboundIPFragment, IPForward };<!--SIPO<DPn="21">--><dpn="d21"/> publicIPLayerLayer{get{}set{}} publicIPAddressValueSourceAddress{get{}set{}} publicIPAddressValueDestinationAddress{get{}set{}} publicByteValueProtocol{get{}eet{}} publicUInt16ValuePacketLength{get{}set{}} publicNetworkInterfaceInterface{get{}set{}} //可以有更多的條件由防火墻平臺(tái)來(lái)展現(xiàn) publicIPCondition(); publicIPCondition(IPLayerlayer,IPAddressValuesrc,dst,ByteValue prot); publicoverrideboolEquals(PolicyConditioncondition); publicoverrideboolIntersects(PolicyConditioncondition); publicoverrideboolContains(PolicyConditioncondition); }};IPAddress類(lèi)取自System.Net名字空間。它支持v4和v6IPAddress。然而,對(duì)于一個(gè)特定的條件,在一個(gè)地址家族的上下文中必須解釋所有條件字段。換言之,如果源地址是v4地址,但是目標(biāo)地址是v6地址,則會(huì)引發(fā)運(yùn)行時(shí)異常。屬性名字Layer描述應(yīng)用該條件的具體IP層??赡艿腎P層如下·InboundIPPacket該層正好在IP頭部被分析之后且在IP分組上發(fā)生任一其它頭部處理之前被調(diào)用。IPSec描述和重新組合在這一點(diǎn)上不會(huì)出現(xiàn)。·OutboundIPPacket該層正好在發(fā)送分組被評(píng)估來(lái)分段之前被調(diào)用。在調(diào)用該層時(shí),所有IP頭部處理都已完成,并且所有擴(kuò)展頭部在適當(dāng)?shù)奈恢?。IPSec驗(yàn)證和加密在這一時(shí)刻已發(fā)生。·InboundIPFragment該層對(duì)每一接收到的片段調(diào)用。所接收的未分段的分組將不對(duì)該層呼出?!utboundIPFragment該層對(duì)每一發(fā)送和轉(zhuǎn)發(fā)分段調(diào)用。如果發(fā)送IP分組未分段,則它不對(duì)該層呼出?!PForward該層對(duì)每一轉(zhuǎn)發(fā)的分組調(diào)用。訪問(wèn)權(quán)限讀/寫(xiě)屬性名字SourceAddress描述該值用于匹配IP頭部中的源地址字段。訪問(wèn)權(quán)限讀/寫(xiě)屬性名字DestinationAddress描述該值用于匹配IP頭部中的目標(biāo)地址字段。訪問(wèn)權(quán)限讀/寫(xiě)屬性名字Protocol描述該值用于匹配IP頭部中的協(xié)議字段。訪問(wèn)權(quán)限讀/寫(xiě)屬性名字PacketLength描述該值用于匹配IP頭部中的分組長(zhǎng)度字段。訪問(wèn)權(quán)限讀/寫(xiě)屬性名字NetworkInterface描述指定在其上匹配該條件的網(wǎng)絡(luò)接口。如果層屬性被設(shè)為IPForward,則當(dāng)規(guī)則方向被設(shè)為Inbound時(shí),它僅匹配轉(zhuǎn)發(fā)分組的接收接口,且當(dāng)規(guī)則方向被設(shè)為Outbound時(shí),它僅匹配輸出接口。訪問(wèn)權(quán)限讀/寫(xiě)System.Firewall.Policy.TransportConditionnamespaceSystem.Firewall.Policy{ publicabstractclassTransportConditionPolicyCondition { publicenumTransportLayer Inbound, Outbound }; //以下是通過(guò)上下文在傳輸層上可用的條件 PublicTransportLayerTransportLayer{get{}set{}} publicIPAddressValueSourceAddress{get{}set{}} publicIPAddressValueDestinationAddress{get{}set{}} publicByteValueProtocol{get{}set{}} //可以有更多的條件由防火墻平臺(tái)來(lái)展現(xiàn) protectedTransportCondition(); protectedTransportCondition(TransportLayerlayer,IPAddressValuesrcAddr,IPAddressValuedstAddr); } publicclassUDPConditionTransportCondition { publicUInt16ValueSourcePort{get{}set{}} publicUInt16ValueDestinationPort{get{}set{}} publicUDPCondition(); publicUDPCondition(TransportLayerlayer,IPAddressValue srcAddr,IPAddressValuedstAddr,UInt16ValuesrcPort, UInt16ValuedstPort); publicoverrideboolEquals(PolicyConditionval); publicoverrideboolIntersects(PolicyConditionvalval); publicoverrideboolContains(PolicyConditionval); } publicclassTCPConditionTransportCondition<!--SIPO<DPn="24">--><dpn="d24"/> { [flags] publicenumTCPFlags { FIN=1, SYN=2, RST=4, PSH=8; ACK=16, URG=32 } publicUInt16ValueSourcePort{get{}set{}} publicUInt16ValueDestinationPort{get{}set{}} publicTCPFlagsFlags{get{}set{}} //可以有更多的條件由防火墻平臺(tái)來(lái)展現(xiàn) publicTCPCondition(); publicTCPCondition(TransportLayerlayer,IPAddressValue srcAddr,IPAddressValuedstAddr,UInt16ValuesrcPort, UInt16ValuedstPort);publicoverrideboolEquals(PolicyConditionval);publicoverrideboolIntersects(PolicyCoinditionval);publicoverriboolContains(PolicyConditionval);}publicclassICMPConditionTransportCondition{ publicByteValueICMPType{get{}set{}} publicByteValueICMPCode{get{}set{}} //可以有更多的條件由防火墻平臺(tái)來(lái)展現(xiàn) publicICMPCondition(); publicICMPCondition(TransportLayerlayer,IPAddressValuesrcAddr,IPAddressValuedstAddr,ByteValueicmpType,icmpCode);publicoverrideboolEquals(PolicyConditionval);publicoverrideboolIntersects(PolicyConditionval);publicoverrideboolContains(PolicyConditionval);}<!--SIPO<DPn="25">--><dpn="d25"/>};ICMPv6定義了不同于ICMPv4的ICMP類(lèi)型和代碼。源和目標(biāo)地址的地址家族確定ICMPConditon是被解釋為ICMPv4還是v6。屬性名字SourcePort描述該值用于匹配TCP/UDP頭部中的源端口字段。訪問(wèn)權(quán)限讀/寫(xiě)屬性名字DestinationPort描述該值用于匹配TCP/UDP頭部中的目標(biāo)端口字段。訪問(wèn)權(quán)限讀/寫(xiě)屬性名字Flags描述該值用于匹配TCP標(biāo)志字段中的對(duì)應(yīng)位FIN、SYN、RST、PSH、ACK、URG訪問(wèn)權(quán)限讀/寫(xiě)屬性名字ICMPType描述該值用于匹配ICMP頭部中的類(lèi)型字段。訪問(wèn)權(quán)限讀/寫(xiě)屬性名字ICMPCode描述該值用于匹配ICMP頭部中的代碼字段。訪問(wèn)權(quán)限讀/寫(xiě)System.Firewall.Policy.IPSecAuthorizationConditionnamespaceSystem.Firewall.Policy{ publicclassIPSecAuthorizationConditionPolicyCondition { publicIPSecAuthorizationCondition(RemoteIdentityRemoteID); publicRemoteIdentityRemoteID{get{}} publicIPAddressValueLocalAddress{get{}set{}} publicUInt16ValueLocalPort{get{}set{}} publicUInt16ValueProtocol{get{}set{}} publicIPAddressValueRemoteAddress{get{}set{}} publicUInt16ValueRemotePort{get{}set{}} }}IPSecAuthorizationCondition匹配進(jìn)入和輸出分組IPSec上下文。檢查假定在IPSec驗(yàn)證完成后即發(fā)生。如果關(guān)聯(lián)的行動(dòng)是Permit,則建立IPSecSA并保護(hù)通信。如果要采取的行動(dòng)是Deny,則不創(chuàng)建SA,并且IPSec主模式協(xié)商失敗。System.Firewall.Policy.ApplicationConditionnamespaceSystem.Firewall.Policy{ [flags] publicenumNetworkAccessFlag { Client=1, Server=2, ClientAndServer=3, Multicast=4 } publicabstractclassApplicationConditionPolicyCondition { publicApplicationIDValueApplication{get{}set{}} publicIPrincipalValueLocalUser{get{}set{}} //可以有更多的條件由防火墻平臺(tái)來(lái)展現(xiàn) publicApplicationCondition(); publicApplicationCondition(ApplicationIDValueapp,IPrincipalValueluser); }<!--SIPO<DPn="27">--><dpn="d27"/>publicclassAuthorizationConditionApplicationCondition{ //以下條件與通過(guò)諸如連接或傾聽(tīng)等winsock調(diào)用向下傳遞的值 publicNetworkAccessFlag{get{}set{}} publicIPAddressValueLocalAddress{get{}set{}} publicIPAddressValueRemoteAddress{get{}set{}} publicByteValueProtocol{get{}set{}} publicUInt16ValueLocalPort{get{}set{}} publicUInt16ValueRemotePort{get{}set{}} publicRemoteIdentityValueRemoteID{get{}set{}}}publicenumPromiscuousMode{ AllIP=1, AllMulticast=2, IGMPMulticast=3}publicenumResourceType{ UDPPort, TCPPort, Raw}publicclassResourceAssignmentConditionApplicaitonCondition{ publicIPAddressValueLocalAddress{get{}set{}} //如果協(xié)議不是TCP/UDP,則假定它是原始套接字情況 publicResourceTypeResourceType{get{}set{}} publicUInt16ValueResourceValue{get{}set{}} publicPromiscuousModePMode{get{}set{}}}}ApplicationCondition匹配由應(yīng)用層實(shí)施展現(xiàn)的條件。這是提供基于應(yīng)用程序和用戶的防火墻政策的主引擎。屬性名字Application描述這匹配由該應(yīng)用程序生成/接收的分組。訪問(wèn)權(quán)限讀/寫(xiě)屬性名字LocalUser描述這匹配由該用戶生成/接收的分組訪問(wèn)權(quán)限讀/寫(xiě)展示CSystem.Firewall.Policy.PolicyActionnamespaceSystem.Firewall.Policy{ publicabstractclassPolicyActionPolicyObject { //屬性 publicLoggingConfigLoggingConfig{get{}} //抽象方法 publicabstractboolIsCompatible(PolicyConditioncondition); }}PolicyAction是擔(dān)當(dāng)所有特定行動(dòng)類(lèi)的根類(lèi)的抽象類(lèi)。是否記錄分組通過(guò)指定非空記錄配置對(duì)象來(lái)隱含。方法方法名字IsCompatible返回類(lèi)型Bool描述如果該行動(dòng)可在與條件相同的層上發(fā)生,則返回真。否則返回假。參數(shù)Condition-將對(duì)照被檢查的行動(dòng)的條件。System.Firewall.Policy.FilterActionnamespaceSystem.Firewall.Policy{ publicclassFilterActionPolicyAction { publicenumFilterActionType{Permit,Deny,LogOnly} privateFilterAction(FilterActionTypeactionType); publicFilterAction(FilterActionTypeactionType,LoggingConfiglogging); publicstaticreadonlyFilterActionPermit=newFilterAction(Permit); publicststicreadonlyFilterActionDeny=newFilterAction(Deny); <!--SIPO<DPn="30">--><dpn="d30"/> publicoverrideboolIsCompatible(PolicyConditioncondition){returntrue;} }};FilterAction將以下行動(dòng)情形模型化·準(zhǔn)許允許匹配相關(guān)聯(lián)的PolicyCondition對(duì)象的分組。PolicyActionaction=FilterAction.Permit;·拒絕丟棄匹配相關(guān)聯(lián)的PolicyCondition對(duì)象的分組。PolicyActionaction=FilterAction.Deny;·準(zhǔn)許和記錄允許并記錄匹配相關(guān)聯(lián)的PolicyCondition對(duì)象的分組。newFilterAction(FilterAction.FilterActionType.Permit,logging);·拒絕和記錄丟棄并記錄匹配相關(guān)聯(lián)的PolicyCondition對(duì)象的分組。newFilterAction(FilterAction.FilterActionType.Deny,logging);·僅記錄記錄匹配相關(guān)聯(lián)的PolicyCondition對(duì)象的分組。newFilterAction(FilterAction.FilterActionType.LogOnly,logging);請(qǐng)注意,由于要求防火墻平臺(tái)中的所有層至少支持Permit、Deny和Log行動(dòng),F(xiàn)ilterAction可與任一PolicyCondition相關(guān)聯(lián)。System.Firewall.Poliey.InstantiationTemplatenamespaceSystem.Firewall.Policy{ publicabstractclassInstantiationTemplatePolicyRule { protectedInstantiationTemplate(boolisClientInstantiation); publicboolIsClientInstantiation{get{}}; } publicclassTransportTemplateInstantiationTemplate<!--SIPO<DPn="31">--><dpn="d31"/>{publicTransportTemplate{TransportLayerlayer,F(xiàn)itlerActionaction);publicTransportTemplate{TransportLayerlayer,F(xiàn)ilterActionaction, IPAddressValueremoteAddr,UInt16Valueprotocol,UInt16Value remotePort); publicTransportConditionCondition{get{}} publicFilterActionAction{get{}} } publicclassIPSecTemplateInstantiationTemplate { publicIPSecTemplate(IPSecActionaction); publicIPSecTemplate(IPSecActionaction,IPAddressValueremoteAddress, UInt16Valueprotocol,UInt16ValueremotePort); publicTransportConditionCondition{get{}} publicIPSecActionAction{get{}} } publicclassIPSecAuthorizationTemplateInstantiationTemplate { publicIPSecAuthorizationTemplate(RemoteIdentityValueremoteID, FilterActionaction); publicIPSecAuthorizationTemplate(RemoteIdentityValueremoteID,UInt16Value protocol,UInt16ValueremotePort,F(xiàn)ilterActionaction); publicRemoteIdentityValueRemoteID{get{}} publicFilterActionAction{get{}} }}例示模板可以是以下模板的任一個(gè)-TransportTemplate要在進(jìn)入或輸出的傳輸層上例示的模板。-IPSecTemplate要在IPSec層上例示的IPSec模板。-IPSecAuthorizationTemplate要在IPSec授權(quán)層例示的授權(quán)模板。上述類(lèi)的每一個(gè)都提供兩個(gè)構(gòu)造函數(shù)。第一個(gè)在當(dāng)關(guān)聯(lián)的應(yīng)用程序規(guī)則匹配來(lái)執(zhí)行客戶機(jī)例示時(shí)被例示。當(dāng)客戶機(jī)例示發(fā)生時(shí),全5元組可用于例示模板。在另一方面,如果它不是客戶機(jī)例示,則僅本地3元素組,即,本地地址、協(xié)議和本地端口可用。這是第二個(gè)構(gòu)造函數(shù)所使用之處。因此隱含地,第一個(gè)構(gòu)造函數(shù)將基礎(chǔ)InstantiationTemplate類(lèi)中的isClientInstantiation標(biāo)志設(shè)為真,而第二個(gè)構(gòu)造函數(shù)將其設(shè)為假。客戶機(jī)例示模板僅在全5元組可用時(shí)被例示,而服務(wù)器例示模板僅在當(dāng)本地3元組可用時(shí)被例示。System.Firewall.Policy.ApplicationActionnamespaceSystem.Firewall.Policy{ publicclassApplicationActionPolicyAction { publicenumApplicationActionType { Permit,Deny,Ask,LogOnly } privateApplicationAction(ApplicationActionTypeactionType); publicApplicationAction(ApplicationActionTypeactionType, LoggingConfiglogging,InstantiateTemplateCollectiontemplates); publicstaticreadonlyApplicationActionPermit=new ApplicationAction(Permit); publicstaticreadonlyApplicationActionDeny=newApplicationAction(Deny); publicstaticreadonlyApplicationActionAsk=newApplicationAction(Ask); publicInstantiateTemplateCollectionInstantiationTemplates{get{}set{}} publicIPSecProposalIPSecProposal{get{}set{}}; publicboolIsAutoInstantiationEnabled{get{}set{}} publicoverrideboolIsCompatible(PolicyConditioncondition); }};可能的ApplicationAction情形如下·準(zhǔn)許允許匹配關(guān)聯(lián)的ApplicationCondition對(duì)象的分組?!ぞ芙^丟棄匹配關(guān)聯(lián)的ApplicationCondition對(duì)象的分組?!ぴ儐?wèn)當(dāng)分組匹配關(guān)聯(lián)的ApplicationCondition對(duì)象時(shí),詢問(wèn)用戶的決策?!H記錄記錄匹配關(guān)聯(lián)的ApplicationCondition對(duì)象的分組。方法方法名字GetTemplates返回類(lèi)型InstantiateTemplateCollection描述當(dāng)該應(yīng)用程序行動(dòng)發(fā)生時(shí)返回要?jiǎng)?chuàng)建的例示模板的列表。參數(shù)Condition-對(duì)照其檢查行動(dòng)的條件。System.Firewall.Policy.CalloutActionnamespaceSystem.Firewall.Policy{ publicabstractclassCalloutActionPolicyAction { //構(gòu)造函數(shù) protectedCalloutAction(Calloutobj,CalloutContextcxt); //屬性 publicCalloutCalloutModule{get{}} publicCalloutContextContext{get{}set{}} publicoverrideboolIsCompatible(PolicyConditioncondition); }};CalloutAction將平臺(tái)提供的呼出擴(kuò)展模型化。當(dāng)匹配關(guān)聯(lián)的條件時(shí),呼出行動(dòng)指定平臺(tái)需要調(diào)用的呼出擴(kuò)展。它用作提供諸如入侵檢測(cè)、父母控制等額外安全功能的擴(kuò)展機(jī)制。屬性名字CalloutModule描述當(dāng)匹配關(guān)聯(lián)的條件時(shí)調(diào)用的呼出模塊。訪問(wèn)權(quán)限只讀屬性名字CalloutContext描述當(dāng)被調(diào)用時(shí)傳遞到呼出模塊的呼出專(zhuān)用上下文信息。訪問(wèn)權(quán)限讀/寫(xiě)System.Firewall.Policy.IPSecActionnamespaceSystem.Firewall.Policy{ publicclassIPSecProposalCalloutContext { publicIPSecProposal(); publicboolIsPFSRequired{get{}set{}} //指示當(dāng)密鑰協(xié)商失敗時(shí)是否可用普通文字(軟SA)發(fā)送的標(biāo)志 publicboolIsAuthenticationRequired{get{}set{}} publicboolIsNATTraversalEnabled{get{}set{}} publicHashAlgorithmAHTransform{get{}set{}} publicHashAlgorithmESPIntegrityTransform{get{}set{}} publicCiperAlgorithmESPCiperTransform{get{}set{}} publicuint32MaxLifetimeSeconds{get{}set{}} publicuint32MaxLifetimeKilobytes{get{}set{}} } publicclassIPSecActionCalloutAction { //構(gòu)造函數(shù) //用對(duì)IPSec呼出模塊的Callout對(duì)象和對(duì)上下文為空來(lái)調(diào)用基礎(chǔ)構(gòu)造函數(shù) PublicIPSecAction(); PublicIPSecAction(IPSecProposalctx); publicIPSecProposalContext{get{}set{}} }};IPSecAction觸發(fā)IPSec呼出以設(shè)置匹配分組中的安全上下文,使得該分組可由IPSec驅(qū)動(dòng)程序進(jìn)一步處理。它也指定用于保護(hù)網(wǎng)絡(luò)通信的實(shí)際的IPSec配置,包括AH或ESP或兩者,及它們對(duì)應(yīng)的轉(zhuǎn)換設(shè)置。System.Firewall.Policy.IKEActionnamespaceSystem.Firewall.Policy{ pulbicenumIKEAuthenticationType { PresharedKey=1, Kerberos=2, Passport=3, Certificate=4 } publicclassIKEAuthenticationMethodPolicyobject { protectedIKEAuthenticationMethod(IKEAuthenticationTypeauthType); publicstaticreadonlyIKEAuthenticationMethodPresharedKey=newIKEAuthenticationMethod(PresharedKey); publicstaticreadonlyIKEAuthenticationMethodKerberos=newIKEAuthenticatinMethod(Kerberos); publicstaticreadonlyIKEAuthenticationMethodPassport=newIKEAuthenticatinMethod(Passport); } publicclassCertificateAuthenticationMethodIKEAuthenticationMethod { publicCertificateAutenticationMethod(); publicX509CertificateCollectionRootCertificates{get{}set{}} } publicenumCipherAlgorithm { None, DES, 3DES } publicenumHashAlgorithm { None, MD5,<!--SIPO<DPn="36">--><dpn="d36"/> SHA } publicclassIKEProposalPolicyObject { publicIKEProposal(CipherAlgorithmciper,HashAlgorithmhash); //將高、中、低提議預(yù)定義為靜態(tài)變量 publicCipherAlgorithmCiperAlgorithm{get{}} publicHashAlgorithmHashAlgorithm{get{}} publicuint32MaxLifetimeSeconds{get{}set{}} publicuint32MaxLifetimeKilobytes{get{}set{}} publicuint32MaxQuickModeNumber{get{}set{}} } publicclassIKEActionPolicyAction { publicIKEAction(IKEAuthenticationMethodmethod); //驗(yàn)證方法預(yù)共享密鑰、Kerberos、證書(shū)(輸出證書(shū)、輸入證書(shū)) publicIKEAuthenticationMethodAuthenticationMethod{get{}} //對(duì)算法等 publicIKEProposalProposal{get{}set{}} }};IKEAction定義執(zhí)行IKE密鑰協(xié)商協(xié)議的驗(yàn)證方法,可以是預(yù)共享密鑰、Kerberos或證書(shū),以及驗(yàn)證算法的提議。System.Firewall.Policy.KeyModuleActionnamespaceSystem.Firewall.Policy{ publicclassKeyingModuleActionPolicyAction { publicenumKeyingModule { IKE, Mamie }<!--SIPO<DPn="37">--><dpn="d37"/> privateKeyingModuelAction(KeyingModulemodule); publicKeyingModuleAction(KeyingModuleCollectionmodules); publicstaticreadonlyIKE=newKeyingModuleAction(IKE); publicstaticreadonlyMamie=newKeyingModuleAction(Mamie); publicKeyingModeuleCollectionGetKeyingModules(); }};KeyModuleAction選擇指定的密鑰模塊來(lái)執(zhí)行密鑰協(xié)商交換。當(dāng)指定了一個(gè)以上時(shí),將順序嘗試列出每一密鑰模塊直到它們中的一個(gè)成功或所有都失敗。方法名字GeyKeyingModules返回類(lèi)型KeyingModuleCollection描述返回當(dāng)該行動(dòng)發(fā)生時(shí)將調(diào)用的一個(gè)或多個(gè)密鑰模塊。如果列出了一個(gè)以上密鑰模塊,則以指定的順序試驗(yàn)它們直到它們的其中一個(gè)成功或所有都失敗。參數(shù)無(wú)展示DSystem.firewall.Policy.ApplicationSettingnamespacesystem.Firewall.Policy{ publicclassApplicationSetting { //安全級(jí)別和可信聯(lián)系人默認(rèn)地被設(shè)為從GetDefaultSecuritvLevel(user)返回的值和 //DefaultTrustedContacts. publicApplicaitonSetting(ApplicationIDapp,IPrincipaluser); publicApplicationIDApplication{get{}} publicIPrincipalUser{get{}} publicSecurityLevelSecurityLevel{get{}set{}} publicApplicationRuleCollectionGetRules(); }}屬性參數(shù)Application描述該應(yīng)用程序設(shè)置所相關(guān)的應(yīng)用程序訪問(wèn)權(quán)限只讀屬性參數(shù)User描述對(duì)其指定該應(yīng)用程序設(shè)置的用戶。連同Application字段一起擔(dān)當(dāng)應(yīng)用程序設(shè)置的唯一密鑰。訪問(wèn)權(quán)限只讀屬性參數(shù)SecurityLevel描述當(dāng)用戶使用該應(yīng)用程序時(shí)的安全級(jí)別訪問(wèn)權(quán)限讀寫(xiě)方法名字GetRules參數(shù)Application-向其應(yīng)用該安全級(jí)別的應(yīng)用程序。User-向其應(yīng)用該安全級(jí)別的用戶。Contacts-當(dāng)應(yīng)用該安全級(jí)別時(shí)所使用的遠(yuǎn)程聯(lián)系人的列表。返回ApplicationRuleCollection描述獲取實(shí)施設(shè)置“當(dāng)用戶使用該應(yīng)用程序時(shí)用這些遠(yuǎn)程聯(lián)系人使用該安全級(jí)別”的應(yīng)用程序規(guī)則的列表。System.Firewall.Policy.SecurityLevelnamespaceSystem.Firewall.Policy{ publicclassSecurityLevelPolicyobject { protectedApplicationRuleCollectionruleTemplates; publicSecurityLevel(ApplicationRuleCollectionruleTemplates}; publicApplicationRuleCollectionTemplates{get{}} }}屬性參數(shù)Templates描述組成該安全級(jí)別的應(yīng)用程序規(guī)則模板的列表。訪問(wèn)權(quán)限只讀安全級(jí)別中的遠(yuǎn)程實(shí)體的引用確定了IPSec主模式密鑰交換的設(shè)置。例如,如果可信聯(lián)系人是X509證書(shū),則該聯(lián)系人的CA證書(shū)將作為IKE協(xié)商中使用的可信根證書(shū)來(lái)處理。為安全原因,證書(shū)、預(yù)共享密鑰和其它憑證將不由PFW服務(wù)儲(chǔ)存。相反它們應(yīng)當(dāng)來(lái)自專(zhuān)用窗口安全存儲(chǔ),如證書(shū)的安全證書(shū)存儲(chǔ)。展示ESystem.Firewall.FirewallServicenamespaceSystem.Firewall{ publicenumFirewallMode { AllowAll=1, BlockAll=2, Filtering=3 } [flags] publicenumLoggingFlags { BlockedConnections=1, AllowedConnections=2, ConfigurationChanges=4, LogAll=7 } publicenumOverflowBehavior { OverWrite=1, FIFOEnteries=2, BlockAllTraffic=3 } publicclassLogSettings { publicLoggingFlagsFlags{get{}set{}} publiculongMaxSize{get{}set{}} publicoverflowBehavior{get{}set{}} } publicenumPolicyProviderType { ManagedServiceProvider=1, LocalProvider=2, DomainProvider=3, ApplicationProvider=4 } publicclassFirewall { privateFirewall(){} //FirewallService不能被例示。它跟隨單獨(dú)的模式?! ublicstaticreadonlyFirewallFWService=newFirewall(); //屬性 publicFirewallModeFirewallMode{get{}set{}} publicLogSettingsLogSettings{get{}set{}} //方法 publicRuleEditorAqireRuleEditor(PolicyProviderTypeprovider); publicRuleExplorerAquireRuleExplorer(PolicyProviderTypeprovider); publicSettingEditorAquireApplicationSettingEditor(EventFilterfilter); publicvoidClearLog(); }}屬性屬性參數(shù)FirewallMode描述個(gè)人防火墻服務(wù)的當(dāng)前過(guò)濾模式。它可以是以下值的任一個(gè)·BlockAll個(gè)人防火墻服務(wù)正在運(yùn)行,它阻斷所有的通信·PermitAll個(gè)人防火墻服務(wù)正在運(yùn)行,它允許所有的通信·Filtering個(gè)人防火墻服務(wù)正在運(yùn)行,它實(shí)際實(shí)施用戶定義的應(yīng)用程序設(shè)置訪問(wèn)權(quán)限只讀屬性參數(shù)LogSettings描述指定記錄設(shè)置的全局設(shè)置,包括要記錄的內(nèi)容、記錄限制和溢出行為訪問(wèn)權(quán)限讀寫(xiě)方法方法名字AquireRuleEditor參數(shù)Provider-返回的政策編輯器所擔(dān)當(dāng)?shù)念?lèi)型政策提供者。返回RuleEditor-將通過(guò)其管理所有高級(jí)政策的對(duì)象引用。當(dāng)前調(diào)用線程的主體將用于準(zhǔn)許檢查。因此在“runas”情況下,需要在調(diào)用該方法來(lái)創(chuàng)建RuleEditor之前作出模仿。如果當(dāng)前調(diào)用者不具有足夠的特權(quán),將引發(fā)特權(quán)不足異常。描述用于直接操縱政策規(guī)則的政策提供者接口,即,系統(tǒng)中的規(guī)則的高級(jí)察看,包括儲(chǔ)存在持久存儲(chǔ)和插入到內(nèi)核驅(qū)動(dòng)程序中的規(guī)則。方法名字AcquireRuleExplorer參數(shù)Provider-返回的政策探查器將擔(dān)當(dāng)?shù)念?lèi)型政策提供者。返回RuleExplorer-可通過(guò)其用足夠的特權(quán)檢索來(lái)自其它提供者的規(guī)則的對(duì)象引用。描述創(chuàng)建規(guī)則探查器對(duì)象用于察看當(dāng)前在平臺(tái)中由特定的政策提供者實(shí)施的規(guī)則。方法名字AcquireSettingEditor參數(shù)Provider-返回的防火墻設(shè)置編輯器將擔(dān)當(dāng)?shù)念?lèi)型政策提供者。返回SettingEditor-通過(guò)其管理所有簡(jiǎn)單的應(yīng)用程序設(shè)置的對(duì)象引用。當(dāng)前調(diào)用線程的主體將用于準(zhǔn)許檢查。因此在“runas”情況下,需要在調(diào)用該方法之前作出模仿。如果當(dāng)前的調(diào)用者沒(méi)有足夠的特權(quán),將引發(fā)特權(quán)不足異常。描述創(chuàng)建編輯器對(duì)象用于按照應(yīng)用程序設(shè)置管理規(guī)則的簡(jiǎn)單察看。方法名字ClearLog參數(shù)Void返回Void描述移除日志中所有的記錄。System.Firewall.SettingEditornamespaceSystem.Firewall{ pulicdelegatevoidSettingChangedEvent(SettingEditorsource,SettingChangedEventArgsargs); publicclassSettingEditor { publicApplicationSettingCollectionApplicationSettings{get{}set{}} publicApplicationSettingDefaultApplicationSetting{get{}set{}} publicApplicationSettingDefaultWindowsComponentSetting{get{}set{}} publicIPAddressValueCollectionTrustedZone{get{}set{}} publicRemoteIdentityCollectionSecureZone{get{}set{}} publicboolIsICMPAllowed{get{}set{}} //方法 publicvoidSetDefaultSecurityLevel(IPrincipaluser,SecurityLevellevel); publicSecurityLevelGetDefaultSecurityLevel(IPrincipaluser); publiceventSettingChangedDelegateSettingChangedEvent; }}屬性屬性參數(shù)AppplicationSettings描述儲(chǔ)存在系統(tǒng)中的所有應(yīng)用程序防火墻。規(guī)則訪問(wèn)權(quán)限只讀屬性參數(shù)DefauleApplicationSetting描述當(dāng)未指定應(yīng)用程序設(shè)置時(shí)所應(yīng)用的默認(rèn)防火墻。訪問(wèn)權(quán)限讀寫(xiě)屬性參數(shù)DefaultWindowsServiceSetting描述當(dāng)未指定窗口服務(wù)的防火墻設(shè)置時(shí)所應(yīng)用的默認(rèn)防火墻設(shè)置。訪問(wèn)權(quán)限讀寫(xiě)屬性參數(shù)TrustedZone描述當(dāng)應(yīng)用程序設(shè)置未指定其自己的可信IP地址時(shí)所使用的默認(rèn)可信IP地址。訪問(wèn)權(quán)限讀寫(xiě)屬性參數(shù)SecureZone描述當(dāng)應(yīng)用程序設(shè)置未指定其自己的可信的已驗(yàn)證的遠(yuǎn)程身份時(shí)所使用的默認(rèn)可信的已驗(yàn)證的遠(yuǎn)程身份列表。訪問(wèn)權(quán)限讀寫(xiě)屬性參數(shù)IsICMPAlloed描述如果為真,則允許所有的ICMP消息,例如棧將響應(yīng)查驗(yàn)并生成ICMP錯(cuò)誤。否則,它被阻斷。訪問(wèn)權(quán)限讀寫(xiě)方法方法名字SetDefauleSecurityLevel參數(shù)User-Level-返回Void描述為指定的用戶設(shè)置默認(rèn)安全級(jí)別。方法名字GetSecurityLevel參數(shù)User-返回Void描述獲取對(duì)指定用戶的默認(rèn)安全級(jí)別System.Firewall.RuleExplorerRuleExplorer對(duì)象給予防火墻客戶機(jī)當(dāng)前在防火墻平臺(tái)中的所有政策的只讀察看(盡管要經(jīng)受特權(quán)檢查)。namespaceSystem.Firewall{ [flags] publicenumMatchingFlag { ExactMatch, Overiding, Overridden, Specific } publicclassEventFilterPolicyRule { publicEventFilter(PolicyConditioncondition,PolicyActionaction);<!--SIPO<DPn="45">--><dpn="d45"/> publicstaticreadonlyEventFilterAllRules=newEventFilter(NULL,NULL); publicMatchingFlagFlag{get{}set{}} } publicdelegatevoidRuleChangedDelegate(RuleExplorersource,RuleChangedEventArgsargs); publicclassRuleExplorer { //構(gòu)造函數(shù) //沒(méi)有公用構(gòu)造函數(shù)。RuleExplorer對(duì)象只能通過(guò)在PolicyEngine上調(diào)用CreateExplorer //方法來(lái)創(chuàng)建 PrivateRuleExplorer(); //方法 publicRuleReferenceCollectionGetRules(); //事件 publiceventRuleChangedDelegateRuleChangedEvent; //屬性 publicEventFilterEventFilter{get{}} }};方法方法名字GetRules返回類(lèi)型RuleReferenceCollection描述獲取當(dāng)前在防火墻平臺(tái)中實(shí)施的規(guī)則。該操作在一個(gè)事務(wù)中完成,即它是具有正確的隔離級(jí)別的原子操作。參數(shù)無(wú)事件屬性名字RuleChangedEvent描述這用于RuleExplorer客戶機(jī)在它所察看的政策改變時(shí)接收通知。參數(shù)Source-所察看的政策改變的特定RuleExplorer對(duì)象Args-由以RuleReferenceCollection對(duì)象形式改變的政策列表組成的RuleChangedEventArgsSystem.Firewall.RuleEditornamespaceSystem.Firewall{ publicclassRuleEditor { //構(gòu)造函數(shù) //無(wú)公用構(gòu)造函數(shù)。RuleEditor對(duì)象只能通過(guò)在Firewall對(duì)象上調(diào)用AquireRuleEditor //方法來(lái)創(chuàng)建 //方法 //以下三個(gè)方法被作為一個(gè)事務(wù)來(lái)調(diào)用。因此它們的每一個(gè)是ACID操作?! ublicRuleReferenceAddRule(PolicyRulerule); publicvoidRemoveRule(RuleReferencerule); pubilcvoidUpdateRule(RuleReterencerule); publicRuleReferenceCollectionGetRules(); publicPolicyTransactionBegineTransaction(IsolationLevellevel); publicRuleReferenceCollectionGetRules(PolicyTransactiontransaction); publicRuleReferenceAddRule(PolicyRulerule,PolicyTransactiontransaction); publicvoidRemoveRule(RuleReferencerule,PolicyTransactiontransaction); pulbicvoidUpdateRule(RuleReferencerule,PolicyTransactiontransaction); publicvoidRemoveAll(); //屬性 publicPriorityClassPriorityClass{get{}}<!--SIPO<DPn="47">--><dpn="d47"/> publicPolicyProviderTypeProvider{get{}} }}方法方法名字AddRule返回類(lèi)型RuleReference描述向政策引擎壓下一組政策,它進(jìn)而將它們插入到內(nèi)核驅(qū)動(dòng)程序中。參數(shù)Policy-要插入到防火墻平臺(tái)驅(qū)動(dòng)程序中的新政策異常ArgumentException當(dāng)試圖添加無(wú)效PolicyRule對(duì)象時(shí)PrivilegeException當(dāng)試圖添加沒(méi)有足夠特權(quán)的規(guī)則時(shí)TransactionException當(dāng)當(dāng)前事務(wù)由于事務(wù)超時(shí)被中止時(shí)方法名字RemoveRule返回類(lèi)型Void描寫(xiě)從防火墻平臺(tái)實(shí)施移除指定的政策參數(shù)Policy-要從防火墻平臺(tái)驅(qū)動(dòng)程序移除的政策異常PrivilegeException當(dāng)試圖移除沒(méi)有足夠特權(quán)的規(guī)則時(shí)TransactionException在當(dāng)前事務(wù)由于事務(wù)超時(shí)被中止時(shí)方法名字UpdateRule返回類(lèi)型void描述改變先前添加的指定政策參數(shù)Policy-需要改變的政策異常ArgumentException當(dāng)試圖設(shè)置無(wú)效PolicyRule對(duì)象時(shí)PrivilegeException當(dāng)試圖添加沒(méi)有足夠特權(quán)的規(guī)則時(shí)TransactionException在當(dāng)前事務(wù)由于事務(wù)超時(shí)被中止時(shí)方法名字RemoveAll返回類(lèi)型void描述移除該政策提供者創(chuàng)建的所有規(guī)則。它是原子操作,即,它在一個(gè)事務(wù)內(nèi)完成。參數(shù)Policy-需要改變的政策異常PrivilegeException當(dāng)試圖添加沒(méi)有足夠特權(quán)的規(guī)則時(shí)。TransactionException在當(dāng)前事務(wù)由于事務(wù)超時(shí)或事務(wù)失敗而被中止時(shí)。屬性屬性名字ProrityClass描述該政策提供者所處于的優(yōu)先級(jí)類(lèi)別訪問(wèn)權(quán)限只讀System.Firewall.PolicyTransactionnamespaceSystem.Firewall{ publicenumIsolationLevel { ReadUncommitted ReadCommitted; RepeatableRead, Serializable }publicclassPolicyTransaction{//構(gòu)造函數(shù)<!--SIPO<DPn="49">--><dpn="d49"/>//PolicyTransaction對(duì)象只能通過(guò)在RuleEditor對(duì)象上調(diào)用BeginTransaction來(lái)創(chuàng)建。publicvoidCommit(); publicvoidAbort(); //屬性publicIsolationLevelIsolationLevel{get{}} }}當(dāng)前防火墻平臺(tái)僅支持提交用于政策事務(wù)的一個(gè)階段。對(duì)于諸如讀/添加/更新/移除規(guī)則等每一事務(wù)操作,某些鎖被保持直到事務(wù)結(jié)束,即,提交或中止。考慮令多個(gè)探查器和編輯器試圖并行地訪問(wèn)政策引擎是不常見(jiàn)的這一事實(shí),當(dāng)前應(yīng)用用于全局引擎鎖定的粗粒度并發(fā)控制模式。因此,當(dāng)前僅支持隔離級(jí)別Serializable。為避免死鎖或資源不足,每一事務(wù)與一超時(shí)間隔相關(guān)聯(lián)。如果存在任何其它的事務(wù)等候當(dāng)前事務(wù)完成,則如果當(dāng)前事務(wù)不在超時(shí)間隔到期之前結(jié)束,則它將由平臺(tái)中止。如果事務(wù)由于超時(shí)而被中止,則如同在RuleEditor上調(diào)用AddRule或在PolicyTransaction上調(diào)用Commit那樣操作的下一事務(wù)將引發(fā)TransactionException。當(dāng)調(diào)用政策操作時(shí),如在RuleExplorer對(duì)象上調(diào)用GetRules或在RuleEditor上調(diào)用UpdateRule時(shí),完成規(guī)則確認(rèn)和訪問(wèn)準(zhǔn)許檢查。但是改變?cè)谒鼈兯幱诘氖聞?wù)被提交之前不生效。政策引擎將所有的改變作為一批并原子地將它們應(yīng)用到內(nèi)核模型防火墻驅(qū)動(dòng)程序。方法方法名字Commit返回類(lèi)型Void描述執(zhí)行該政策事務(wù)。參數(shù)無(wú)異常TransactionException當(dāng)該政策由于諸如存儲(chǔ)器用盡等某些意外的原因而提交失敗時(shí)。方法名字Abort返回類(lèi)型void描述中止指定的事務(wù)參數(shù)無(wú)異常TransactionException當(dāng)平臺(tái)無(wú)法還原由該事務(wù)作出的改變時(shí)。屬性屬性名字IsolationLevel描述該交易對(duì)象所處的隔離級(jí)別。有四個(gè)可能的隔離級(jí)別·ReadUncommitted可從其它事務(wù)察看一個(gè)事務(wù)中未提交的改變?!eadCommitted僅可在改變被提交之后可從其它事務(wù)中察看一個(gè)事務(wù)中的改變?!epeatableRead在這一隔離級(jí)別,確保所讀的任何規(guī)則在整個(gè)事務(wù)過(guò)程中不改變,但是其它事務(wù)可一新規(guī)則,它在返回這一事務(wù)中隨后的讀中返回?!erializable所有并發(fā)的事務(wù)僅以與每一事務(wù)逐個(gè)執(zhí)行所產(chǎn)生的相同的效果的方式交互。當(dāng)前的防火墻平臺(tái)僅支持Serializable隔離級(jí)別。對(duì)其它級(jí)別的支持可在將來(lái)添加。訪問(wèn)權(quán)限讀/寫(xiě)System.Firewall.RuleReference每一RuleReference具有擁有它的一個(gè)對(duì)應(yīng)的RuleEditor。僅該RuleEditor能夠修改該對(duì)象。namespaceSystem.Firewall{<!--SIPO<DPn="51">--><dpn="d51"/>publicenumEnforcementStatus{ Active=1, Disabled=2, InTransaction=3, Invalid=4}publicclassPolicyProviderInfo{//無(wú)公用構(gòu)造函數(shù)。作為RuleReference的屬性提供。//屬性 publicStringName{get{}} publicIPrincipalPrincipal{get{}} publicPriorityClassPiority{get{}}}publicclassRuleReference{//屬性 publicPolicyRulePolicySpec{get{}set{}} publicPolicyProviderInfoProviderInfo{get{}} publicEnforcementStatusStatus{get{}} }};屬性屬性名字Spec描述由底層防火墻平臺(tái)組件正在實(shí)施或?qū)⒁獙?shí)施的政策的實(shí)際內(nèi)容。訪問(wèn)權(quán)限讀/寫(xiě)屬性名字Status描述該政策的實(shí)施狀態(tài),它可以為下列狀態(tài)之一-Active成功地提交給政策管理器,并置于活動(dòng)列表中,并且正在被實(shí)施-Disabled成功地提交給政策管理器,但是由于完全被其它高優(yōu)先級(jí)政策阻斷,或由于未滿足位置或時(shí)間約束,它當(dāng)前在禁用規(guī)則列表中。-InTransaction有效的政策規(guī)范,并且它在要提交給政策管理器的事務(wù)中。-Invalid無(wú)效的政策規(guī)范,并且未提交。訪問(wèn)權(quán)限只讀屬性名字ProviderInfo描述關(guān)于擁有該政策的提供者的信息訪問(wèn)權(quán)限只讀權(quán)利要求1.一種為應(yīng)用程序設(shè)置防火墻政策的方法,其特征在于,它包括接收包括關(guān)于一應(yīng)用程序的信息的第一參數(shù);接收包括關(guān)于所述應(yīng)用程序的用戶的信息的第二參數(shù);訪問(wèn)涉及所述第一和第二參數(shù)的安全級(jí)別信息;以及使用所述安全級(jí)別信息為所述應(yīng)用程序和所述用戶設(shè)置一防火墻政策。2.如權(quán)利要求1所述的方法,其特征在于,訪問(wèn)安全級(jí)別信息包括調(diào)用一GetRules方法以返回對(duì)所述應(yīng)用程序和用戶可用的規(guī)則模板。3.如權(quán)利要求1所述的方法,其特征在于,它還包括接收關(guān)于可信聯(lián)系人的第三參數(shù),并且其中,設(shè)置防火墻政策包括使用所述安全級(jí)別信息為所述應(yīng)用程序、所述用戶和所述可信聯(lián)系人設(shè)置所述防火墻政策。4.如權(quán)利要求1所述的方法,其特征在于,設(shè)置所述防火墻政策包括為所述應(yīng)用程序設(shè)置一默認(rèn)設(shè)置;以及為所述用戶選擇所述默認(rèn)設(shè)置。5.一種在其上儲(chǔ)存了一數(shù)據(jù)結(jié)構(gòu)的計(jì)算機(jī)可讀媒質(zhì),其特征在于,所述數(shù)據(jù)結(jié)構(gòu)包括表示一應(yīng)用程序的第一數(shù)據(jù)字段;表示所述應(yīng)用程序的用戶的第二數(shù)據(jù)字段;以及表示對(duì)使用所述應(yīng)用程序的用戶可用的安全設(shè)置的第三數(shù)據(jù)字段。6.如權(quán)利要求5所述的計(jì)算機(jī)可讀媒質(zhì),其特征在于,所述數(shù)據(jù)結(jié)構(gòu)包括一數(shù)據(jù)對(duì)象。7.一種用于管理計(jì)算機(jī)上的服務(wù)的對(duì)象模型,其特征在于,所述對(duì)象模型包括一政策對(duì)象模型,用于指定所述服務(wù)所支持的一個(gè)或多個(gè)政策;以及一政策引擎平臺(tái),用于與所述服務(wù)的所述一個(gè)或多個(gè)政策、以及實(shí)際執(zhí)行所述服務(wù)的至少一個(gè)組件交互,并向所述至少一個(gè)組件提供所述一個(gè)或多個(gè)政策。8.如權(quán)利要求7所述的對(duì)象模型,其特征在于,所述政策引擎平臺(tái)包括一規(guī)則編輯器,用于依照所述政策對(duì)象模型添加額外的政策。9.如權(quán)利要求8所述的對(duì)象模型,其特征在于,所述規(guī)則編輯器也被配置成刪除政策。10.如權(quán)利要求8所述的對(duì)象模型,其特征在于,所述規(guī)則編輯器也被配置成編輯政策。11.如權(quán)利要求7所述的對(duì)象模型,其特征在于,所述政策引擎平臺(tái)包括一設(shè)置編輯器,它被配置成基于一應(yīng)用程序和用戶組合自動(dòng)生成一政策。12.如權(quán)利要求11所述的對(duì)象模型,其特征在于,所述設(shè)置編輯器生成多個(gè)政策,并且它還被配置成準(zhǔn)許用戶從所述多個(gè)政策中選擇。13.如權(quán)利要求12所述的對(duì)象模型,其特征在于,所述設(shè)置編輯器還被配置成準(zhǔn)許將所述多個(gè)政策之一設(shè)置為默認(rèn)政策。14.如權(quán)利要求7所述的對(duì)象模型,其特征在于,所述政策引擎平臺(tái)包括一規(guī)則探查器,用于提供所述一個(gè)或多個(gè)政策的察看。15.如權(quán)利要求7所述的對(duì)象模型,其特征在于,所述政策對(duì)象模型包括一可用于生成政策的PolicyRule對(duì)象,所述PolicyRule對(duì)象包括一條件屬性和一行動(dòng)屬性,其中,由所述PolicyRule對(duì)象生成的政策被配置成響應(yīng)于滿足所述條件屬性中的一條件,執(zhí)行所述行動(dòng)屬性中的一行動(dòng)。16.如權(quán)利要求7所述的對(duì)象模型,其特征在于,所述服務(wù)是防火墻服務(wù)。17.如權(quán)利要求7所述的對(duì)象模型,其特征在于,所述政策引擎平臺(tái)被配置成如果請(qǐng)求者未被授權(quán),則拒絕向所述組件提供所述一個(gè)或多個(gè)政策。18.如權(quán)利要求17所述的對(duì)象模型,其特征在于,確定一請(qǐng)求者是否被授權(quán)包括將所述請(qǐng)求的提供者等級(jí)與一準(zhǔn)許等級(jí)相比較,并且如果所述請(qǐng)求的提供者等級(jí)不滿足或超過(guò)所述準(zhǔn)許等級(jí),則拒絕所述請(qǐng)求者。19.一種管理計(jì)算機(jī)上的服務(wù)的方法,其特征在于,所述方法包括通過(guò)一政策對(duì)象模型指定所述服務(wù)所支持的一個(gè)或多個(gè)政策;通過(guò)一政策引擎平臺(tái)與所述服務(wù)的所述一個(gè)或多個(gè)政策、以及實(shí)際執(zhí)行所述服務(wù)的至少一個(gè)組件交互;以及通過(guò)所述政策引擎平臺(tái)向所述至少一個(gè)組件提供所述一個(gè)或多個(gè)政策。20.如權(quán)利要求19所述的方法,其特征在于,它還包括基于一應(yīng)用程序和用戶組合自動(dòng)生成一政策。21.如權(quán)利要求20所述的方法,其特征在于,它還包括生成多個(gè)政策,并準(zhǔn)許用戶從所述多個(gè)政策中選擇。22.如權(quán)利要求21所述的方法,其特征在于,它還包括將所述多個(gè)政策之一設(shè)置為默認(rèn)政策。23.如權(quán)利要求22所述的方法,其特征在于,它還包括在提供之前授權(quán)用戶。24.一種用于管理計(jì)算機(jī)上的防火墻服務(wù)的對(duì)象模型,其特征在于,所述對(duì)象模型包括一政策對(duì)象模型,用于指定所述防火墻服務(wù)所支持的一個(gè)或多個(gè)政策,所述政策模型包括一可用于生成政策的PolicyRule對(duì)象,所述PolicyRule對(duì)象包括一條件屬性和一行動(dòng)屬性,其中,由所述PolicyRule對(duì)象生成的政策被配置成響應(yīng)于滿足所述條件屬性中的一條件,執(zhí)行所述行動(dòng)屬性中的一行動(dòng)。25.如權(quán)利要求24所述的對(duì)象模型,其特征在于,它還包括從所述PolicyRule對(duì)象導(dǎo)出的一IPSecRule,所述IPSecRule被配置成當(dāng)匹配一IPSec條件時(shí)觸發(fā)一IPSec呼出,及指示用于保護(hù)涉及所述呼出的通信安全的配置參數(shù)。26.如權(quán)利要求25所述的對(duì)象模型,其特征在于,所述IPSecRule評(píng)估一標(biāo)準(zhǔn)5元組,以確定是否滿足一條件。27.如權(quán)利要求24所述的對(duì)象模型,其特征在于,它還包括一從所述PolicyRule對(duì)象導(dǎo)出的KeyingModuleRule,所述KeyingModuleRule被配置成當(dāng)不存在對(duì)遠(yuǎn)程對(duì)等體的安全通道時(shí)選擇哪一密鑰協(xié)商模塊來(lái)使用。28.如權(quán)利要求27所述的對(duì)象模型,其特征在于,所述KeyingModuleRule評(píng)估一標(biāo)準(zhǔn)5元組,以確定是否滿足一條件。29.如權(quán)利要求24所述的對(duì)象模型,其特征在于,它還包括一從所述PolicyRule模型導(dǎo)出的IKERule,它被配置成指定用于實(shí)現(xiàn)因特網(wǎng)密鑰交換密鑰協(xié)商協(xié)議的參數(shù)。30.如權(quán)利要求29所述的對(duì)象模型,其特征在于,所述IKERule評(píng)估一本地地址和一遠(yuǎn)程地址,以確定是否滿足一條件。31.如權(quán)利要求29所述的對(duì)象模型,其特征在于,所述IKERule包括一IKEAction行動(dòng)屬性,它定義用于執(zhí)行因特網(wǎng)密鑰交換密鑰協(xié)商協(xié)議的驗(yàn)證方法。全文摘要提供了一種對(duì)象模型作為用于管理諸如防火墻服務(wù)等網(wǎng)絡(luò)服務(wù)的通用框架。計(jì)算機(jī)的用戶或管理員可使用該對(duì)象模型來(lái)管理并配置防火墻服務(wù)。該對(duì)象模型使用戶和/或管理員無(wú)需處理涉及配置服務(wù)的許多可能的問(wèn)題。該對(duì)象模型包括兩個(gè)主要的名字空間一政策引擎平臺(tái)和一政策對(duì)象模型。該政策引擎平臺(tái)是用于與對(duì)該服務(wù)的政策和實(shí)際執(zhí)行該服務(wù)的內(nèi)核組件進(jìn)行交互的中心點(diǎn)。該政策對(duì)象模型用于指定服務(wù)所支持的政策。文檔編號(hào)H04L29/06GK1630300SQ20041010200公開(kāi)日2005年6月22日申請(qǐng)日期2004年12月17日優(yōu)先權(quán)日2003年12月19日發(fā)明者A·加弗里萊斯庫(kù),錢(qián)挺申請(qǐng)人:微軟公司