管理防火墙服务的对象模型的制作方法

文档序号:7601026阅读:251来源:国知局

专利名称::管理防火墙服务的对象模型的制作方法
技术领域
:本发明一般涉及计算机或网络上的安全,尤其涉及防火墙及其管理。
背景技术
:一般而言,防火墙是一种防止未授权用户访问网络或计算机上的某些文件的电子边界。防火墙可作为用户计算机上的防火墙代码提供(“主机防火墙”)。可选地,可在网络的边缘上提供专用防火墙(“边缘防火墙”),该网络与网络之外的计算机接口,并内建了特殊的安全预防措施,以保护网络内的计算机上的敏感文件。该思想是保护隐藏在边缘防火墙之后的更松散管理的机器群类免遭网络外部的用户的攻击。边缘防火墙所位于的机器通常被称为“网关”或“专用网关”。如果被配置成保护网络免遭因特网攻击,则该机器通常被称为“因特网网关装置”。防火墙使用至少三种不同安全措施的一个或多个,来控制流入和流出网络的通信。在被称为静态分组过滤的第一种方法中,对照一组过滤器分析分组。被过滤器批准的分组被发送到发请求的系统;所有其它的分组被丢弃。在被称为代理服务的第二种方法中,来自因特网的信息由防火墙检索、对照一种政策评估、然后被发送到发请求的系统,反之亦然。在被称为全状态检查的第三种较新的方法中,不检查分组的内容,但作为替代,将分组的密钥部分与可信信息数据库进行比较。监控从防火墙内部传输到外部的信息的特定特征,然后将输入信息与这些特征相比较。如果比较生成合理的匹配,则允许信息通过。否则它被丢弃。可使用其它通信控制,以上三种方法作为示例给出。防火墙通常是可定制的,这意味着例如可基于若干条件添加或移除过滤器。例如,可使用因特网协议(“IP”)地址来限制或阻断通信。如果是这样,则在一个示例中,如果网络外部的IP地址从服务器读取了太多的文件,则防火墙可阻断来往于该地址的所有通信。作为另一示例,防火墙可阻断对某一域名的所有访问,或允许仅访问特定域名。作为又一示例,公司可建立仅具有一个或两个机器的网络以处理一个或多个特定协议,并禁止所有其它机器上的这些协议。再一示例使用端口来限制通信。例如,如果服务器机器正在运行web(HTTP)服务器和FTP服务器,则web服务器通常在端口80上可用,而FTP服务器在端口21上可用。公司可阻断端口21访问网络上除一个机器之外的所有机器。由此,防火墙通过审阅网络通信,并仅允许符合防火墙的防火墙服务内部设定的政策的通信,确保了安全性。尽管上述通信控制方法对过滤通信起较好的作用,然而管理防火墙是困难的。例如,用户可能想要对一个机器设置特定的访问政策,但是不理解端口、分组和/或过滤器。用于指定配置防火墙的防火墙政策的现有方法通常是不直观的,和/或需要网络协议和实现的深入知识。
发明内容以下提出了本发明的某些实施例的简化概述,以提供对本发明的基本理解。本概述并非本发明的广泛综述。它并不意味着标识本发明的关键/决定性元素,或描绘本发明的范围。其唯一的目的是以简化的形式提出本发明的某些实施例,作为对稍后提出的更详细描述的前序。依照本发明的一个实施例,提供了一种对象模型作为用于管理网络服务的通用框架,如防火墙服务、网络服务质量、父母控制和网络入侵检测,作为非限制性示例。计算机的用户或管理员可使用该对象模型来管理服务。例如,用户可访问一用户接口,它访问该对象模型,并且用户可通过该用户接口设置服务政策。另外,该对象模型可由远程管理工具访问,如由网络管理员访问。以这一方式,该对象模型可用于远程地设置服务政策,并且单个管理员可管理多个计算机的服务。该对象模型使用户和/或管理员无需处理涉及配置服务的许多可能的问题。该对象模型包括两个主要名字空间政策引擎平台和政策对象模型。政策引擎平台是与服务政策交互的中心点和实际执行服务的内核组件。政策引擎平台执行建立政策和将政策插入到平台内核组件的动作。政策对象模型用于指定服务所支持的政策。政策对象模型准许高级用户定义传统的以分组为中心的类型的过滤政策,或准许较低级用户使用更简化的规则基于使用该服务的应用程序和该应用程序的用户来开发政策。结合附图阅读以下详细描述,可以清楚本发明的其它特征,附图中图1所示是通过网络连接的计算机的示意图;图2是一般示出了可用于实现本发明的一个实施例的示例性计算机系统的示意图;图3所示是可依照本发明的一个实施例使用的图2的计算机系统的体系结构的细节的框图;图4是一般表示可依照本防火墙政策对象模型的一个实施例产生的防火墙服务对象的图示;图5示出了依照本发明的一个实施例从政策对象导出的五个不同的基本抽象防火墙政策对象的示例;图6示出了可依照本发明的一个实施例从政策条件对象导出的若干不同的政策条件类;图7示出了可依照本发明的一个实施例从政策行动对象导出的若干不同的政策行动类;图8是一般表示依照本发明的一个实施例的防火墙政策引擎平台的类的框图;图9示出了关于图8所示的类的更多细节;图10是一般表示依照本发明的一个实施例使用规则编辑器对象用于创建、编辑或删除PolicyRule的步骤的流程图;图11是一般表示依照本发明的一个实施例使用设置编辑器对象用于创建PolicyRule的步骤的流程图;图12是一般表示依照本发明的一个实施例使用规则探查器用于对象察看PolicyRule的步骤的流程图。具体实施例方式在以下描述中,将描述本发明的各种实施例。为解释目的,陈述了具体的配置和细节以提供对这些实施例的透彻的理解。然而,本领域的技术人员也可清楚,本发明可以不采用这些特定细节来实践。此外,可忽略或简化众所周知的特征以不使所描述的实施例难以理解。在继续本发明的各种实施例的描述之前,现在提供在其中可实践本发明的各种实施例的计算机和网络环境。尽管并非所需,但本发明将在诸如由计算机执行的程序模块等计算机可执行指令的一般上下文环境中描述。一般而言,程序包括例程、程序、对象、组件、数据结构等等,执行特定的任务或实现特定的抽象数据类型。如本发明所使用的术语“程序”或“模块”意味着单个程序模块或一致行动的多个程序模块。如本发明所使用的术语“计算机”和“计算装置”包括电子地执行一个或多个程序的任一装置,如个人计算机(PC)、手持式设备、多处理器系统、基于微处理器的可编程消费者电子产品、网络PC、小型机、图形输入板PC、膝上计算机、具有微处理器或微控制器的消费者设备、路由器、网关、集线器等等。本发明也可在分布式计算环境中采用,其中,任务由通过通信网络连接的远程处理设备来执行。在分布式计算环境中,程序可位于本地和远程存储器存储设备中。适合结合本发明的各方面的计算机网络环境的一个示例参考图1来描述。示例计算机网络环境包括通过由云表示的安全网络104彼此通信的若干计算机102。安全网络104可包括许多众所周知的组件,如路由器、网关、集线器等等,并允许计算机102通过有线和/或无线媒质进行通信。当通过安全网络104彼此交互时,计算机102的一个或多个可担当客户机、服务器或对于其它计算机102的对等体。因此,本发明的各个实施例可在客户机、服务器、对等体或其组合上实践,即使本发明所包含的具体示例可能不涉及所有这些计算机类型。本示例中的安全网络104被认为是“安全”的网络,因为计算机102由公用防火墙保护,在本示例中被示出为因特网网关设备106。因特网网关设备106保护计算机102免遭位于公共或非安全网络110-本示例中由云示出—上的远程计算机108的攻击。尽管被描述为因特网网关设备106,然而网关设备可保护安全网络免遭其它类型的非安全网络的攻击,它们不必为因特网,可包括LAN、WAN或另一网络。尽管示出具有多个计算机,然而安全网络104可仅包括单个计算机102。另外,尽管示出非安全网络110具有多个远程计算机108,然而它也可仅具有一个远程计算机。此外,尽管图1所示的网络同时包括安全网络104和非安全网络110,然而诸如计算机102的一台计算机可在采用或不采用安全网络104和/或因特网网关设备106的情况下直接连接到非安全网络110。参考图2,示出了可在其中实现此处所描述的本发明的实施例的计算机102的基本配置的一个示例。这一基本配置也可用于因特网网关设备106。然而,为便于描述,通常参考计算机102来描述本发明的实施例。在其最基本的配置中,计算机102通常包括至少一个处理单元202和存储器204。处理单元202执行指令以实现依照本发明的各种实施例的任务。在实现这类任务时,处理单元202可向计算机102的其它部件并向计算机102外部的装置发送电信号,以促使某些结果。根据计算机102的确切配置和类型,存储器204可以是易失(如RAM)、非易失(如ROM、闪存等)或两者的某一组合。这一最基本配置在图2中由虚线206示出。计算机102也可具有另外的特征/功能。例如,计算机102也可包括另外的存储(可移动208和/或不可移动210),包括但不限于,磁盘、光盘或磁带。计算机存储媒质包括以用于储存包括计算机可执行指令、数据结构、程序模块或其它数据的信息的任一方法和技术实现的易失和非易失、可移动和不可移动媒质。计算机存储媒质包括但不限于,RAM、ROM、EEPROM、闪存、CD-ROM、数字多功能盘(DVD)或其它光存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用来储存期望的信息并可由计算机102访问的任一其它媒质。任一这类计算机存储媒质可以是计算机102的一部分。计算机102较佳地也包含允许装置与其它装置,如安全网络104上的其它计算机102,或非安全网络110上的远程计算机108(在图2中仅示出了单个远程计算机108)进行通信的通信连接212。通信连接是通信媒质的一个示例。通信媒质通常可以诸如载波或其它传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块或其它数据来实施,并包括任一信息传送媒质。作为示例而非局限,术语“通信媒质”包括无线媒质,如声学、RF、红外和其它无线媒质。本发明使用的术语“计算机可读媒质”包括计算机存储媒质和通信媒质。计算装置102也可具有输入设备216,如键盘/小键盘、鼠标、输入笔、语音输入设备、触摸输入设备等等。也可包括输出设备218,如显示器220、扬声器、打印机等等。这些设备在本领域中是众所周知的,无需在此详细描述。在以下描述中,将参考由一个或多个计算装置执行的行动和操作的符号表示来描述本发明,除非另外指明。由此,可以理解,这类行动和操作,有时称为计算机执行的,包括计算机102的处理单元对以结构化形式表示数据的电信号的操纵。这一操纵转换了数据或在计算机102的存储器系统中的位置上维护它,从而以本领域的技术人员都理解的方式重配置或改变了计算机102的操作。维护数据的数据结构是存储器的物理位置,具有数据的格式所定义的具体特性。然而,尽管在上述的上下文中描述本发明,它并不意味着限制,如本领域的技术人员所理解的,后文所描述的行动和操作的各方面也可以硬件实现。图3所示是可依照本发明的一个实施例使用的计算机102的体系结构的细节的框图。计算机102包括主机防火墙服务,由标号302指示。防火墙服务302可以是操作系统的组件或单独的防火墙应用程序,或运行在计算机102上或与其相关联的程序。一般而言,如本发明所使用的,“防火墙”服务是负责管理防火墙政策并将防火墙政策插入到内核组件用于实施的用户模式服务。在所示的示例中,防火墙服务302担当主机防火墙服务,因为防火墙服务保护它在其上运行的计算机102。防火墙服务302也可被配置成令计算机102担当网关设备。依照本发明的一个实施例,提供了对象模型一在图3中示出为防火墙对象模型300,作为用于管理网络服务—在图3所示的实施例中为防火墙服务302-的通用框架。尽管参考用于管理诸如防火墙服务302等防火墙服务的对象模型描述了本发明的实施例,然而本发明的各方面以及本发明的实施例也可用于管理计算机的其它网络服务,如网络服务质量、父母控制和网络入侵检测,作为非限制性示例。简要描述,防火墙对象模型300使用户和/或管理员无需处理涉及配置和管理防火墙服务302的许多可能的问题。计算机102的用户或计算机或安全网络的管理员可使用防火墙对象模型300来管理防火墙服务302。例如,用户可访问防火墙用户接口302,它访问防火墙对象模型300,用户可通过该接口为防火墙服务302设置防火墙政策。防火墙用户接口304可由例如防火墙服务302提供,或可由例如应用程序提供或作为操作系统的一部分提供。另外,防火墙对象模型300可借助远程管理工具306,如由网络管理员访问。以这一方式,防火墙对象300可用于对防火墙服务302远程地设置政策,准许单个管理员在大量计算机上管理服务。防火墙政策308在计算机102上维护或与其相关联。在所示的实施例中,将防火墙政策308示出为数据库,但是防火墙政策308可在若干数据库中维护,或以另一合适的方式储存。防火墙对象模型300包括两个主要的名字空间防火墙政策引擎平台310和政策对象模型312。简要地描述,防火墙政策引擎平台310是用于与防火墙政策308和防火墙平台内核组件314交互的中心点。防火墙平台内核组件314,如TCP/IP或网络栈,是实际执行过滤分组或来自计算机102的其它信息的功能的内核组件。防火墙政策引擎平台310执行创建和配置政策的动作,如后文进一步描述的。政策对象模型312用于指定防火墙服务302支持的防火墙政策。政策对象模型312准许高级用户定义传统的以分组为中心类型的过滤政策,或准许较低级的用户基于应用程序和应用程序的用户定义政策,如后文进一步描述的。防火墙对象模型300使用面向对象的范式,其中,可管理对象使用类和实例的概念来模型化。防火墙对象模型300中出现的对象是类、实例、属性和限定词。类是对象的模型或模板,而实例是类的体现,属性是类或实例的个别字段,限定词是这些的任一个的修饰词。政策对象模型312可用于定义政策对象,它们是指定防火墙服务的安全行动的规则。防火墙政策引擎平台310包括可在政策对象上执行诸如创建、删除或修改等动作的活动对象。图4示出了一般表示可依照防火墙政策对象模型312的一个实施例产生的防火墙服务对象的图示。PolicyObject(政策对象)对象400是防火墙对象模型300中使用的对象的抽象基类。它具有三个主要的子类PolicyRule(政策规则)402、PolicyAction(政策行动)404以及PolicyCondition(政策条件)406。PolicyRule402将规则模型化,并且在给出的示例中包括五个不同的属性。第一个属性Contidion(条件)定义为了使该规则中的一个行动发生要匹配的一个或多个条件。这些条件可由PolicyCondition类表示,如后文进一步描述的。第二个属性Action(行动)定义了当匹配该规则中指定的一个或多个条件时所采取的一个或多个行动。这些行动可由PolicyAction类来表示,如后文进一步描述的。第三个属性TimeConstraint(时间约束)指定了该规则有效的一周中的日和一天中的时间,如上午9点—下午5点,周一—周五。第四个属性NetworkLocation(网络位置)指定了该规则有效的网络位置。第五个属性Weight(权值)指定了该规则的权值,并由防火墙政策引擎平台310用于解决规则冲突。TimeConstraint、NetworkLoaction和Weight属性可由用户或管理员例如通过防火墙用户接口304或远程管理工具306来编辑。PolicyRule402是抽象类,并可从其导出基础抽象防火墙政策对象。图5示出了从PolicyRule402导出的五个不同的基础防火墙政策对象的示例。如有需要,可导出其它对象以反映由某些网络政策,如服务质量(QoS)或父母控制政策施加的其它约束。图5示出的这五个基础防火墙政策对象是TransportRule(传输规则)502、KeyingModule(密钥模块)504、IKERule(IKE规则)506、IPSecRule(IPSec规则)508以及ApplicationRule(应用程序规则)510。关于这些示例导出政策规则类的细节包括在展示A中。依照本发明的一个实施例,防火墙服务302能够在分组通过网络栈时在若干不同的层上检查分组。例如,防火墙服务302可包括IP帧构造层过滤器、TCP层过滤器、传输层过滤器、应用层过滤器、远程过程调用层过滤器以及提供较低层过滤的许多其它过滤器,使得项目在其被阻断之前不必要通过整个栈。这类防火墙服务302被设计成在微软的将要发行的LONGHORN操作系统中实现。可向第三方提供应用编程接口,以允许第三方参与在各个层上发生的过滤决策。这些过滤器的具体实现细节对描述本发明并非必需。然而,可配置基础抽象防火墙政策对象,以在每一相应的层上用这些特定的过滤器来操作。TransportRule502将主要在标准5元组上过滤的传统防火墙规则模型化。IPSecRule508、KeyingModule规则504和IKERule506是用于指定与IPSec相关的政策的三个不同的规则。如已知的,IPSec是提供在诸如因特网等未受保护的网络上传输敏感信息的安全的协议。IPSec担当网络层,保护并验证参与设备之间的IP分组。IPSecRule508、KeyingModule规则504以及IKERule506的细节在本发明所附加的展示A中给出。ApplicationRule510使用2003年6月25日提交的名为“协助应用程序穿过防火墙的方法(MethodofAssistingandApplicationtoTraverseaFirewall)”的美国专利申请号10/603,648中揭示的方法。简要地描述,该申请描述了一种可用于网络栈的应用层(“ALE”),使得用户可容易地创建简单的防火墙政策或网络访问政策,以允许或拒绝用户计算机上的防火墙不知晓的应用程序和服务连接到网络。政策在每一用户和每一应用程序的基础上设置。用户不需要知道或使用规则报告、协议或IP地址来使应用程序穿过防火墙工作。实施模块包括监视应用程序和服务对网络栈的连接并侦听其尝试的截取模块。截取模块俘获这些尝试,并确定哪一用户正在作出该尝试、哪一应用程序或服务正在作出该尝试,然后执行防火墙政策查找以确定该用户和/或应用程序是否被允许连接到该网络。如果是,则截取模块可指令主机和/或边缘防火墙配置其自身用于请求的连接。PolicyCondition对象406是可从其导出政策条件类的抽象对象。每一政策条件类表示防火墙服务302会遇见的模式或情况。图6示出了可依照本发明的一个实施例从PolicyCondition对象406导出的若干不同的政策条件类。这些政策条件类的每一个表示不同的模式或条件,如IP条件、传输条件、应用条件或当试图使用防火墙服务302时存在的其它模式。从PolicyCondition406导出的类具有子类。例如,作为示例,传输条件可包括TCP条件、ICMP条件、UDP条件。图6所示的这些条件类的描述包括在展示B中。再一次,当采用上文描述的政策对象时,条件可涉及对防火墙服务302可用的过滤器。众多不同的政策行动可用于政策对象模型312。从PolicyAction类404导出的不同的政策行动类的示例在图7中示出。一般而言,允许的行动有Permit(准许),它允许匹配相关联的条件的分组;Deny(拒绝),它丢弃不匹配相关联的条件的分组;以及Log(记录),它记录匹配相关联的条件的分组。也可使用这些的组合。可提供更复杂的行动,如验证。图7所示的行动的许多示例的描述包括在展示C中。如图8中所见到的,依照本发明的一个实施例,防火墙政策引擎平台310包括四个主要的类防火墙类对象802、设置编辑器类对象804、规则编辑器类对象806以及规则探查器类对象808。防火墙类对象802是用于与防火墙服务302交互的主类。防火墙类对象802允许单独的模式引用防火墙服务302。即,该类唯一地仅描述了单个实例,即计算机102上可用的防火墙服务。防火墙类对象802的示例属性和方法的列表作为防火墙政策引擎平台310的一部分在图9中示出。对于防火墙类对象802,依照本发明的一个实施例,防火墙类对象802包括属性FirewallMode(防火墙模式)和LogSettings(记录设置)。FirewallMode是防火墙服务302的当前过滤模式。其值可以是,例如,BlockAllTraffic(阻断所有的通信)、PermitAllTraffic(准许所有的通信)或Filtering(过滤),它表示防火墙服务302正在运行并实施已定义的设置。LogSettings可表示指定记录设置的全局设置,包括要记录的内容、记录限制和溢出行为。这些属性的每一个都是可编辑的,例如可通过防火墙用户接口304或远程管理工具306来编辑。其它属性可作为防火墙类对象802的一部分包括在内。防火墙类对象802也可包括例示或创建防火墙政策引擎平台310的其它三个类的新实例的方法或操作;即,设置编辑器类对象804(AcquireSettingEditor)、规则编辑器类对象806(AcquireRuleEditor)和规则探查器类对象808(AcquireRuleExplorer)。防火墙类对象的配置的一个示例包括在展示E中。方法AcquireSettingEditor、AcquireRuleEditor和AcquireRuleExplorer的每一个使用政策提供者作为参数。依照本发明的一个实施例,防火墙类对象802在多个政策提供者的政策之间存在冲突时担当仲裁者。一般而言,政策提供者是用于防火墙服务302的防火墙政策的来源,较佳地为可被安全地标识的来源。政策提供者与特定的优先级类或可在其上添加来自该提供者的所有规则的层相关联。例如,政策提供者可依照其个别的优先级来分级。远程网络安全管理服务器,如管理用户的计算机作为增值服务的用户的因特网服务提供商(ISP)可获得等级“1”,指示最高优先级,并可给予其在ManagedServiceProvider(已管理服务提供者)的防火墙类对象802中的定义。LocalProvider(本地提供者)被给予优先级“2”,表示计算机的本地用户或管理员。DomainProvider(域提供者)是用户所挂连的域的管理员,并接收优先级“3”。应用程序提供者可被给予优先级“4”。由应用程序提供者设置的优先级的一个示例是具有需要所有对其服务器的通信都为安全的设置的金融服务应用程序。设置编辑器类804可包括若干属性,包括ApplicationSettings(应用程序设置)、DefaultApplicationSetting(默认应用程序设置)、DefaultOSServiceSetting(默认OS服务设置)、TrustedZone(可信区)、SecureZone(安全区)和IsICMPAllowed(是否允许ICMP)。ApplicationSettings属性表示储存在系统中的应用程序防火墙规则。DefaultApplicationSetting是当未指定应用程序的防火墙设置时所应用的默认防火墙设置。DefaultOSServiceSetting是当未指定操作系统服务的防火墙设置时所应用的默认防火墙设置。TrustedZone属性是当应用程序设置未指定其自己的可信IP地址时所使用的可信因特网协议(“IP”)地址列表。SecureZone属性是当应用程序设置未指定其自己的可信已验证的远程身份时所使用的默认可信已验证的远程身份列表。最后,IsICMPAllowed属性指示是否允许因特网控制消息协议(“ICMP”);如,TCP/IP栈将响应查验并生成ICMP错误。否则,阻断ICMP消息。所有这些属性可以是可编辑的,例如,可通过防火墙用户接口304或远程管理工具306来编辑,除ApplicationSettings属性之外。图9所示的设置编辑器804的示例包括两个方法SetDefaultSecurityLevel(设置默认安全级别)和GetSecurityLevel(获取安全级别)。SetDefaultSecurityLevel的参数是用户(User)和安全级别(SecurityLevel)。GetSecurityLevel的参数是用户(User)。SetDefaultSecurityLevel允许用户或管理员对由参数指定的用户设置默认安全级别。GetSecurityLevel允许用户或管理员获取对参数所指定的用户的默认安全级别。设置编辑器类对象804向防火墙和政策管理软件开发者提供了以简单且以应用程序和用户为中性的形式管理防火墙政策的编程接口。它所操作的主要对象是ApplicationSetting(应用程序设置)902和SecurityLevel(安全级别)904。ApplicationSetting902将安全级别与应用程序和用户相关联,并包括三个属性ApplicationID(应用程序ID)、User(用户)和SecurityLevel(安全级别)。ApplicationID和User表示该ApplicationSetting902所涉及的应用程序,以及对其指定ApplicationSetting的用户。它们一起形成了ApplicationSetting902的唯一密钥。SecurityLevel是读写属性,它可由用户或管理员如通过防火墙用户接口304或远程管理工具306编辑。该属性表示当特定的用户(User)使用特定的应用程序(ApplicationID)时的安全级别。SecurityLevel可由SecurityLevel对象904使用ApplicationSetting902的GetRules(获取规则)方法来提供。GetRules对象使用参数Application(应用程序)、User(用户)和Contacts(联系人)来获取实施设置“当该用户使用该应用程序时将该安全级别用于这些远程联系人”的应用程序规则列表。依照本发明的一个实施例,SecurityLevel对象904包括一组模板,它包括用于应用程序、用户和联系人的特定安全级别的应用程序规则列表。关于SecurityLevel对象904和ApplicationSetting的更多信息在展示D中提供。RuleEditor(规则编辑器)类806是由高级政策提供者用于执行诸如添加、移除或更新政策等政策相关操作的应用编程接口。如上所述,在单个主机上可存在一个以上政策提供者。RuleEditor类对象806提供允许管理员和有能力的用户为防火墙服务302的政策规则定义专用参数。图9中的RuleEditor类对象806的示例包括两个属性PriorityClass(优先级类别)和Provider(提供者)。PriorityClass是如上所述向特定的提供者给予的优先级的类别。Provider是请求行动的提供者。图9的RuleEditor类对象806的示例包括五个方法AddRule(添加规则)、RemoveRule(移除规则)、UpdateRule(更新规则)、GetRules(获取规则)和RemoveAll(移除所有)。AddRule用于向防火墙政策引擎平台310下推(pushdown)一组政策规则。如果PolicyRule无效(如,PolicyAction不与PolicyCondition相匹配)、如果试图添加政策的提供者不具有执行这一行动的特权(例如,基于上述分级)、或者如果事务被中止,则添加PolicyRule(政策规则)的请求会失败。如果添加PolicyRule的请求不失败,则防火墙政策引擎平台310进而向防火墙平台内核组件314插入新的政策。RemoveRule用于移除指定的政策,并包括要移除的特定政策的参数,并且可由于不正确的特权或事务失败而失败。UpdateRule用于改变先前所添加的指定政策,并使用要改变的政策作为参数。UpdateRule服从与AddRule一样的例外。RemoveAll移除该特定政策提供者创建的所有政策,并且可由于不适当的特权而失败。它可以是原子操作,即,用一个事务来完成。规则探查器类对象808准许用户或管理员遵照特权规定察看当前在防火墙平台中的所有政策。依照本发明的一个实施例,察看是只读的。在图9的规则探查器类对象808的示例中,存在一个事件RuleChangedEvent(规则改变事件)。RuleChangedEvent用于规则探查器类对象808在它所察看的政策被改变时接收通知。在图9的规则探查器类对象808的示例中,存在一个属性-EventFilter(事件过滤器)。EventFilter准许用户或管理员定义要察看的政策的子集。存在单个方法GetRules(获取规则),它获取当前依照EventFilter在防火墙平台中实施的规则。该操作可在单个事务中完成。图10是一般表示依照本发明的一个实施例使用RuleEditor对象806创建、编辑或删除政策规则的步骤的流程图。这些步骤可例如通过与防火墙用户接口304或远程管理工具306相关联的软件来执行。在步骤1000开始,创建防火墙类802。用户然后在步骤1002使用防火墙类802中相应的方法请求获取RuleEditor类。在步骤1004,确定该用户是否正在请求删除一个或多个政策。如果是,则步骤1004分支到步骤1006,用户提供特定的政策作为参数。在步骤1008,例如通过将用户的提供者等级(如上所述)与删除特定政策所需的最小等级相比较,确定该用户是否具有权限来删除政策。如果用户不具有权限,则1008分支到步骤1010,事务失败。如果用户的确具有权限,则步骤1008分支到步骤1012,删除政策。如果用户希望编辑或添加政策,则步骤1004分支到步骤1014。用于编辑政策的方法与添加略有不同,但是其相似性足以使两者在此一起描述。图10所示的从1014开始步骤针对添加政策,并且在下文进一步描述其与编辑显著的差异。例如,如果用户正在编辑政策,则在步骤1014之前,用户提供政策作为参数,使其能够得以编辑。在步骤1014,用户从现有的政策类,如图5所示的规则502-510导出或选择政策类。在步骤1016,用户从可用政策条件中选择条件,或导出新政策条件。在步骤1018,用户对要建立的政策规则选择行动或导出新政策行动。如果用户是在编辑现有政策而非创建政策,则步骤1014-1018可涉及选择一个不同的政策类、条件和/或行动而非从零开始。在步骤1020,确定特定的用户是否具有权限来提交新政策。这一确定可类似于步骤1008中作出的确定来作出。如果不是,则步骤1020分支到步骤1022,事务失败。如果用户的确具有权限,则步骤1020分支到步骤1024,确定是否允许特定的政策。例如,可依照由政策类设置的规则确定特定的条件是否与行动相匹配。如果不是,则步骤1024分支到步骤1026,事务失败。如果是,则步骤1024分支到步骤1028,由防火墙政策引擎平台310将政策插入到防火墙平台内核组件314中。图10所示的方法准许高级用户为计算机102建立防火墙政策。高级用户可依照计算机102的过滤需求来设置防火墙政策。图11是一般表示使用设置编辑器对象804创建政策规则的步骤的流程图。在步骤1100开始,创建防火墙类802。在步骤1102,通过防火墙类802中提供的方法获取设置编辑器对象。由于应用程序和用户都已知,在步骤1104,应用程序设置902为已知的应用程序和已知的用户提供可用安全级别,并且向用户提供一个或多个安全级别。用户在步骤1106选择安全级别之一。如果用户未被授权来设置这一安全级别,则步骤1108分支到步骤1110,事务失败。如果用户的确具有权限,则步骤1108分支到步骤1112,防火墙政策引擎平台310向防火墙平台内核组件314插入该政策。如所见的,图11的方法为并非高级的用户提供了一种相对简单的方法来对设置计算机102的防火墙政策。该政策可在没有端口、分组或其它项目的知识的情况下设置,通常必须输入这些知识来配置防火墙。图12是一般表示依照本发明的一个实施例使用规则探查器对象808察看政策规则的步骤的流程图。在步骤1200开始,创建防火墙类802。在步骤1202,使用防火墙类802中关联的方法获取RuleExplorer对象808。在步骤1204,提供用户想要看见的规则的适当参数(如,特定提供商创建的所有规则)。在步骤1206,提供规则用于由用户如通过防火墙用户接口304来察看。尽管未在图12中示出,通过RuleExplorer对象808察看规则可能需要验证,并且由此,它可被限于特定级别和更高级别提供商。另外,如果对规则作出改变,可通过RuleChangeEvent属性向用户发送这些改变的通知。本发明所引用的所有参考,包括出版物、专利申请和专利通过引用结合于此,其意义与在每一申请被个别并具体地指示为通过引用个别结合并以其整体阐明的意义相同。描述本发明的上下文中术语“一”、“一个”和“该”以及类似的参照词的使用(尤其是在所附权利要求书中)被解释为覆盖了单个和多个形式,除非在此另外指明或与上下文明确地抵触。术语“由……组成”、“具有”、“包括”和“包含”被解释为开放式术语(即,意味着“包括,但不限于”),除非另外指明。本发明的数值范围的列举仅旨在担当个别地涉及落入该范围内的每一单独数值的简写方法,除非在本发明中另外指明,并且每一单独的数值被结合进本说明书中,如同它是在本发明中个别地引用一样。本发明描述的所有方法可以任一合适的顺序执行,除非另外指明或与上下文明显地抵触。本发明所提供的任一或所有示例,或示例性语言(如,“诸如”)的使用旨在仅更好地阐明本发明的实施例,并非在本发明的范围上施加限制,除非另外声明。本说明书中没有什么言词应当被解释为指示任一未要求保护的元素对本发明的实践是必需的。此处描述了本发明的较佳实施例,包括对发明人已知的用于实现本发明的最佳模式。在阅读了以上描述之后,这些较佳实施例的变化对本领域的普通技术人员是显而易见的。发明人期望技术人员在适当时采用这些变化,并且发明人预期本发明除此处所具体描述的之外的场合实践。因此,本发明包括适用法律所准许的所附权利要求书中叙述的主题的所有修改和等效技术方案。此外,所有可能的变化中的上述元素的任一组合也由本发明包含在内,除非另外指明或与上下文明确地抵触。展示ASystem.Firewall.Policy.ApplicationRulenamespaceSystem.Firewall.Policy{publicclassApplicationRulePolicyRule{publicApplicationRule();publicApplicationRule(ApplicationConditoncondition,ApplicationActionact);publicApplicationConditionApplicationCondition{get{}set{}}publicApplicationActionAction{get{}set{}}}}ApplicationRule是由应用程序层实施所实施的规则,尽管它也可动态地在其它层上例示,如传输层上的IPSec规则,以保护某一应用程序或用户的所有通信。System.Firewall.Policy.TransportRulenamespaceSystem.Firewall.Policy{ publicclassTransportRulePolicyRule {  publicTransportRule();  publicTransportRule(TransportConditoncondition,FilterActionact);  publicTransportConditionTransportCondition{get{}set{}}  publicFilterActionAction{get{}set{}}  }}TransportRule将主要在标准5元组上过滤的传统防火墙规则模型化。System.Firewall.Policy.IKERulenamespaceSystem.Firewall.Policy{  publicclassIKERulePolicyRule  {  publicIKERule();  publicIKERule(IPAddressValuesrc,IPAddressValuedst,IKEActionact);  publicIPAddressValueSourceAddress{get{}set{}}  publicIPAddressValueDestinationAddress{get{}set{}}  publicIKEActionAction{get{}set{}};  }}有三种不同的规则用于指定与IPSec相关的政策IPSecRule、KeyingModuleRule和IKERule。IPSecRule在传输层上添加,其中匹配的通信触发IPSec呼出。IPSec呼出设置分组中的安全上下文,使得IPSec模块可被调用来搜索现有的SA以保护通信。如果没找到,则匹配KeyingModuleRule以找出正确的密钥模块来执行密钥协商。根据所选择的密钥模块,将匹配对应的IKERule或Mamierule,以找出用于执行密钥交换的适当的配置设置。然后将再次匹配IPSecRule以设立用于实际保护通信的正确的IPSecSA,如AH或ESP。IKERule指定了实现IKE密钥协商协议的参数。IKERule只能采用本地地址和远程地址作为其条件。IKERule的行动是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扮演两个不同的角色,一个在匹配关联的条件时触发IPSec,另一个指示保护匹配通信的配置参数。因此,它既指定了需要保护哪些分组,也指定了如何保护它们。不同的5元组可具有不同的IPSEc参数。尽管在传输层上,防火墙平台可匹配比标准5元组更多的字段,如TCP标志,然而为实现IPSec目的,5元组已足够。因此,IPSecRule仅列出标准5元组,即源地址、目标地址、协议、源端口和目标端口,作为其条件字段。如果有需要匹配同一5元组的通信基于其它字段被不同地保护的实际情况,则可添加那些字段。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在没有到远程对等体的安全通道(关联)时选择那个密钥协商模块来使用,远程对等体可以是主机或用户。KeyingModuleRule也采取标准5元组作为其条件。在有一个以上模块可用的情况下,例如,除传统的IKE之外还有用于用户验证的Mamie,则KeyingModuleAction以并行或串行尝试列出它们直到它们的其中之一成功或都失败。展示BSystem.Firewall.Policy.PolicyConditionnamespaceSystem.Firewall.Policy{  publicabstractclassPolicyConditionPolicyObject  {  publicabstractboolEquals(PolicyConditioncondition);   publicabstractboolIntersects(PolicyConditioncondition);  publicabstractboolContains(PolicyConditionconditon);  }}方法名字Equals返回类型Bool描述如果匹配该PolicyCondition对象的所有分组也匹配传递的自变量condition并且反之亦然,则返回真。否则返回假。参数PolicyConditioncond方法名字Intersects返回类型Bool描述如果存在匹配该PolicyCondition对象也匹配传递的自变量condition的分组,则返回真。如果没有这样的分组,则返回假。参数PolicyCondition方法名字Contains返回类型Bool描述如果匹配传递自变量condition的所有分组也匹配该PolicyCondition对象,则返回真。否则返回假。参数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描述指定该链路层规则将应用到何处·InboundTop该层在每一接收的分组横穿过所有其它的NDIS轻量过滤器填隙片之后被调用。在接收路径上,这是在其数据链路分组被传递到网络层用于处理之前对其进行过滤的最后一次机会。·OutboundTop该层在每一发送分组穿过任一其它NDIS轻量过滤器填隙片之前被调用。在发送路径上,这是在数据链路分组由其它NDIS轻过滤器处理之前对其进行过滤的第一次机会。·InboundBottom该层在每一接收分组穿过任一其它NDIS轻过滤器填隙片之前被调用。该层是过滤接收分组的第一次机会。·OutboundBottom该层在每一发送分组穿过所有其它的NDIS轻过滤器填隙片之后被调用。该层是过滤发送分组的最后一次机会。访问权限读/写属性名字SourceMACAddress描述该值用于匹配以太网头部中的源MAC地址字段。访问权限读/写属性名字DestinationMACAddress描述该值用于匹配以太网头部中的目标MAC地址字段。访问权限读/写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{}}  //可以有更多的条件由防火墙平台来展现  publicIPCondition();  publicIPCondition(IPLayerlayer,IPAddressValuesrc,dst,ByteValue  prot);  publicoverrideboolEquals(PolicyConditioncondition);   publicoverrideboolIntersects(PolicyConditioncondition);  publicoverrideboolContains(PolicyConditioncondition);  }};IPAddress类取自System.Net名字空间。它支持v4和v6IPAddress。然而,对于一个特定的条件,在一个地址家族的上下文中必须解释所有条件字段。换言之,如果源地址是v4地址,但是目标地址是v6地址,则会引发运行时异常。属性名字Layer描述应用该条件的具体IP层。可能的IP层如下·InboundIPPacket该层正好在IP头部被分析之后且在IP分组上发生任一其它头部处理之前被调用。IPSec描述和重新组合在这一点上不会出现。·OutboundIPPacket该层正好在发送分组被评估来分段之前被调用。在调用该层时,所有IP头部处理都已完成,并且所有扩展头部在适当的位置。IPSec验证和加密在这一时刻已发生。·InboundIPFragment该层对每一接收到的片段调用。所接收的未分段的分组将不对该层呼出。·OutboundIPFragment该层对每一发送和转发分段调用。如果发送IP分组未分段,则它不对该层呼出。·IPForward该层对每一转发的分组调用。访问权限读/写属性名字SourceAddress描述该值用于匹配IP头部中的源地址字段。访问权限读/写属性名字DestinationAddress描述该值用于匹配IP头部中的目标地址字段。访问权限读/写属性名字Protocol描述该值用于匹配IP头部中的协议字段。访问权限读/写属性名字PacketLength描述该值用于匹配IP头部中的分组长度字段。访问权限读/写属性名字NetworkInterface描述指定在其上匹配该条件的网络接口。如果层属性被设为IPForward,则当规则方向被设为Inbound时,它仅匹配转发分组的接收接口,且当规则方向被设为Outbound时,它仅匹配输出接口。访问权限读/写System.Firewall.Policy.TransportConditionnamespaceSystem.Firewall.Policy{  publicabstractclassTransportConditionPolicyCondition  {  publicenumTransportLayer  Inbound,  Outbound  };  //以下是通过上下文在传输层上可用的条件  PublicTransportLayerTransportLayer{get{}set{}}  publicIPAddressValueSourceAddress{get{}set{}}  publicIPAddressValueDestinationAddress{get{}set{}}  publicByteValueProtocol{get{}set{}} //可以有更多的条件由防火墙平台来展现 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{}}  //可以有更多的条件由防火墙平台来展现  publicTCPCondition();  publicTCPCondition(TransportLayerlayer,IPAddressValue  srcAddr,IPAddressValuedstAddr,UInt16ValuesrcPort,  UInt16ValuedstPort);publicoverrideboolEquals(PolicyConditionval);publicoverrideboolIntersects(PolicyCoinditionval);publicoverriboolContains(PolicyConditionval);}publicclassICMPConditionTransportCondition{  publicByteValueICMPType{get{}set{}}  publicByteValueICMPCode{get{}set{}}  //可以有更多的条件由防火墙平台来展现  publicICMPCondition();  publicICMPCondition(TransportLayerlayer,IPAddressValuesrcAddr,IPAddressValuedstAddr,ByteValueicmpType,icmpCode);publicoverrideboolEquals(PolicyConditionval);publicoverrideboolIntersects(PolicyConditionval);publicoverrideboolContains(PolicyConditionval);}<!--SIPO<DPn="25">--><dpn="d25"/>};ICMPv6定义了不同于ICMPv4的ICMP类型和代码。源和目标地址的地址家族确定ICMPConditon是被解释为ICMPv4还是v6。属性名字SourcePort描述该值用于匹配TCP/UDP头部中的源端口字段。访问权限读/写属性名字DestinationPort描述该值用于匹配TCP/UDP头部中的目标端口字段。访问权限读/写属性名字Flags描述该值用于匹配TCP标志字段中的对应位FIN、SYN、RST、PSH、ACK、URG访问权限读/写属性名字ICMPType描述该值用于匹配ICMP头部中的类型字段。访问权限读/写属性名字ICMPCode描述该值用于匹配ICMP头部中的代码字段。访问权限读/写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匹配进入和输出分组IPSec上下文。检查假定在IPSec验证完成后即发生。如果关联的行动是Permit,则建立IPSecSA并保护通信。如果要采取的行动是Deny,则不创建SA,并且IPSec主模式协商失败。System.Firewall.Policy.ApplicationConditionnamespaceSystem.Firewall.Policy{  [flags]  publicenumNetworkAccessFlag  {  Client=1,  Server=2,  ClientAndServer=3,  Multicast=4  }  publicabstractclassApplicationConditionPolicyCondition  {  publicApplicationIDValueApplication{get{}set{}}  publicIPrincipalValueLocalUser{get{}set{}}  //可以有更多的条件由防火墙平台来展现  publicApplicationCondition();  publicApplicationCondition(ApplicationIDValueapp,IPrincipalValueluser);  }<!--SIPO<DPn="27">--><dpn="d27"/>publicclassAuthorizationConditionApplicationCondition{  //以下条件与通过诸如连接或倾听等winsock调用向下传递的值  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{}}  //如果协议不是TCP/UDP,则假定它是原始套接字情况  publicResourceTypeResourceType{get{}set{}}  publicUInt16ValueResourceValue{get{}set{}}  publicPromiscuousModePMode{get{}set{}}}}ApplicationCondition匹配由应用层实施展现的条件。这是提供基于应用程序和用户的防火墙政策的主引擎。属性名字Application描述这匹配由该应用程序生成/接收的分组。访问权限读/写属性名字LocalUser描述这匹配由该用户生成/接收的分组访问权限读/写展示CSystem.Firewall.Policy.PolicyActionnamespaceSystem.Firewall.Policy{  publicabstractclassPolicyActionPolicyObject  {  //属性  publicLoggingConfigLoggingConfig{get{}}  //抽象方法  publicabstractboolIsCompatible(PolicyConditioncondition);  }}PolicyAction是担当所有特定行动类的根类的抽象类。是否记录分组通过指定非空记录配置对象来隐含。方法方法名字IsCompatible返回类型Bool描述如果该行动可在与条件相同的层上发生,则返回真。否则返回假。参数Condition-将对照被检查的行动的条件。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将以下行动情形模型化·准许允许匹配相关联的PolicyCondition对象的分组。PolicyActionaction=FilterAction.Permit;·拒绝丢弃匹配相关联的PolicyCondition对象的分组。PolicyActionaction=FilterAction.Deny;·准许和记录允许并记录匹配相关联的PolicyCondition对象的分组。newFilterAction(FilterAction.FilterActionType.Permit,logging);·拒绝和记录丢弃并记录匹配相关联的PolicyCondition对象的分组。newFilterAction(FilterAction.FilterActionType.Deny,logging);·仅记录记录匹配相关联的PolicyCondition对象的分组。newFilterAction(FilterAction.FilterActionType.LogOnly,logging);请注意,由于要求防火墙平台中的所有层至少支持Permit、Deny和Log行动,FilterAction可与任一PolicyCondition相关联。System.Firewall.Poliey.InstantiationTemplatenamespaceSystem.Firewall.Policy{  publicabstractclassInstantiationTemplatePolicyRule  {   protectedInstantiationTemplate(boolisClientInstantiation);  publicboolIsClientInstantiation{get{}};  }  publicclassTransportTemplateInstantiationTemplate<!--SIPO<DPn="31">--><dpn="d31"/>{publicTransportTemplate{TransportLayerlayer,FitlerActionaction);publicTransportTemplate{TransportLayerlayer,FilterActionaction,  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,FilterActionaction);  publicRemoteIdentityValueRemoteID{get{}}  publicFilterActionAction{get{}}  }}例示模板可以是以下模板的任一个-TransportTemplate要在进入或输出的传输层上例示的模板。-IPSecTemplate要在IPSec层上例示的IPSec模板。-IPSecAuthorizationTemplate要在IPSec授权层例示的授权模板。上述类的每一个都提供两个构造函数。第一个在当关联的应用程序规则匹配来执行客户机例示时被例示。当客户机例示发生时,全5元组可用于例示模板。在另一方面,如果它不是客户机例示,则仅本地3元素组,即,本地地址、协议和本地端口可用。这是第二个构造函数所使用之处。因此隐含地,第一个构造函数将基础InstantiationTemplate类中的isClientInstantiation标志设为真,而第二个构造函数将其设为假。客户机例示模板仅在全5元组可用时被例示,而服务器例示模板仅在当本地3元组可用时被例示。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情形如下·准许允许匹配关联的ApplicationCondition对象的分组。·拒绝丢弃匹配关联的ApplicationCondition对象的分组。·询问当分组匹配关联的ApplicationCondition对象时,询问用户的决策。·仅记录记录匹配关联的ApplicationCondition对象的分组。方法方法名字GetTemplates返回类型InstantiateTemplateCollection描述当该应用程序行动发生时返回要创建的例示模板的列表。参数Condition-对照其检查行动的条件。System.Firewall.Policy.CalloutActionnamespaceSystem.Firewall.Policy{  publicabstractclassCalloutActionPolicyAction  {  //构造函数  protectedCalloutAction(Calloutobj,CalloutContextcxt);  //属性  publicCalloutCalloutModule{get{}}  publicCalloutContextContext{get{}set{}}  publicoverrideboolIsCompatible(PolicyConditioncondition);  }};CalloutAction将平台提供的呼出扩展模型化。当匹配关联的条件时,呼出行动指定平台需要调用的呼出扩展。它用作提供诸如入侵检测、父母控制等额外安全功能的扩展机制。属性名字CalloutModule描述当匹配关联的条件时调用的呼出模块。访问权限只读属性名字CalloutContext描述当被调用时传递到呼出模块的呼出专用上下文信息。访问权限读/写System.Firewall.Policy.IPSecActionnamespaceSystem.Firewall.Policy{  publicclassIPSecProposalCalloutContext  {  publicIPSecProposal();  publicboolIsPFSRequired{get{}set{}}  //指示当密钥协商失败时是否可用普通文字(软SA)发送的标志  publicboolIsAuthenticationRequired{get{}set{}}  publicboolIsNATTraversalEnabled{get{}set{}}  publicHashAlgorithmAHTransform{get{}set{}}  publicHashAlgorithmESPIntegrityTransform{get{}set{}}  publicCiperAlgorithmESPCiperTransform{get{}set{}}  publicuint32MaxLifetimeSeconds{get{}set{}}  publicuint32MaxLifetimeKilobytes{get{}set{}}  }  publicclassIPSecActionCalloutAction  {  //构造函数  //用对IPSec呼出模块的Callout对象和对上下文为空来调用基础构造函数  PublicIPSecAction();  PublicIPSecAction(IPSecProposalctx);  publicIPSecProposalContext{get{}set{}}  }};IPSecAction触发IPSec呼出以设置匹配分组中的安全上下文,使得该分组可由IPSec驱动程序进一步处理。它也指定用于保护网络通信的实际的IPSec配置,包括AH或ESP或两者,及它们对应的转换设置。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);  //将高、中、低提议预定义为静态变量  publicCipherAlgorithmCiperAlgorithm{get{}}  publicHashAlgorithmHashAlgorithm{get{}}  publicuint32MaxLifetimeSeconds{get{}set{}}  publicuint32MaxLifetimeKilobytes{get{}set{}}  publicuint32MaxQuickModeNumber{get{}set{}}  }  publicclassIKEActionPolicyAction  {  publicIKEAction(IKEAuthenticationMethodmethod);  //验证方法预共享密钥、Kerberos、证书(输出证书、输入证书)  publicIKEAuthenticationMethodAuthenticationMethod{get{}}  //对算法等  publicIKEProposalProposal{get{}set{}}  }};IKEAction定义执行IKE密钥协商协议的验证方法,可以是预共享密钥、Kerberos或证书,以及验证算法的提议。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选择指定的密钥模块来执行密钥协商交换。当指定了一个以上时,将顺序尝试列出每一密钥模块直到它们中的一个成功或所有都失败。方法名字GeyKeyingModules返回类型KeyingModuleCollection描述返回当该行动发生时将调用的一个或多个密钥模块。如果列出了一个以上密钥模块,则以指定的顺序试验它们直到它们的其中一个成功或所有都失败。参数无展示DSystem.firewall.Policy.ApplicationSettingnamespacesystem.Firewall.Policy{  publicclassApplicationSetting  {  //安全级别和可信联系人默认地被设为从GetDefaultSecuritvLevel(user)返回的值和  //DefaultTrustedContacts.  publicApplicaitonSetting(ApplicationIDapp,IPrincipaluser);  publicApplicationIDApplication{get{}}  publicIPrincipalUser{get{}}  publicSecurityLevelSecurityLevel{get{}set{}}  publicApplicationRuleCollectionGetRules();  }}属性参数Application描述该应用程序设置所相关的应用程序访问权限只读属性参数User描述对其指定该应用程序设置的用户。连同Application字段一起担当应用程序设置的唯一密钥。访问权限只读属性参数SecurityLevel描述当用户使用该应用程序时的安全级别访问权限读写方法名字GetRules参数Application-向其应用该安全级别的应用程序。User-向其应用该安全级别的用户。Contacts-当应用该安全级别时所使用的远程联系人的列表。返回ApplicationRuleCollection描述获取实施设置“当用户使用该应用程序时用这些远程联系人使用该安全级别”的应用程序规则的列表。System.Firewall.Policy.SecurityLevelnamespaceSystem.Firewall.Policy{  publicclassSecurityLevelPolicyobject  {  protectedApplicationRuleCollectionruleTemplates;  publicSecurityLevel(ApplicationRuleCollectionruleTemplates};  publicApplicationRuleCollectionTemplates{get{}}  }}属性参数Templates描述组成该安全级别的应用程序规则模板的列表。访问权限只读安全级别中的远程实体的引用确定了IPSec主模式密钥交换的设置。例如,如果可信联系人是X509证书,则该联系人的CA证书将作为IKE协商中使用的可信根证书来处理。为安全原因,证书、预共享密钥和其它凭证将不由PFW服务储存。相反它们应当来自专用窗口安全存储,如证书的安全证书存储。展示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不能被例示。它跟随单独的模式。  publicstaticreadonlyFirewallFWService=newFirewall();  //属性  publicFirewallModeFirewallMode{get{}set{}}  publicLogSettingsLogSettings{get{}set{}}  //方法  publicRuleEditorAqireRuleEditor(PolicyProviderTypeprovider);  publicRuleExplorerAquireRuleExplorer(PolicyProviderTypeprovider);  publicSettingEditorAquireApplicationSettingEditor(EventFilterfilter);  publicvoidClearLog();  }}属性属性参数FirewallMode描述个人防火墙服务的当前过滤模式。它可以是以下值的任一个·BlockAll个人防火墙服务正在运行,它阻断所有的通信·PermitAll个人防火墙服务正在运行,它允许所有的通信·Filtering个人防火墙服务正在运行,它实际实施用户定义的应用程序设置访问权限只读属性参数LogSettings描述指定记录设置的全局设置,包括要记录的内容、记录限制和溢出行为访问权限读写方法方法名字AquireRuleEditor参数Provider-返回的政策编辑器所担当的类型政策提供者。返回RuleEditor-将通过其管理所有高级政策的对象引用。当前调用线程的主体将用于准许检查。因此在“runas”情况下,需要在调用该方法来创建RuleEditor之前作出模仿。如果当前调用者不具有足够的特权,将引发特权不足异常。描述用于直接操纵政策规则的政策提供者接口,即,系统中的规则的高级察看,包括储存在持久存储和插入到内核驱动程序中的规则。方法名字AcquireRuleExplorer参数Provider-返回的政策探查器将担当的类型政策提供者。返回RuleExplorer-可通过其用足够的特权检索来自其它提供者的规则的对象引用。描述创建规则探查器对象用于察看当前在平台中由特定的政策提供者实施的规则。方法名字AcquireSettingEditor参数Provider-返回的防火墙设置编辑器将担当的类型政策提供者。返回SettingEditor-通过其管理所有简单的应用程序设置的对象引用。当前调用线程的主体将用于准许检查。因此在“runas”情况下,需要在调用该方法之前作出模仿。如果当前的调用者没有足够的特权,将引发特权不足异常。描述创建编辑器对象用于按照应用程序设置管理规则的简单察看。方法名字ClearLog参数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;  }}属性属性参数AppplicationSettings描述储存在系统中的所有应用程序防火墙。规则访问权限只读属性参数DefauleApplicationSetting描述当未指定应用程序设置时所应用的默认防火墙。访问权限读写属性参数DefaultWindowsServiceSetting描述当未指定窗口服务的防火墙设置时所应用的默认防火墙设置。访问权限读写属性参数TrustedZone描述当应用程序设置未指定其自己的可信IP地址时所使用的默认可信IP地址。访问权限读写属性参数SecureZone描述当应用程序设置未指定其自己的可信的已验证的远程身份时所使用的默认可信的已验证的远程身份列表。访问权限读写属性参数IsICMPAlloed描述如果为真,则允许所有的ICMP消息,例如栈将响应查验并生成ICMP错误。否则,它被阻断。访问权限读写方法方法名字SetDefauleSecurityLevel参数User-Level-返回Void描述为指定的用户设置默认安全级别。方法名字GetSecurityLevel参数User-返回Void描述获取对指定用户的默认安全级别System.Firewall.RuleExplorerRuleExplorer对象给予防火墙客户机当前在防火墙平台中的所有政策的只读察看(尽管要经受特权检查)。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  {  //构造函数  //没有公用构造函数。RuleExplorer对象只能通过在PolicyEngine上调用CreateExplorer  //方法来创建  PrivateRuleExplorer();  //方法  publicRuleReferenceCollectionGetRules();  //事件  publiceventRuleChangedDelegateRuleChangedEvent;  //属性  publicEventFilterEventFilter{get{}}  }};方法方法名字GetRules返回类型RuleReferenceCollection描述获取当前在防火墙平台中实施的规则。该操作在一个事务中完成,即它是具有正确的隔离级别的原子操作。参数无事件属性名字RuleChangedEvent描述这用于RuleExplorer客户机在它所察看的政策改变时接收通知。参数Source-所察看的政策改变的特定RuleExplorer对象Args-由以RuleReferenceCollection对象形式改变的政策列表组成的RuleChangedEventArgsSystem.Firewall.RuleEditornamespaceSystem.Firewall{  publicclassRuleEditor  {  //构造函数 //无公用构造函数。RuleEditor对象只能通过在Firewall对象上调用AquireRuleEditor  //方法来创建  //方法  //以下三个方法被作为一个事务来调用。因此它们的每一个是ACID操作。  publicRuleReferenceAddRule(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返回类型RuleReference描述向政策引擎压下一组政策,它进而将它们插入到内核驱动程序中。参数Policy-要插入到防火墙平台驱动程序中的新政策异常ArgumentException当试图添加无效PolicyRule对象时PrivilegeException当试图添加没有足够特权的规则时TransactionException当当前事务由于事务超时被中止时方法名字RemoveRule返回类型Void描写从防火墙平台实施移除指定的政策参数Policy-要从防火墙平台驱动程序移除的政策异常PrivilegeException当试图移除没有足够特权的规则时TransactionException在当前事务由于事务超时被中止时方法名字UpdateRule返回类型void描述改变先前添加的指定政策参数Policy-需要改变的政策异常ArgumentException当试图设置无效PolicyRule对象时PrivilegeException当试图添加没有足够特权的规则时TransactionException在当前事务由于事务超时被中止时方法名字RemoveAll返回类型void描述移除该政策提供者创建的所有规则。它是原子操作,即,它在一个事务内完成。参数Policy-需要改变的政策异常PrivilegeException当试图添加没有足够特权的规则时。TransactionException在当前事务由于事务超时或事务失败而被中止时。属性属性名字ProrityClass描述该政策提供者所处于的优先级类别访问权限只读System.Firewall.PolicyTransactionnamespaceSystem.Firewall{  publicenumIsolationLevel  {  ReadUncommitted  ReadCommitted;  RepeatableRead,  Serializable  }publicclassPolicyTransaction{//构造函数<!--SIPO<DPn="49">--><dpn="d49"/>//PolicyTransaction对象只能通过在RuleEditor对象上调用BeginTransaction来创建。publicvoidCommit();  publicvoidAbort();  //属性publicIsolationLevelIsolationLevel{get{}}  }}当前防火墙平台仅支持提交用于政策事务的一个阶段。对于诸如读/添加/更新/移除规则等每一事务操作,某些锁被保持直到事务结束,即,提交或中止。考虑令多个探查器和编辑器试图并行地访问政策引擎是不常见的这一事实,当前应用用于全局引擎锁定的粗粒度并发控制模式。因此,当前仅支持隔离级别Serializable。为避免死锁或资源不足,每一事务与一超时间隔相关联。如果存在任何其它的事务等候当前事务完成,则如果当前事务不在超时间隔到期之前结束,则它将由平台中止。如果事务由于超时而被中止,则如同在RuleEditor上调用AddRule或在PolicyTransaction上调用Commit那样操作的下一事务将引发TransactionException。当调用政策操作时,如在RuleExplorer对象上调用GetRules或在RuleEditor上调用UpdateRule时,完成规则确认和访问准许检查。但是改变在它们所处于的事务被提交之前不生效。政策引擎将所有的改变作为一批并原子地将它们应用到内核模型防火墙驱动程序。方法方法名字Commit返回类型Void描述执行该政策事务。参数无异常TransactionException当该政策由于诸如存储器用尽等某些意外的原因而提交失败时。方法名字Abort返回类型void描述中止指定的事务参数无异常TransactionException当平台无法还原由该事务作出的改变时。属性属性名字IsolationLevel描述该交易对象所处的隔离级别。有四个可能的隔离级别·ReadUncommitted可从其它事务察看一个事务中未提交的改变。·ReadCommitted仅可在改变被提交之后可从其它事务中察看一个事务中的改变。·RepeatableRead在这一隔离级别,确保所读的任何规则在整个事务过程中不改变,但是其它事务可一新规则,它在返回这一事务中随后的读中返回。·Serializable所有并发的事务仅以与每一事务逐个执行所产生的相同的效果的方式交互。当前的防火墙平台仅支持Serializable隔离级别。对其它级别的支持可在将来添加。访问权限读/写System.Firewall.RuleReference每一RuleReference具有拥有它的一个对应的RuleEditor。仅该RuleEditor能够修改该对象。namespaceSystem.Firewall{<!--SIPO<DPn="51">--><dpn="d51"/>publicenumEnforcementStatus{  Active=1,  Disabled=2,  InTransaction=3,  Invalid=4}publicclassPolicyProviderInfo{//无公用构造函数。作为RuleReference的属性提供。//属性  publicStringName{get{}}  publicIPrincipalPrincipal{get{}}  publicPriorityClassPiority{get{}}}publicclassRuleReference{//属性  publicPolicyRulePolicySpec{get{}set{}}  publicPolicyProviderInfoProviderInfo{get{}}  publicEnforcementStatusStatus{get{}}  }};属性属性名字Spec描述由底层防火墙平台组件正在实施或将要实施的政策的实际内容。访问权限读/写属性名字Status描述该政策的实施状态,它可以为下列状态之一-Active成功地提交给政策管理器,并置于活动列表中,并且正在被实施-Disabled成功地提交给政策管理器,但是由于完全被其它高优先级政策阻断,或由于未满足位置或时间约束,它当前在禁用规则列表中。-InTransaction有效的政策规范,并且它在要提交给政策管理器的事务中。-Invalid无效的政策规范,并且未提交。访问权限只读属性名字ProviderInfo描述关于拥有该政策的提供者的信息访问权限只读权利要求1.一种为应用程序设置防火墙政策的方法,其特征在于,它包括接收包括关于一应用程序的信息的第一参数;接收包括关于所述应用程序的用户的信息的第二参数;访问涉及所述第一和第二参数的安全级别信息;以及使用所述安全级别信息为所述应用程序和所述用户设置一防火墙政策。2.如权利要求1所述的方法,其特征在于,访问安全级别信息包括调用一GetRules方法以返回对所述应用程序和用户可用的规则模板。3.如权利要求1所述的方法,其特征在于,它还包括接收关于可信联系人的第三参数,并且其中,设置防火墙政策包括使用所述安全级别信息为所述应用程序、所述用户和所述可信联系人设置所述防火墙政策。4.如权利要求1所述的方法,其特征在于,设置所述防火墙政策包括为所述应用程序设置一默认设置;以及为所述用户选择所述默认设置。5.一种在其上储存了一数据结构的计算机可读媒质,其特征在于,所述数据结构包括表示一应用程序的第一数据字段;表示所述应用程序的用户的第二数据字段;以及表示对使用所述应用程序的用户可用的安全设置的第三数据字段。6.如权利要求5所述的计算机可读媒质,其特征在于,所述数据结构包括一数据对象。7.一种用于管理计算机上的服务的对象模型,其特征在于,所述对象模型包括一政策对象模型,用于指定所述服务所支持的一个或多个政策;以及一政策引擎平台,用于与所述服务的所述一个或多个政策、以及实际执行所述服务的至少一个组件交互,并向所述至少一个组件提供所述一个或多个政策。8.如权利要求7所述的对象模型,其特征在于,所述政策引擎平台包括一规则编辑器,用于依照所述政策对象模型添加额外的政策。9.如权利要求8所述的对象模型,其特征在于,所述规则编辑器也被配置成删除政策。10.如权利要求8所述的对象模型,其特征在于,所述规则编辑器也被配置成编辑政策。11.如权利要求7所述的对象模型,其特征在于,所述政策引擎平台包括一设置编辑器,它被配置成基于一应用程序和用户组合自动生成一政策。12.如权利要求11所述的对象模型,其特征在于,所述设置编辑器生成多个政策,并且它还被配置成准许用户从所述多个政策中选择。13.如权利要求12所述的对象模型,其特征在于,所述设置编辑器还被配置成准许将所述多个政策之一设置为默认政策。14.如权利要求7所述的对象模型,其特征在于,所述政策引擎平台包括一规则探查器,用于提供所述一个或多个政策的察看。15.如权利要求7所述的对象模型,其特征在于,所述政策对象模型包括一可用于生成政策的PolicyRule对象,所述PolicyRule对象包括一条件属性和一行动属性,其中,由所述PolicyRule对象生成的政策被配置成响应于满足所述条件属性中的一条件,执行所述行动属性中的一行动。16.如权利要求7所述的对象模型,其特征在于,所述服务是防火墙服务。17.如权利要求7所述的对象模型,其特征在于,所述政策引擎平台被配置成如果请求者未被授权,则拒绝向所述组件提供所述一个或多个政策。18.如权利要求17所述的对象模型,其特征在于,确定一请求者是否被授权包括将所述请求的提供者等级与一准许等级相比较,并且如果所述请求的提供者等级不满足或超过所述准许等级,则拒绝所述请求者。19.一种管理计算机上的服务的方法,其特征在于,所述方法包括通过一政策对象模型指定所述服务所支持的一个或多个政策;通过一政策引擎平台与所述服务的所述一个或多个政策、以及实际执行所述服务的至少一个组件交互;以及通过所述政策引擎平台向所述至少一个组件提供所述一个或多个政策。20.如权利要求19所述的方法,其特征在于,它还包括基于一应用程序和用户组合自动生成一政策。21.如权利要求20所述的方法,其特征在于,它还包括生成多个政策,并准许用户从所述多个政策中选择。22.如权利要求21所述的方法,其特征在于,它还包括将所述多个政策之一设置为默认政策。23.如权利要求22所述的方法,其特征在于,它还包括在提供之前授权用户。24.一种用于管理计算机上的防火墙服务的对象模型,其特征在于,所述对象模型包括一政策对象模型,用于指定所述防火墙服务所支持的一个或多个政策,所述政策模型包括一可用于生成政策的PolicyRule对象,所述PolicyRule对象包括一条件属性和一行动属性,其中,由所述PolicyRule对象生成的政策被配置成响应于满足所述条件属性中的一条件,执行所述行动属性中的一行动。25.如权利要求24所述的对象模型,其特征在于,它还包括从所述PolicyRule对象导出的一IPSecRule,所述IPSecRule被配置成当匹配一IPSec条件时触发一IPSec呼出,及指示用于保护涉及所述呼出的通信安全的配置参数。26.如权利要求25所述的对象模型,其特征在于,所述IPSecRule评估一标准5元组,以确定是否满足一条件。27.如权利要求24所述的对象模型,其特征在于,它还包括一从所述PolicyRule对象导出的KeyingModuleRule,所述KeyingModuleRule被配置成当不存在对远程对等体的安全通道时选择哪一密钥协商模块来使用。28.如权利要求27所述的对象模型,其特征在于,所述KeyingModuleRule评估一标准5元组,以确定是否满足一条件。29.如权利要求24所述的对象模型,其特征在于,它还包括一从所述PolicyRule模型导出的IKERule,它被配置成指定用于实现因特网密钥交换密钥协商协议的参数。30.如权利要求29所述的对象模型,其特征在于,所述IKERule评估一本地地址和一远程地址,以确定是否满足一条件。31.如权利要求29所述的对象模型,其特征在于,所述IKERule包括一IKEAction行动属性,它定义用于执行因特网密钥交换密钥协商协议的验证方法。全文摘要提供了一种对象模型作为用于管理诸如防火墙服务等网络服务的通用框架。计算机的用户或管理员可使用该对象模型来管理并配置防火墙服务。该对象模型使用户和/或管理员无需处理涉及配置服务的许多可能的问题。该对象模型包括两个主要的名字空间一政策引擎平台和一政策对象模型。该政策引擎平台是用于与对该服务的政策和实际执行该服务的内核组件进行交互的中心点。该政策对象模型用于指定服务所支持的政策。文档编号H04L29/06GK1630300SQ20041010200公开日2005年6月22日申请日期2004年12月17日优先权日2003年12月19日发明者A·加弗里莱斯库,钱挺申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1