著录项信息
| 专利名称 | 一种改进防火墙性能的方法 |
| 申请号 | CN02104228.4 | 申请日期 | 2002-02-20 |
| 法律状态 | 权利终止 | 申报国家 | 中国 |
| 公开/公告日 | 2003-09-03 | 公开/公告号 | CN1439985 |
| 优先权 | 暂无 | 优先权号 | 暂无 |
| 主分类号 | 暂无 | IPC分类号 | 暂无查看分类表>
|
| 申请人 | 华北计算机系统工程研究所 | 申请人地址 | 北京市海淀区清华东路25号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
| 权利人 | 华北计算机系统工程研究所 | 当前权利人 | 华北计算机系统工程研究所 |
| 发明人 | 傅一帆 |
| 代理机构 | 北京万科园知识产权代理有限责任公司 | 代理人 | 张亚军;陈宪忠 |
摘要
本发明涉及计算机网络系统中防火墙安全模型,通过对防火墙多维空间模型和快速搜索方法的运用,提高防火墙的转发效率。应用了多维空间模型产生安全规则的产生方法如下:1)用户输入安全策略步骤;2)对用户输入的安全规则进行空间划分、语法检查、语义分析的预处理步骤;3)对经过预处理的规则表进行编译、优化,生成安全策略语义结构树,并下装到核心中去的生成步骤。4)对按上述方法生成的防火墙安全策略进行查询的方法。其中步骤4)可如下操作:下装运行后,防火墙包过滤模块截获每一个经过防火墙主机的数据包,抽取数据包中的信息(ip源地址、ip目的地址、源端口号、服务端口号),甚至应用层中的数据,根据这些信息在所述的安全规则多维空间中查找,得到相应的访问状态位,进而采取相应的行动。
技术领域\n本发明涉及计算机网络系统中防火墙安全模型,通过对防火墙多维空 间模型和快速搜索方法的运用,提高防火墙的转发效率。\n背景技术\n现有的防火墙包过滤规则一般是根据一些参数如ip源地址、ip目的 地址、服务端口号、用户标示、时间等采取行动,如接收、丢弃,或者网 络地址转换等。防火墙把规则按顺序存储,在过滤数据包时,根据数据 包中提取的包头信息(ip源地址,ip目的地址,源端口,目的端口)与 防火墙的n条规则逐一对比,直到找到某条规则与此数据包中的信息匹配, 此时可应用该条规则,采取某种行动,这种方法对于查找过程没有经过优 化,平均查找长度为(n+1)/2。现有防火墙存在如下一些缺点:顺序查 找效率慢,规则数增多时,转发效率下降;查找规则复杂度为o(N)(N为 简单规则条数)等等。\n发明内容\n本发明通过一种改进防火墙安全规则组织的方法,提高防火墙安全规 则处理速度和吞吐率。本发明的方法将上述传统参数在多维空间上表示, 而行动可抽象成在多维空间上的函数映射。Action=f(x1,x2,…….,xn)其 中x1,x2,….,xn为在多维空间上表示的自变量,action为函数值,用以 表示一组特定的行动。空间模型方法和传统方法规则处理能力比较查找规 则复杂度为o(logN)(N为简单规则条数)。本发明重新组织包过滤规则, 形成一棵树;语义结构树把防火墙规则在多维空间中展开,使得总的规则 查找计算量大幅下降,计算复杂度降为o(logN)。\n附图说明\n图1是一种典型的网络环境\n图2是对根据本发明所形成的查找规则进行查找的方法的流程图\n具体实施方式\n下面结合具体实施例及相关附图对本发明进行详细描述。应用了多维 空间模型的安全规则树的产生方法如下:1)用户输入安全策略步骤;2) 对用户输入的安全规则进行空间划分、语法检查、语义分析的预处理步骤。 3)对经过预处理的规则表进行编译、优化,生成安全策略语义结构树, 并下装到核心中去的生成步骤。4)对按上述方法生成的防火墙安全策略 进行查询的步骤。图1中的网络环境是配置了cygergate2.0的一个典型 网络应用环境,内部网用户可以访问DMZ区的dns服务、www服务,可以 访问internet;internet上的用户可以访问DMZ区提供的服务。在防火 墙主机上对外部网有三个合法的IP地址,分别是用于用户对外访问的 159.226.232.254,用于域名服务的159.226.232.73和用作web服务的 159.226.232.116,对内部网和DMZ各有一个局部IP地址,分别是 172.16.1.222(内部网),172.16.9.222(DMZ)。一般情况下,图1的 示例中允许以下几种访问:\n1.外部网访问DMZ的服务器,具体为Internet的用户可以访问websrv 提供的http服务;\n2.内部网用户访问外部网,具体为内部网的普通用户可以访问 Internet提供的某些服务,\n3.通常我们并不使用IP地址直接访问,所以允许内部网访问DMZ的 dnssrv提供的域名服务,也允许dnssrv和外部网的域名服务器互相访问。\n下面叙述在这样的网络环境下,怎样实施cygergate2.0防火墙的安 全规则多维空间模型。首先,用户输入安全规则:防火墙在进行包过滤之 前,用户首先对防火墙进行配置,内容包括网络对象,网口对象,规则表 的输入。网络对象是构成访问控制规则的最基本元素。我们给一段ip,或 者单个ip起个名字,便于用户记忆。例如服务器、普通主机、网段等。 防火墙就是根据这些最基本的元素,作为源或者目的来构成访问控制的规 则。可参见下图。\n 名称 接口 最小IP 最大IP net1 qfe0 1.0.0.1 9.255.255.254 net2 qfe0 11.0.0.1 126.255.255.254 net3 qfe0 128.0.0.1 172.15.255.254 net4 qfe0 172.32.0.1 192.167.255.254 net5 qfe0 192.169.0.1 223.255.255.254 名称 网络地址转换 转换后IP 接口 服务器IP地址 websrv 静态目的模式 172.16.9.94 Qfe2 159.226.232.116 名称 网络地址转 换 转换后IP 接口 服务器IP地址 Dnssrv 静态目的模 式 172.16.9.95 qfe2 159.226.232.73\n网口对象的配置是让用户设定防火墙上的接口的信息,主要包括搜索 防火墙的所有网卡信息,设置防火墙的内部网卡,外部网卡。可参见下图。 序号 接口名称 IP地址 位置 网关 名 1 qfe0 159.226.232.254 外部 gate 2 qfe1 172.16.1.222 内部 gate 3 qfe2 172.16.9.222 内部 gate\n规则表,规则表就是用户制定的访问控制规则的集合。可参见下图。\n第一条规则: 源地址 目的地 址 服务 动作 Net1 Net2 Net3 Net4 Net5 websrv http Accept\n根据用户的输入生成如下数据库:\n(1)网络对象管理数据库、(2)网口对象管理数据库、(3)规则表数 据库\n接着进行空间划分,它们将服务的端口号以及网络对象的IP地址划 分成没有交集的区域,存放在数据库里,经过空间划分后,网络对象和服 务已经被划分成互不相连的小块,它们存放在数据库中供下装函数使用。 空间划分的作用是为语法检查、语义分析做准备,尽量减少语法错误、语 义冲突、并且使编译过程简单化。\n用户输入控制规则时按照人的习惯,输入的规则会有重复,矛盾的现 象,输入模块把用户输入的规则进行预处理,得到一个语法上无错误、语 义上不矛盾的规则集合。因此,要进行语法语义检查,即规则预处理步骤。 检查是否出现下列情况:\n1.对规则的构成元素的检查:包括源和目的不能相同;规则必须含 有源、目的、服务;\n2.对多条规则之间的关系的检查:包括规则之间有语义冲突,则以 排在规则表前头的规则具有优先权的原则处理\n3.检查避免无效规则的出现:包括内部无效地址不经网络地址转换 不能访问外部。\n4.检查以使网络对象与实际的网络接口、网络地址、转换模式相符: 包括同一条规则内的源或目的应该具有相同的接口、网络地址、转换模式。\n每条规则要进入数据库必须经过这么多检查,当规则经过检测后就可 以正确的输入进入数据库了。\n若没有出现上述问题,则进入编译步骤,生成规则树,所述的规则树 在结构上共有三级:Snet、Dnet、Port。规则树的作用是使包过滤模块在 逐级查完规则树的三级结构后将得到应触发的行动类型的信息。生成规则 树的语义分析具体步骤:\n1.从规则表数据库中检索出所有的id∈行动编号的规则,将这些规则 中的Snet节点生成一个Snet链表,链表中的每个节点都含有id、规则编 号、网络对象编号信息。\n2.同理,从规则表数据库中检索出所有id∈行动编号的所有规则的 Dnet节点,生成一个Dnet链表,链表中的每个节点都含有id、规则编号、 网络对象编号信息。\n3.同理,从规则表数据库中检索出所有id∈行动编号的所有规则的 服务节点,生成一个服务链表,链表中的每个节点都含有id、规则编号信 息。\n4.从Snet链表的第一个节点开始,生成其Dnet链表,再生成其Dnet 链表中的第一个节点的服务链表,并将此服务链表生成平衡二叉树树,连 在Dnet节点上。则第一个Snet节点的第一个Dnet节点的树已生成。\n5.依次,再生成第一个Snet节点的第二个Dnet节点的树,直至第 一个Snet节点的最后一个Dnet节点的服务树生成,这时可将第一个Snet 节点的Dnet树生成,连在这第一个Snet节点上。\n6.类似于步骤4、5,接着处理第二个Snet节点。直至Snet链表中 所有Snet链表均处理完毕,则将此Snet链表生成平衡二叉树树。由此规 则树的三级结构已完成。只需将每一个服务节点的规则表查询结果中加载 网络地址转换信息。\n7.网络地址转换分析。可具体分成如下步骤:\n(a)在整个规则树的结构已全部生成后,遍历树中每一个Snet节点, 对每一个Snet节点依次处理加载网络地址转换信息。具体如下:\n读出每一个Snet的网络对象id(即网络对象编号),在网络对象数据 库中根据网络对象编号进行逐次查找,将得出所对应的几项信息:有效ip、 网卡编号、网络地址转换模式、网络地址转换后的ip、Ipsrc。\n(b)如果读出的一个网络对象编号对应的有效ip=1,即此Ipsrc为合 法地址,则不需经过网络地址转换。\n这时置该节点的网络地址转换模式=0/*0:needn’t网络地址转换*/;\n再根据网卡编号在网口对象管理表中查到相应的NIC;\n将这些NIC、网络地址转换模式、Ipsrc信息封装,遍历此Snet节点 下的每一个Dnet的每一个服务节点,将每一个服务节点上已加载的Action 信息连同以上的NIC、网络地址转换模式、Ipsrc信息,一同封装于 fg_RuleResult中,仍加载于每一个服务节点上。\n(c)如果读出的一个网络对象编号对应的有效ip=0,即此Ipsrc为局 部地址,读取其网络地址转换模式,这时网络地址转换模式的值有两种可 能1:hide(隐藏模式);2:static src(静态源模式);记录网络地址 转换后的ip(目前对于Hide模式的网络地址转换,转换后都只对应一个 合法IP),置IpAddr=网络地址转换后的ip;置网络地址转换模式=hide; 记录NIC;记录此Snet的Ipsrc。\n(d)接着遍历此Snet节点下的每一个Dnet节点,读出每一个Dnet 节点对应的网络对象编号。读出一个网络对象编号对应的有效ip,\n当有效ip=0,则对连在此Snet节点下的此Dnet节点的下一级服务节 点进行遍历,在每一个服务节点的规则表查询结果中将置其网络地址转换 模式=0(no网络地址转换);将其NIC置为网络对象编号的NIC,\n若有效ip=1(Ipdst为合法地址),根据这个网络对象编号的值查出 其有效ip和网络地址转换模式,记录网络地址转换模式,则在网口对象 管理表中继续查出其NIC和location,记录NIC,\n(1)若location=0(此Ipdst绑定在内部网口上),则查看已记录的 Dnet节点的网络地址转换模式,(a)若网络地址转换模式=0(no网络地 址转换)意味着此Ipdst是放在内部的合法IP,不需转换,则置其网络地 址转换模式=0(no网络地址转换);置其NIC为已记录的Snet的NIC;封 装。(b)若网络地址转换模式=3(static dst),此Ipdst是放在内部网口 的DMZ,要按静态目的来转换,则置其网络地址转换模式=3;置其NIC为 此Dnet节点的NIC。封装。\n(2)若location=1(此Ipdst绑定在外部网口上),则查看在步步骤 c中已记录的NIC、网络地址转换模式、IpAddr,封装。\n(e)遍历此Dnet节点下每一个服务节点,并将已封装好的信息加载 在每一个服务节点的规则表查询结果中。\n下面对接和附图2详细描述规则树的查找过程。规则树的查找比较简 单,在过滤数据包时,从数据包中提取包头信息(ip源地址,ip目的地 址,源端口,目的端口),以ip源地址在规则树中查找,最终会得到一个 指针,以次为根节点,在子树空间中继续查找ip目的地址;同理,继续 查目的端口,最后得到一个规则树查询结果,据此,包过滤模块可采取相 应的行动。\n本发明可以在许多计算机或计算机组的大量不同操作系统下运行。本 发明阐述的是在防火墙系统上组织过滤规则,从而提高查找速度的一种改 进的通用的模型,对于依此模型在不同硬件平台上的实现,以及以此模型 为基础对此模型进行的进一步的扩充,都属本发明的权益范围之内。例如, 此种方法在windows平台,各种unix平台,包括solaris,linux, 平台上的实现,或者在不同硬件平台上的实现如pc机,sparc机。或者 对本方法的一些扩充,如规则中对用户,组的概念的支持、对认证的支持、 对审计的支持、记费的支持、对加密的支持、对vpn的支持。以及对以此 发明为基础建立起来的防火墙系统上的管理界面所作的修改;以及对规 则树本身某些方面所作的一些修改。都包含有本发明的权益。
法律信息
- 2012-04-25
未缴年费专利权终止
IPC(主分类): G06F 17/30
专利号: ZL 02104228.4
申请日: 2002.02.20
授权公告日: 2005.12.21
- 2005-12-21
- 2003-09-03
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有引用任何外部专利数据! |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |