一种改进防火墙性能的方法

文档序号:6481057阅读:186来源:国知局
专利名称:一种改进防火墙性能的方法
技术领域
本发明涉及计算机网络系统中防火墙安全模型,通过对防火墙多维空间模型和快速搜索方法的运用,提高防火墙的转发效率。
具体实施例方式
下面结合具体实施例及相关附图对本发明进行详细描述。应用了多维空间模型的安全规则树的产生方法如下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的示例中允许以下几种访问1.外部网访问DMZ的服务器,具体为Internet的用户可以访问websrv提供的http服务;2.内部网用户访问外部网,具体为内部网的普通用户可以访问Internet提供的某些服务,3.通常我们并不使用IP地址直接访问,所以允许内部网访问DMZ的dnssrv提供的域名服务,也允许dnssrv和外部网的域名服务器互相访问。
下面叙述在这样的网络环境下,怎样实施eygergate2.0防火墙的安全规则多维空间模型。首先,用户输入安全规则防火墙在进行包过滤之前,用户首先对防火墙进行配置,内容包括网络对象,网口对象,规则表的输入。网络对象是构成访问控制规则的最基本元素。我们给一段ip,或者单个ip起个名字,便于用户记忆。例如服务器、普通主机、网段等。防火墙就是根据这些最基本的元素,作为源或者目的来构成访问控制的规则。可参见下图。


网口对象的配置是让用户设定防火墙上的接口的信息,主要包括搜索防火墙的所有网卡信息,设置防火墙的内部网卡,外部网卡。可参见下图。

规则表,规则表就是用户制定的访问控制规则的集合。可参见下图。
第一条规则

