一种针对互联网协议的安全访问控制方法 【技术领域】
本发明涉及网络安全技术领域,特别是指一种针对互联网协议的安全访问控制方法。
背景技术
通常,内部网络通过三层设备,比如路由器与其它的网络进行相连。对于采用互联网协议(IP)的网络,通过IP地址来标识网络中的每个节点,当一台主机需要与另一台主机通讯时,会在数据报文中填入目的主机的IP地址和自己的IP地址。如果是在以太网上发送,还要填写源主机的硬件地址和目的主机的硬件地址,然后在网络中发送数据报文。
在IP协议下,当一台主机需要访问外部网络时,首先需要知道网关的IP地址,这个网关地址通常静态配置或者通过其它协议获得;然后通过地址解析协议(ARP)的处理获取该网关IP地址对应地硬件地址;主机发送一份称做ARP请求的以太网报文给以太网上的所有主机,包括用作网关的路由器。这个过程称为ARP广播,其目的就是向别的主机询问这个IP地址对应的硬件地址。目的主机,即网关收到ARP请求报文后,如果识别出请求的硬件地址相对应的IP地址是自己的IP地址,就发送一个ARP应答报文给网关,该应答报文中包含目的主机自己的IP地址和硬件地址。原来发送ARP请求的主机收到该应答报文后,就将该网关对应的硬件地址保存到自己的ARP表中。找到了网关的硬件地址,以后需要向外部网络发送报文时就可以通过该网关发送。
主机ARP表中的表项通常需要比较长的时间才会超时,即长时间没有使用就会被自动删除。下次有数据需要发送到网关时,就必须重新进行上述硬件地址的解析过程。
出于安全的目的,通常需要对网络用户进行安全访问控制。允许合法的用户通过网关访问外部网络,限制其它用户通过网关访问外部网络。下面介绍目前普遍采用的两种方法:
一种方法是在网关上通过使用IP防火墙来限制一部分主机访问外部网络。首先,在网关上配置IP的访问列表,在列表中规定哪些主机对应的IP地址不能访问外部网络,哪些可以。这样,在网关转发IP数据报文时,可以根据报文的源IP地址来判断是哪台主机发送的报文,如果IP访问列表中规定此源IP地址的报文可以通过,则进行正常的转发;如果IP访问列表中规定此源IP地址的报文不可以通过,则丢弃这个报文,从而达到安全访问控制的目的。
这种方式有两个缺点:
1)在进行IP转发过程中,需要分析每个转发的报文,判断报文的源IP地址是否允许通过,当网络流量比较大时,会严重影响网关的转发效率。
2)这种基于源IP地址的安全访问控制方法是基于主机和IP地址是唯一对应的。限制了报文的源IP地址,就限制了对应的主机。但是,用户只要在主机上对IP地址进行手工的设置,就完全可以伪装成合法的IP地址,使数据通过网关进行通讯。由此可以看出,这种方式的安全性太低。
另一种方法是在网关上使用基于硬件地址的防火墙来实现限制一部分主机访问外部网络。该方法是在路由器上配置基于硬件地址的访问列表,在列表中规定哪些主机对应的硬件地址不能访问外部网络,哪些可以。这样,在路由器接收到数据报文时,首先分析数据报文的硬件地址信息。根据报文的源硬件地址来判断是哪台主机发送的报文,如果硬件地址访问列表中规定此源硬件地址的报文可以通过,则进行正常的转发;如果硬件访问列表中规定此源硬件地址的报文不可以通过,则丢弃这个报文,从而达到安全访问控制的目的。
这种方法的缺点是:在路由器接收报文的过程中,需要分析每个接收到的数据报文,判断报文的源主机硬件地址是否允许通过,当网络流量比较大时,会严重影响路由器的转发效率。特别是对于中低端路由器,这种方式对CPU造成很大的处理负担,会影响路由器上其它上层业务的运行效率。
【发明内容】
有鉴于此,本发明的主要目的在于提供一种针对互联网协议的安全访问控制方法,使网关的防火墙功能基于硬件地址实现,在充分保证网络安全的同时,尽可能减少网关的分析步骤,从而减少网关CPU的负担,提高网关的转发效率。
为达到上述目的本发明的技术方案具体是这样实现的:
一种针对互联网协议的安全访问控制方法,网段内部的节点通过该节点所对应的网关与外部网络进行通讯,该方法至少包括以下步骤:
a)在网关中设置安全控制数据;
b)步骤a)所述网关将从所接收地址解析协议(ARP)报文中获取的发送节点硬件地址与所设置的安全控制数据进行比较,判断当前发送节点的硬件地址是否为允许与外部网络通讯的节点硬件地址,如果是,则进入步骤c),否则,丢弃该报文;
c)判断当前处理的ARP报文的类型,如果当前处理的ARP报文是ARP请求报文,则网关保存该节点的硬件地址,并发送一份包含该网关自己IP地址和自己硬件地址的ARP应答报文;如果当前处理的ARP报文是ARP应答报文,则保存报文中的节点硬件地址。
该方法所述安全控制数据中包括:禁止与外部网络通讯的节点的硬件地址。
该方法所述的节点是主机。
通过上述方案可以看出:本发明实现了对主机的访问控制,通过在网关上的配置安全访问策略,达到限制某些主机访问外部网络的目的。本发明的安全控制是建立在对主机硬件地址分析的基础上,可以有效增强安全性,避免主机伪装。同时,本发明安全控制中所使用的分析方法只需要处理网络中少量ARP报文,而不必分析每一个接收到的数据报文,从而最大限度的降低安全策略功能对CPU的负担,几乎不影响网关的转发效率。
【附图说明】
图1为本发明方法网关对ARP报文的处理流程。
【具体实施方式】
下面结合附图及具体实施例对本发明再作进一步详细的说明。
在运行IP协议的以太网上,当一个节点需要与另一节点进行通讯时,必须首先通过ARP解析过程解析得到各自IP地址对应的硬件地址,然后才能进行正常的数据通讯,这个机制是IP协议的一个基本特征。如果两个节点不在同一网段,则两节点之间的数据通讯需要通过其所在局域网的网关转发,这样,需要通讯的两个节点也必须首先进行ARP解析过程,以使双方都能得到对方的IP地址对应的硬件地址。从而可以看出只要在网关上对ARP的应答和请求做严格限制,就会间接的控制了不同网段的节点之间通过IP协议进行数据通讯。
因此,本发明的思路是:网关只分析它所收到的ARP报文,根据预先设置的安全访问策略,通过判断发送该ARP报文的节点硬件地址来决定如何处理该ARP报文。
针对上述思路,本发明提出了以下的技术方案:
预先设置安全访问策略,即在网关中设置安全控制数据,说明局域网中哪些节点允许与外部网络通讯,哪些节点不允许与外部网络通讯。
其具体执行过程可参见图1所示:网关只对接收到的ARP报文进行分析,取出ARP报文的发送节点的硬件地址,与设置的安全控制数据作比较。判断当前的节点硬件地址是否为允许与外部网络通讯的节点硬件地址,如果是,则作正常处理,即:如果当前处理的ARP报文是ARP请求报文,则保存该报文中的节点硬件地址到网关的ARP表中,并发送一份包含该网关自己IP地址和自己硬件地址的ARP应答报文;如果当前处理的ARP报文是ARP应答报文,则保存该报文中的节点硬件地址到网关的ARP表中。否则,丢弃该报文结束。
基于上述处理,对于以后发送到网关的数据报文,网关就可以不对其进行有关安全性的处理,因为对安全访问策略允许访问外部网络的节点,它与网关之间可以顺利地通过ARP解析得到对方的硬件地址,从而可以进行正常的数据报文交互;而对于安全访问策略不允许访问外部网络的节点,由于双方无法通过ARP解析得到对方的硬件地址,则无法进行数据报文交互。
通常,网络中通信的节点多为主机,下面就以局域网内外两个主机间的通信为例对本发明方法进行详细描述:
首先,配置局域网内部的安全访问策略,即:根据用户需求在网关中配置安全控制数据,列出禁止与外部网络通讯的内部主机所对应的硬件地址名单,并保存起来。如果网关是路由器则可将安全控制数据保存在闪存中,如果网关是一台主机则可将其保存在硬盘里。当然也可以将允许与外部网络通讯的内部主机的硬件地址作为安全控制数据保存起来。
网关对ARP报文的处理一般会遇到两种情况:一种是局域网或网段内部主机向局域网外部的主机发送报文,此时网关处理的通常是由内部主机发送的ARP请求报文;另一种是局域网外部主机向局域网内部主机发送报文,此时网关通常会处理内部主机发送的ARP应答报文。
当一台主机需要与其所在局域网或网段外部的一台目的主机通讯时,如果只知道其所在网段网关的IP地址,则会通过广播发送一份ARP请求报文给网段内部的所有节点,询问这个IP地址对应网关的硬件地址。如果该网段内部上其它节点收到这个ARP请求报文,经识别该报文所请求的目的IP地址不是自己的IP地址,则将该报文丢弃,不会进行处理。当网关收到该ARP请求报文,并识别出所请求的IP地址是自己的IP地址时,首先对ARP请求报文中的信息进行分析,取出ARP请求报文发送主机的硬件地址与所设置的安全控制数据作比较,看该硬件地址是否在禁止与外部网络通讯的硬件地址名单中,如果不在,则说明该硬件地址对应的主机为允许访问外部网络的主机,并作正常处理,即保存该发送ARP请求报文主机的硬件地址到自己的ARP表中,发送一份包含自己的IP地址和自己的硬件地址的ARP应答报文到ARP请求报文发送主机。发送ARP请求的主机收到这个应答报文后将报文中该网关所对应的硬件地址存入到ARP表中。如果发送ARP请求报文的主机对应的硬件地址在禁止与外部网络通讯的硬件地址名单中,则说明安全访问策略不允许此硬件地址对应的主机访问外部网络,则将该报文丢弃,不对其处理。
如果当前主机为策略允许访问外部网络的主机,则当前主机会在之后所要发送数据报文中加上该网关的硬件地址和目的外部主机的IP地址后发送,网关收到该报文后即可不进行额外的处理直接转发至目的外部主机。
如果当前主机为策略不允许访问外部网络的主机,则由于没有收到网关的ARP应答报文,就无法知道网关的硬件地址,而无法进一步通过网关向外部网络发送数据报文。
当局域网或网段外部某台主机向内部的某台目的主机通讯时,其所发送的数据报文也会通过目的主机所在网段的网关转发,目的主机所在网关收到这份数据报文后,对该数据报文进行分析,在自己的ARP表中查找当前数据报文中目的主机的IP地址所对应的硬件地址,如果找到,则将当前数据报文按硬件地址转发到目的主机,否则,进行ARP解析过程,即以广播的形式向网段内部发送一份ARP请求报文,如果某个主机收到这份ARP请求报文,识别出所请求的IP地址是自己的IP地址,则会保存网关地址到自己的ARP表中,同时发送一份包含自己IP地址和硬件地址的应答报文。网关收到这份应答报文后,进行分析,取出该ARP应答报文的发送主机的硬件地址,与所设置的安全访问策略作比较,如果策略允许此硬件地址对应的主机访问外部网络,则将该报文中的硬件地址保存到自己的ARP表中,以后从外部网络发往内部主机的数据报文就可以通过网关在该数据报文加上该内部主机的硬件地址转发到允许访问的内部主机上;否则,丢弃该ARP应答报文,不进行处理,从而网关没有解析到内部目的主机对应的硬件地址,因此不能转发外部主机访问该目的主机的数据报文,于是丢弃该数据报文,最终限制了外部到内部主机的访问。
根据现有技术ARP协议中有关ARP表老化机制的规定,如果某个硬件地址在一段时间内没有使用过,则该硬件地址会被自动删除。那么,要想防止表项的老化,网段内部的主机就需要每隔十几秒钟对网段内部广播一次ARP报文请求,由网关对该报文进行ARP解析处理,使请求主机与网关双方获取对方的硬件地址,对自身的ARP表进行更新。
本发明正是利用了上述ARP表老化及防止老化的机制,对ARP表中的硬件地址进行实时刷新:当网关改变了安全访问策略,允许某台被安全访问策略禁止的主机访问外部网络时,该网关先将该主机的硬件地址从禁止与外部网络通讯的硬件地址名单中删除;然后,在该主机下一次广播ARP请求报文时,网关判断出该ARP请求报文中的硬件地址为允许访问外部网络的硬件地址,则会按正常步骤进行ARP解析过程的操作,使双方的ARP表中都保存有对方的硬件地址并进行数据报文的正常交互。之后,主机就通过防止老化的处理过程来维持自身硬件地址在网关中的有效性。
同样,如果网关改变了安全访问策略,将原来允许访问外部网络的某台主机改变为禁止其访问外部网络,则该网关先将该主机的硬件地址加入禁止与外部网络通讯的硬件地址名单中;然后,在该主机下一次广播ARP请求报文时,网关经判断该报文是从不允许访问外部网络的硬件地址发出的,则不会提供发送ARP应答报文给请求主机。如此,利用ARP表的老化机制,该主机的ARP程序会在一段时间后自动将ARP表中网关的IP地址和其硬件地址的对应关系项删除,那么该主机也就无法与外部网络进行通讯。
本发明方案中,网关直接对内部主机的硬件地址建立安全访问策略,保证了局域网与外部网络通讯的安全性。网关可以随时对各主机的安全访问权限进行设定或更改,提高了系统的灵活性,与此同时网关无需对接收到的每个报文的源主机硬件地址进行分析,只需处理网络中的ARP请求报文,从而最大限度地降低了安全策略功能对网关CPU的负担,提高了网关的转发效率。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。