根据用户的输入生成如下数据库(1)网络对象管理数据库、(2)网口对象管理数据库、(3)规则表数据库接着进行空间划分,它们将服务的端口号以及网络对象的IP地址划分成没有交集的区域,存放在数据库里,经过空间划分后,网络对象和服务已经被划分成互不相连的小块,它们存放在数据库中供下装函数使用。空间划分的作用是为语法检查、语义分析做准备,尽量减少语法错误、语义冲突、并且使编译过程简单化。
用户输入控制规则时按照人的习惯,输入的规则会有重复,矛盾的现象,输入模块把用户输入的规则进行预处理,得到一个语法上无错误、语义上不矛盾的规则集合。因此,要进行语法语义检查,即规则预处理步骤。检查是否出现下列情况1.对规则的构成元素的检查包括源和目的不能相同;规则必须含有源、目的、服务;2.对多条规则之间的关系的检查包括规则之间有语义冲突,则以排在规则表前头的规则具有优先权的原则处理3.检查避免无效规则的出现包括内部无效地址不经网络地址转换不能访问外部。
4.检查以使网络对象与实际的网络接口、网络地址、转换模式相符包括同一条规则内的源或目的应该具有相同的接口、网络地址、转换模式。
每条规则要进入数据库必须经过这么多检查,当规则经过检测后就可以正确的输入进入数据库了。
若没有出现上述问题,则进入编译步骤,生成规则树,所述的规则树在结构上共有三级Snet、Dnet、Port。规则树的作用是使包过滤模块在逐级查完规则树的三级结构后将得到应触发的行动类型的信息。生成规则树的语义分析具体步骤1.从规则表数据库中检索出所有的id∈行动编号的规则,将这些规则中的Snet节点生成一个Snet链表,链表中的每个节点都含有id、规则编号、网络对象编号信息。
2.同理,从规则表数据库中检索出所有id∈行动编号的所有规则的Dnet节点,生成一个Dnet链表,链表中的每个节点都含有id、规则编号、网络对象编号信息。
3.同理,从规则表数据库中检索出所有id∈行动编号的所有规则的服务节点,生成一个服务链表,链表中的每个节点都含有id、规则编号信息。
4.从Snet链表的第一个节点开始,生成其Dnet链表,再生成其Dnet链表中的第一个节点的服务链表,并将此服务链表生成平衡二叉树树,连在Dnet节点上。则第一个Snet节点的第一个Dnet节点的树已生成。
5.依次,再生成第一个Snet节点的第二个Dnet节点的树,直至第一个Snet节点的最后一个Dnet节点的服务树生成,这时可将第一个Snet节点的Dnet树生成,连在这第一个Snet节点上。
6.类似于步骤4、5,接着处理第二个Snet节点。直至Snet链表中所有Snet链表均处理完毕,则将此Snet链表生成平衡二叉树树。由此规则树的三级结构已完成。只需将每一个服务节点的规则表查询结果中加载网络地址转换信息。
7.网络地址转换分析。可具体分成如下步骤(a)在整个规则树的结构已全部生成后,遍历树中每一个Snet节点,对每一个Snet节点依次处理加载网络地址转换信息。具体如下读出每一个Snet的网络对象id(即网络对象编号),在网络对象数据库中根据网络对象编号进行逐次查找,将得出所对应的几项信息有效ip、网卡编号、网络地址转换模式、网络地址转换后的ip、Ipsrc。
(b)如果读出的一个网络对象编号对应的有效ip=1,即此Ipsrc为合法地址,则不需经过网络地址转换。
这时置该节点的网络地址转换模式=0/*0needn’t网络地址转换*/;再根据网卡编号在网口对象管理表中查到相应的NIC;将这些NIC、网络地址转换模式、Ipsrc信息封装,遍历此Snet节点下的每一个Dnet的每一个服务节点,将每一个服务节点上已加载的Action信息连同以上的NIC、网络地址转换模式、Ipsrc信息,一同封装于fg_RuleResult中,仍加载于每一个服务节点上。
(c)如果读出的一个网络对象编号对应的有效ip=0,即此Ipsrc为局部地址,读取其网络地址转换模式,这时网络地址转换模式的值有两种可能1hide(隐藏模式);2static src(静态源模式);记录网络地址转换后的ip(目前对于Hide模式的网络地址转换,转换后都只对应一个合法IP),置IpAddr=网络地址转换后的ip;置网络地址转换模式=hide;记录NIC;记录此Snet的Ipsrc。
(d)接着遍历此Snet节点下的每一个Dnet节点,读出每一个Dnet节点对应的网络对象编号。读出一个网络对象编号对应的有效ip,当有效ip=0,则对连在此Snet节点下的此Dnet节点的下一级服务节点进行遍历,在每一个服务节点的规则表查询结果中将置其网络地址转换模式=0(no网络地址转换);将其NIC置为网络对象编号的NIC,若有效ip=1(Ipdst为合法地址),根据这个网络对象编号的值查出其有效ip和网络地址转换模式,记录网络地址转换模式,则在网口对象管理表中继续查出其NIC和location,记录NIC,
(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。封装。
(2)若location=1(此Ipdst绑定在外部网口上),则查看在步步骤c中已记录的NIC、网络地址转换模式、IpAddr,封装。
(e)遍历此Dnet节点下每一个服务节点,并将已封装好的信息加载在每一个服务节点的规则表查询结果中。
下面对接和附图2详细描述规则树的查找过程。规则树的查找比较简单,在过滤数据包时,从数据包中提取包头信息(ip源地址,ip目的地址,源端口,目的端口),以ip源地址在规则树中查找,最终会得到一个指针,以次为根节点,在子树空间中继续查找ip目的地址;同理,继续查目的端口,最后得到一个规则树查询结果,据此,包过滤模块可采取相应的行动。
本发明可以在许多计算机或计算机组的大量不同操作系统下运行。本发明阐述的是在防火墙系统上组织过滤规则,从而提高查找速度的一种改进的通用的模型,对于依此模型在不同硬件平台上的实现,以及以此模型为基础对此模型进行的进一步的扩充,都属本发明的权益范围之内。例如,此种方法在windows平台,各种unix平台,包括solaris,linux,平台上的实现,或者在不同硬件平台上的实现如pc机,sparc机。或者对本方法的一些扩充,如规则中对用户,组的概念的支持、对认证的支持、对审计的支持、记费的支持、对加密的支持、对vpn的支持。以及对以此发明为基础建立起来的防火墙系统上的管理界面所作的修改;以及对规则树本身某些方面所作的一些修改。都包含有本发明的权益。
权利要求
1.一种改进防火墙性能的方法,包括步骤1)由用户输入安全策略步骤;2)对用户输入的安全规则进行空间划分、语法检查、语义分析的预处理步骤;3)对经过预处理的规则表进行编译、优化,生成相应的安全策略语义结构树,并下装到核心中去的步骤;4)对按上述方法生成的防火墙安全策略按照二叉树查找方法进行查询的步骤。
2.如权利要求1所述的改进防火墙性能的方法,其中步骤2)还进一步包括对规则中的的地址进行空间划分的步骤;
3.如权利要求1所述的改进防火墙安全性能的方法,其中步骤2)还进一步包括生成网络对象管理数据库、网口对象管理数据库、规则表数据库的过程;
4.如权利要求1所述的改进防火墙性能的方法,其中步骤2)还进一步包括对规则的构成元素的检查。
5.如权利要求1所述的改进防火墙安全性能的方法,其中步骤2)还进一步包括对多条规则之间的关系的检查。
6.如权利要求1所述的改进防火墙安全性能的方法,其中步骤2)还进一步包括检查避免无效规则的出现。
7.如权利要求1所述的改进防火墙安全性能的方法,其中步骤2)还进一步包括检查以使网络对象与实际的网络接口、网络地址、转换模式相符。
8.如权利要求1所述的改进防火墙安全性能的方法,其中步骤3)还进一步包括如下步骤(1)从规则表数据库中检索出所有的id∈行动编号的规则,将这些规则中的Snet节点生成一个Snet链表,链表中的每个节点都含有id、规则编号、网络对象编号信息;(2)同理,从规则表数据库中检索出所有id∈行动编号的所有规则的Dnet节点,生成一个Dnet链表,链表中的每个节点都含有id、规则编号、网络对象编号信息;(3)同理,从规则表数据库中检索出所有id∈行动编号的所有规则的服务节点,生成一个服务链表,链表中的每个节点都含有id、规则编号信息;(4)从Snet链表的第一个节点开始,生成其Dnet链表,再生成其Dnet链表中的第一个节点的服务链表,并将此服务链表生成平衡二叉树树,连在Dnet节点上;则第一个Snet节点的第一个Dnet节点的树已生成;(5)依次,再生成第一个Snet节点的第二个Dnet节点的树,直至第一个Snet节点的最后一个Dnet节点的服务树生成,这时可将第一个Snet节点的Dnet树生成,连在这第一个Snet节点上;(6)类似于步骤4、5,接着处理第二个Snet节点;直至Snet链表中所有Snet链表均处理完毕,则将此Snet链表生成平衡二叉树树;由此规则树的三级结构已完成;只需将每一个服务节点的规则表查询结果中加载网络地址转换信息;(7)网络地址转换分析;
9.如权利要求8所述的改进防火墙安全性能的方法,其中步骤(7)还进一步包括如下步骤(a)在整个规则树的结构已全部生成后,遍历树中每一个Snet节点,对每一个Snet节点依次处理加载网络地址转换信息,具体如下读出每一个Snet的网络对象id(即网络对象编号),在网络对象数据库中根据网络对象编号进行逐次查找,将得出所对应的几项信息有效ip、网卡编号、网络地址转换模式、网络地址转换后的ip、Ipsrc;(b)如果读出的一个网络对象编号对应的有效ip=1,即此Ipsrc为合法地址,则不需经过网络地址转换;这时置该节点的网络地址转换模式=0/*0needn’t网络地址转换*/;再根据网卡编号在网口对象管理表中查到相应的NIC;将这些NIC、网络地址转换模式、Ipsrc信息封装,遍历此Snet节点下的每一个Dnet的每一个服务节点,将每一个服务节点上已加载的Action信息连同以上的NIC、网络地址转换模式、Ipsrc信息,一同封装于fg RuleResult中,仍加载于每一个服务节点上;(e)如果读出的一个网络对象编号对应的有效ip=0,即此Ipsrc为局部地址,读取其网络地址转换模式,这时网络地址转换模式的值有两种可能1hide(隐藏模式);2static src(静态源模式);记录网络地址转换后的ip(目前对于Hide模式的网络地址转换,转换后都只对应一个合法IP),置IpAddr=网络地址转换后的ip;置网络地址转换模式=hide;记录NIC;记录此Snet的Ipsrc;(d)接着遍历此Snet节点下的每一个Dnet节点,读出每一个Dnet节点对应的网络对象编号;读出一个网络对象编号对应的有效ip,当有效ip=0,则对连在此Snet节点下的此Dnet节点的下一级服务节点进行遍历,在每一个服务节点的规则表查询结果中将置其网络地址转换模式=0(no网络地址转换);将其NIC置为网络对象编号的NIC,若有效ip=1(Ipdst为合法地址),根据这个网络对象编号的值查出其有效ip和网络地址转换模式,记录网络地址转换模式,则在网口对象管理表中继续查出其NIC和location,记录NIC,(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,封装;(2)若location=1(此Ipdst绑定在外部网口上),则查看在步步骤c中已记录的NIC、网络地址转换模式、IpAddr,封装;(e)遍历此Dnet节点下每一个服务节点,并将已封装好的信息加载在每一个服务节点的规则表查询结果中。
全文摘要
本发明涉及计算机网络系统中防火墙安全模型,通过对防火墙多维空间模型和快速搜索方法的运用,提高防火墙的转发效率。应用了多维空间模型产生安全规则的产生方法如下1)用户输入安全策略步骤;2)对用户输入的安全规则进行空间划分、语法检查、语义分析的预处理步骤;3)对经过预处理的规则表进行编译、优化,生成安全策略语义结构树,并下装到核心中去的生成步骤。4)对按上述方法生成的防火墙安全策略进行查询的方法。其中步骤4)可如下操作下装运行后,防火墙包过滤模块截获每一个经过防火墙主机的数据包,抽取数据包中的信息(ip源地址、ip目的地址、源端口号、服务端口号,甚至应用层中的数据,根据这些信息在所述的安全规则多维空间中查找,得到相应的访问状态位,进而采取相应的行动。
文档编号G06F17/30GK1439985SQ02104228
公开日2003年9月3日 申请日期2002年2月20日 优先权日2002年2月20日
发明者傅一帆 申请人:华北计算机系统工程研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1