防止网络攻击的方法及网络地址转换设备的制作方法

文档序号:7721043阅读:94来源:国知局
专利名称:防止网络攻击的方法及网络地址转换设备的制作方法
技术领域
本发明涉及网络通信领域,具体而言,涉及一种防止网络攻击的方法及网络地址
转换设备。
背景技术
网络地址转换(Network Address Translator,简称为NAT),它实现内网的IP地 址与公网的地址之间的相互转换,将大量的内网IP地址转换为一个或少量的公网IP地址, 减少对公网IP地址的占用。 NAT的最典型应用是在一个局域网内,只需要一台计算机连接上Internet,就可 以利用NAT共享Internet连接,使局域网内其他计算机也可以上网。使用NAT协议,局域 网内的计算机可以访问Internet上的计算机,但Internet上的计算机无法访问局域网内 的计算机。 所有Internet服务提供商(Internet Sever Provider,简称为ISP)提供的内网 Internet接入方式,几乎都是基于NAT协议的。 应用NAT带来的好处有通过NAT功能实现多个用户同时共用一个公网IP地址与 外部Internet进行通信,达到节省IP地址的目的;通过NAT将内部网络与外部Internet 隔离开,使得内网更安全。 图1是根据相关技术的典型NAT应用环境拓扑图。 由图l所示,当内部网络一台主机访问外部网络资源时,分步图解拓扑详细过程 步骤包括步骤SI至步骤S5 : 步骤Sl,内部主机192. 168. 12. 2发起一个到外部主机168. 168. 12. 1的连接。
步骤S2,当路由器接收到以192. 168. 12. 2为源地址的第一个数据包时,引起路由 器检查NAT映射表,该地址有配置静态映射,就执行步骤S3,如果没有静态映射,就进行动 态映射,路由器就从内部全局地址池中选择一个有效的地址,并在NAT映射表种创建NAT转 换记录。这种记录叫基本记录。 步骤S3,路由器用192. 168. 12. 2对应的NAT转换记录中全局地址,替换数据包源 地址,经过转换后,数据包的源地址变为200. 168. 12. 2,然后转发该数据包。NAT转换记录 表详细见表1 :
表l
内部本地地址内部全局地址
192. 168.12.2200. 168.12.2 步骤S4, 168. 168. 12. 1主机接收到数据包后,将向200. 168. 12. 2发送响应包。
步骤S5,当路由器接收到内部全局地址的数据包时,将以内部全局地址 200. 168. 12. 2为关键字查找NAT记录表,将数据包的目的地址转换成192. 168. 12. 2并转发
4给192. 168. 12. 2。 步骤S6, 192. 168. 12. 2接收到应答包,并继续保持会话。步骤Sl到步骤S5将一
直重复,直到会话结束。 通常, 一台启用了 NAT的设备,都是一台网关设备。NAT设备在进行NAT地址转换 时,最关键的信息就是NAT的地址转换表,通常每条数据流都会对应一个NAT的地址转换 表,我们也叫NAT表项。如果NAT表项容量满了 ,新的数据流就无法进行NAT转换。
近来,采用伪造源地址产生的攻击常常发生,给ISP和网络维护带来了许多问题。 比如攻击者所在的实际IP网段为192. 168. 196. O,但是却伪造不存在的源地址11. 0. 0. 1 的报文发起攻击,导致NAT网关设备还会为不存在的源地址11. 0. 0. 1的数据流建立NAT表 项。 我们通过反向路由查找,通常能够检测出这种情况的攻击。报文转发是根据接收 到的IP报文的目的地址,查找转发路由表,根据找到的转发路由表项进行报文转发。通常 查找转发路由表项的过程都是在报文要寻找转发的出接口时进行的。 反向路由查找则是在源接口收到报文的时候,就通过获取接收报文的源地址和入 接口 ,根据报文源地址在转发路由表中查找转发表项(其实就是假设如果要往这个源地址 发送报文,要发给哪个接口 ,这时就要通过查找转发路由表项才知道)。
如果转发表项不存在,或者如果转发报文表项的出接口与报文的入接口不匹配, 那么报文的源地址肯定是非法的源地址。否则,报文的源地址则是合法的源地址。
假设如图1所示典型NAT应用环境拓扑图,NAT设备上不存在11. 0. 0. 0网段,攻 击者所在的实际IP网段为192. 168. 196. O,如果我们用源地址11.0. 0. l在NAT设备上查找 路由,通常是找不到路由,也就是转发表项不存在。如果NAT设备有配置缺省路由,这时查 找路由就会找到缺省路由,在NAT设备上,缺省路由指向的接口都是NAT设备外网接口 ,肯 定和该报文的入接口不匹配(该报文的入接口为内网接口)。 目前内网的攻击方式很多,其中伪造源IP构造数据流攻击NAT设备,是一个常用 的方式。目前的NAT设备通常不会对源IP的合法性进行检查,因此,如果构造大量源IP不 存在的数据流攻击NAT设备。NAT设备就会为这些非法的数据流创建NAT表项,占用大量 的NAT设备内存,如果这样的非法数据流非常多的情况下,就会把NAT设备NAT表项占满, 导致合法的数据流由于申请不到NAT表项,无法进行正常的NAT地址转换,无法正常转发。
在题为"一种防止网络用户对网络地址转换(NAT)设备攻击的方法"的中国专利 申请中,该专利描述的是对存在的内网网络用户的NAT链接信息进行统计,根据统计值判 断内网用户建立NAT链接的频率和个数是否合法,不合法进行限制。 该专利对内网不存在的源地址建立NAT连接请求的情况没有进行判断,因此无法 保护这种攻击情况下的NAT表项。 在题为"在NAT环境下解决端口扫描和拒绝攻击的方法"的中国专利申请中针对 内网已经存在的主机的NAT连接控制。 该专利对内网不存在的源地址建立NAT连接请求的情况没有进行判断,因此无法 保护这种攻击情况下的NAT表项。 在题为"一种防止NAT-PT设备受到攻击的方法"的中国专利申请中,该专利同样 也是针对内网已经存在的主机的NAT连接数进行统计和观察,进行对NAT连接的创建进行
5控制,对内网不存在的源地址建立NAT连接请求的情况没有进行判断,因此无法保护这种 攻击情况下的NAT表项。 针对相关技术中NAT设备往往被大量非法源IP攻击,导致NAT表项被占满,正常 NAT报文无法转发的问题,目前尚未提出有效的解决方案。

发明内容
针对NAT设备往往被大量非法源IP攻击,导致NAT表项被占满,正常NAT报文无 法转发的问题而提出本发明,为此,本发明的主要目的在于提供一种防止网络攻击的方法 及NAT设备,以解决上述问题。 为了实现上述目的,根据本发明的一个方面,提供了一种防止网络攻击的方法。
根据本发明的防止网络攻击的方法包括网络地址转换NAT设备接收数据流;NAT 设备判断数据流中的源IP地址是否合法;在源IP地址合法的情况下,NAT设备对数据流创 建网络地址转换NAT表项,在源IP地址不合法的情况下,NAT设备拒绝对数据流创建NAT表 项。 优选地,NAT设备判断数据流中的源IP地址是否合法包括NAT设备判断数据流中 的源IP地址是否和NAT设备接收报文的网络接口在同一个网段;在源IP地址和NAT设备 接收报文的网络接口在同一个网段的情况下,NAT设备通过数据流的源IP地址查找ARP表 项;在NAT设备查到ARP表项的情况下,则确定源IP地址合法。 优选地,在源IP地址和NAT设备接收报文的网络接口不在同一个网段的情况下, NAT设备判断数据流中的源IP地址是否合法还包括NAT设备判断其接收数据流的网络接 口和目的接口是否为同一个接口,其中,目的接口为源IP地址在NAT设备中查到的路由表 项所对应的目的接口 ;在NAT设备接收数据流的网络接口和目的接口为同一个接口的情况 下,NAT设备统计以源IP地址为目的地址的数据报文的个数以及以源IP地址为源地址的 数据报文的个数;在以源IP地址为目的地址的数据报文的个数以及以源IP地址为源地址 的数据报文的个数均为非零的情况下,则确定源IP地址合法。 优选地,NAT设备判断数据流中的源IP地址是否合法包括NAT设备判断数据流 中的第一个数据报文的源IP地址是否合法;在第一个数据报文的源IP地址不合法的情况 下,则确定数据流的源IP地址不合法。 优选地,在数据流中的源IP地址不合法的情况下,该方法还包括将不合法的源 IP地址加入黑名单。 优选地,在将不合法的源IP地址加入黑名单之后,该方法还包括NAT设备每隔预 定的时间判断黑名单中的各个源IP地址是否被使用;在黑名单中的源IP地址被使用的情 况下,将被使用的源IP地址从黑名单中删除。 优选地,NAT设备每隔预定的时间判断黑名单中的各个源IP地址是否被使用包 括NAT设备每隔预定的时间向黑名单中的各个源IP地址发送预设目的端口的数据报文; 在NAT设备接收到来自黑名单中源IP地址的回应报文的情况下,则确定源IP地址被使用。
优选地,在数据流中的源IP地址不合法的情况下,该方法包括判断源IP地址对 应的其他数据流是否已建立NAT表项,如果是,则删除NAT表项。 为了实现上述目的,根据本发明的另 一方面,提供了 一种网络地址转换NAT设备。
根据本发明的网络地址转换NAT设备包括接收模块,用于接收数据流;第一判断 模块,用于判断数据流中的源IP地址是否合法;创建模块,在源IP地址合法的情况下,用于 对数据流创建网络地址转换NAT表项。 优选地,第一判断模块还包括查找子模块,用于在数据流中的源IP地址和NAT设 备接收报文的网络接口在同一个网段的情况下,通过数据流的源IP地址查找ARP表项;第 一判断子模块,用于根据查找ARP表项的结果来判断数据流中的源IP地址是否合法。
优选地,第一判断模块还包括第二判断子模块,用于在数据流中的源IP地址和 NAT设备接收报文的网络接口不在同一个网段的情况下,判断接收数据流的网络接口和目 的接口是否为同一个接口 ,如果是则触发统计子模块,其中,目的接口为源IP地址在NAT设 备中查到的路由表项所对应的目的接口 ;统计子模块,用于统计以源IP地址为目的地址的 数据报文的个数以及以源IP地址为源地址的数据报文的个数;第三判断子模块,用于根据 统计的结果来判断数据流中的源IP地址是否合法。 优选地,NAT设备还包括第二判断模块,用于判断黑名单中的各个源IP地址是否 被使用,其中,黑名单用于保存不合法的源IP地址;删除模块,用于将被使用的源IP地址从 黑名单中删除。 优选地,NAT设备还包括第三判断模块,用于在源IP不合法的情况下,判断源IP 地址对应的其他数据流是否已建立NAT表项,如果是,则删除NAT表项。
通过本发明,采用网络地址转换NAT设备接收数据流;NAT设备判断数据流中的源 IP地址是否合法;在源IP地址合法的情况下,NAT设备对数据流创建NAT表项,在源IP地 址不合法的情况下,NAT设备拒绝对数据流创建NAT表项,解决了大量非法源IP攻击NAT设 备,导致NAT设备的NAT表项占满,正常的NAT报文无法转发的问题,进而达到了保护NAT 设备的NAT表项,进而防止网络攻击的效果。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发
明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中 图1是根据相关技术的NAT应用环境拓扑图; 图2是根据本发明实施例的防止网络攻击的方法的流程图; 图3是根据本发明实施例的优选的防止网络攻击的方法的流程图; 图4是根据本发明实施例的对黑名单进行定期检查的流程图; 图5是根据本发明实施例的NAT设备的示意图; 图6是根据本发明实施例的优选的NAT设备的示意图。
具体实施例方式
考虑到NAT设备往往被大量非法源IP攻击,导致NAT表项被占满,正常NAT报文无 法转发的问题而提出本发明,本发明实施例提供了一种防止网络攻击的方法及NAT设备。
为了更好的描述本发明实施例,现进行如下描述 数据流在本文中的含义为报文的五元组相同的报文流。根据协议的不同通常定义 的数据流有如下几种不同类别TCP流、UDP流、ICMP流、RawIP流。这几类协议的五元组分
7别定于如表1 :
表1
流类别五元组标识
TCP流源IP地址1目的IP地址1 IP协议1 TCP源端口 1 TCP目 的端口
UDP流源IP地址1目的IP地址1 IP协议1UDP源端口 1UDP 目的端口
ICMP流源IP地址1目的IP地址1 IP协议1ICMPID 1 ICMP协 议类型
RawIP流源IP地址1目的IP地址1 IP协议10x0000 10x0000 缺省路由是路由表中的一条记录,指明报文的目的地不在路由表中时的路由,是 一种特殊的静态路由,简单地说,就是在没有找到匹配的路由时使用的路由。在路由表中, 缺省路由以目的网络为0. 0. 0. 0、子网掩码为0. 0. 0. 0的形式出现。如果数据包的目的地址 不能与任何路由相匹配,那么系统将使用缺省路由转发该数据包。通常NAT设备都会指定 设备的外网接口为NAT设备的缺省路由。 地址解析协议(Address Resolution Protocol,简称为ARP),顾名思义,就是用来 解释地址的协议。具体来说,在以太网就是将网络层的IP地址解析为物理层的以太网地 址。IP数据包通过以太网发送。以太网设备并不识别32位IP地址它们是以48位以太 网地址传输以太网数据包的。因此,以太网设备必须把目的IP地址转换成以太网地址。在 这两种地址之间存在着某种静态的或动态的映射,常常需要查看一张表。地址解析协议就 是用来确定这些映射的协议。 对于一台NAT设备而言,和NAT设备的接口处于同一个网段的PC,只要是有合法的 IP地址,都会向NAT设备发送ARP地址解析请求,会在NAT设备上生成ARP表项。如果某台 PC的IP地址为192. 168. 196. 2,但是它直接构造源IP地址192. 168. 196. 137的UDP数据 流,发送给NAT设备,192. 168. 196. 137为不存在的IP地址,就不会向NAT设备发送ARP地 址解析请求,因此也不会在NAT设备上形成ARP表项。 本发明主要主要目的是为了解决内网构造了大量源IP不存在的数据流攻击NAT 设备,导致NAT设备为这些非法的数据流创建NAT表项,把NAT设备的NAT表项占满,正常 的数据流无法创建NAT表项,无法进行正常的NAT报文转发的问题。 如果能在NAT设备创建NAT表项前,对数据流的内网源IP是否存在的合法性进行 判断,判断出大量伪造内网源IP的数据流,不为这些数据流创建NAT表项,则就能够达到保 护NAT设备的NAT表项的目的。 需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相 互组合。下面将参考附图并结合实施例来详细说明本发明。
根据本发明的实施例,提供了 一种防止网络攻击的方法。
8
图2是根据本发明实施例的防止网络攻击的方法的流程图。
如图2所示,该方法包括如下的步骤S202至步骤S206 :
步骤S202,网络地址转换NAT设备接收数据流;
步骤S204, NAT设备判断数据流中的源IP地址是否合法; 步骤S206,在源IP地址合法的情况下,NAT设备对数据流创建NAT表项,在源IP 地址不合法的情况下,NAT设备拒绝对数据流创建NAT表项。 在该实施例中,通过仅对合法源IP地址的数据流创建NAT表项,达到了保护NAT 设备的NAT项,进而防止网络攻击的效果。 优选地,上述NAT设备判断数据流中的源IP地址是否合法包括NAT设备判断数 据流中的源IP地址是否和NAT设备接收报文的网络接口在同一个网段;在源IP地址和NAT 设备接收报文的网络接口在同一个网段的情况下,NAT设备通过数据流的源IP地址查找 ARP表项;在NAT设备查到ARP表项的情况下,则确定源IP地址合法。通过该方法,能够在 数据流中的源IP地址是否和NAT设备接收报文的网络接口在同一个网段更方便地对数据 流中的源IP地址的合法性进行判断。 优选地,在源IP地址和NAT设备接收报文的网络接口不在同一个网段的情况下, NAT设备判断数据流中的源IP地址是否合法还包括NAT设备判断其接收数据流的网络接 口和目的接口是否为同一个接口,其中,目的接口为源IP地址在NAT设备中查到的路由表 项所对应的目的接口 ;在NAT设备接收数据流的网络接口和目的接口为同一个接口的情况 下,NAT设备统计以所述源IP地址为目的地址的数据报文的个数以及以所述源IP地址为源 地址的数据报文的个数;在以所述源IP地址为目的地址的数据报文的个数以及以所述源 IP地址为源地址的数据报文的个数均为非零的情况下,则确定源IP地址合法。通过该方 法,能够在数据流中的源IP地址是否和NAT设备接收报文的网络接口不在同一个网段,且 NAT设备接收数据流的网络接口和目的接口为同一个接口的情况下更方便地对数据流中的 源IP地址的合法性进行判断。 优选地,在NAT设备接收数据流的网络接口和目的接口不是同一个接口的情况 下,NAT设备判断数据流中的源IP地址是否合法还包括在目的接口不存在或目的接口与 NAT设备接收数据流的网络接口不是同一接口的情况下,则确定源IP地址不合法。通过该 方法,能够在数据流中的源IP地址是否和NAT设备接收报文的网络接口不在同一个网段, 且NAT设备接收数据流的网络接口和目的接口不是同一个接口的情况下更方便地对数据 流中的源IP地址的合法性进行判断。 优选地,NAT设备判断数据流中的源IP地址是否合法包括NAT设备判断数据流 中的第一个数据报文的源IP地址是否合法;在第一个数据报文的源IP地址不合法的情况 下,则确定数据流的源IP地址不合法。由于每条数据流对应的多个报文的源IP地址是相 同的,因而,通过该方法,能够更快、更简便地对数据流中的源IP地址的合法性进行判断。
优选地,在数据流中的源IP地址不合法的情况下,该方法还包括将不合法的源 IP地址加入黑名单。在加入黑名单的情况下,对于黑名单中的源IP地址不需要再判断合法 性。 优选地,在将不合法的源IP地址加入黑名单之后,该方法还包括NAT设备每隔预 定的时间判断黑名单中的各个源IP地址是否被使用;在黑名单中的源IP地址被使用的情
9况下,将被使用的源IP地址从黑名单中删除。 优选地,NAT设备每隔预定的时间判断黑名单中的各个源IP地址是否被使用包 括NAT设备每隔预定的时间向黑名单中的各个源IP地址发送预设目的端口的数据报文; 在NAT设备接收到来自黑名单中源IP地址的回应报文的情况下,则确定源IP地址被使用。
优选地,在所述数据流中的源IP地址不合法的情况下,上述方法还包括判断所 述源IP地址对应的其他数据流是否已建立NAT表项,如果是,则删除所述NAT表项。
下面将结合实例对本发明实施例的实现过程进行详细描述。
要判断数据流的内网源IP是否合法存在,要区分三种情况 情况一 NAT设备连接的内网IP都在同一 IP网络中,即所有的内网源IP用户和 NAT设备的内网接口属于同一个IP地址网段。 在这种情况下,我们可以获取数据流的内网源IP,然后对该内网源IP查找NAT设 备的ARP表,如果没有找到ARP表项,则说明该内网源IP为非法的不存在的IP地址。对这 样的源IP地址的数据流,不允许产生NAT表项。 情况二 NAT设备连接的内网IP和NAT设备在多个直连的内网网段中,即NAT设 备有多个内网接口,每个接口对应不同的内网网段。 这种情况下,如果是该内网接口网段下的源IP,则就是情况一能够判断的。如果内 网源IP是其他非本内网接口网段的,我们可以获取数据流的内网源IP,然后以该内网源IP 为路由查找的目的IP,对NAT设备进行反向路由查找,如果找不到路由,或者找到了路由的 接口和该数据流接收的源接口不相等,则说明该内网源IP为非法的不存在的IP地址。对 这样的源IP地址的数据流,不允许产生NAT表项。 情况三NAT设备连接的内网IP和NAT设备在多个非直连的内网网段中,即NAT设
备的内网接口连接一台或者多台的三层交换机,内网网段由三层交换机划分。 这种情况下,由于NAT设备的内网接口是和三层交换机连接,如果伪造的内网源
IP为三层交换机内划分出来的合法网段的IP,对NAT设备进行反向路由查找,会发现这样
的内网源IP还是合法的,因为找的的接口和数据流的源接口都是和交换机相连的那个内
网接口。因此情况一和情况二的方案都无法判断出这样的伪造源IP。 此时,我们就需要根据源IP的双向数据流协议交互特性来判断是真实的内网IP, 还是伪造的内网IP。真实的内网IP,在和外网目的地址进行数据流通讯时,肯定是会收到 外网目的地址的合法回应,而如果是伪造的内网源IP,其数据流内容也是伪造的,将不会收 到外网目的地址的合法回应。因此可以用内外网数据报文交互的特性判断是否为伪造的内 网源IP。 1、伪造的内网源IP访问的是不存在的外网目的地址,则外网不会有任何回应。用 该内网源IP作为目的地址,统计一段时间(经验值为3分钟)经过NAT设备转发的数据报 文,如果在一定时间内都没有统计到数据报文,则该内网源IP为不存在的IP。
2、伪造的内网源IP访问的是存在的外网目的地址,但是报文本身也是伪造的,外 网该目的地址有可能不回应,有可能回应出错报文。包括以下情况 (1)、如果该内网源IP伪造UDP报文发往外网目的地址,则外网目的地址将会不回 应,或者回应ICMP的不可达报文。因此,我们用该内网源IP作为目的地址,统计一段时间 (经验值为3分钟)经过NAT设备转发的数据报文,如果统计到的UDP报文个数为0,而内网
10源IP发送的UDP报文个数不为0 (这里值得说明的是,内网源IP发送的报文个数包括NAT 设备接收到的第一个报文,以下类似),则该内网源IP为不存在的IP。
(2)、如果该内网源IP伪造TCP报文发往外网目的地址,则外网目的地址将会不回 应,或者回应TCP的RST复位报文,不会回应合法的TCP ACK报文。因此,我们用该内网源 IP作为目的地址,统计一段时间(经验值为3分钟)经过NAT设备转发的数据报文,如果统 计到的TCP合法的ACK报文个数为0,而内网源IP发送的TCP报文个数不为0,则该内网源 IP为不存在的IP。 对于以上1,2两种情况发现的伪造源IP,将列入黑名单,对这样的源IP地址的数 据流,不允许产生NAT表项。 情况三中,列为黑名单的IP,还需要定期检查(经验值为IO秒),有可能某个用户 后来真的使用了该源IP,此时就需要把该源IP从黑名单中移出。检查的方式如下
定期发送往该源IP发送目的端口为65534为TCP FIN数据报文,根据TCP协议规 范,PC主机就会回应一个TCP RST报文,如果NAT设备收到这个TCP RST报文,就说明该源 地址合法了,需要把该源IP从黑名单中移出。 图3是根据本发明实施例的优选的防止网络攻击的方法的流程图。
如图3所示,该方法包括如下步骤 步骤S301, NAT设备接收某条数据流的第一个报文,获取报文的内网源IP ;
步骤S302,判断报文内网源IP是否和NAT设备接收报文的网络接口在同一个网 段,在同一网段时转入步骤S303,不在同一网段时转入步骤S306 ;
步骤S303,以报文的内网源IP查找NAT设备的ARP表项; 步骤S304,判断arp表项的查找结果,看是否有找到arp表项,找到arp表项转入 步骤S315,未找到arp表项转入步骤S305 ; 步骤S305,如果Arp表项不存在,则该报文对应的内网源IP为非法不存在的源 IP,不能创建NAT表项,转入步骤S313 ; 步骤S306,以报文的内网源IP作为目的IP,查找NAT设备的转发路由表;
步骤S307,判断路由查找的结果,看路由的目的接口和NAT设备接收该报文的网 络接口是否为同一个接口 。在相同接口转入步骤S309,不在同一接口转入步骤S308 ;
步骤S308,如果路由的目的接口不存在,或者路由的目的接口和NAT设备接收该 报文的网络接口不是同一个接口。则该报文对应的内网源IP为非法不存在的源IP,不能创 建NAT表项,转入步骤S313 ; 步骤S309,以3分钟为时间间隔,统计NAT设备转发的数据报文。统计以报文内网 源IP作为目的地址的报文个数; 步骤S310,判断报文个数是否统计值为O,统计值为0时转入步骤S314,统计值不 为0时转入步骤S311 ; 步骤S311,以3分钟为时间间隔,统计NAT设备转发的数据报文。假设步骤S301 中第一个报文为UDP报文,则统计以所述报文内网源IP为目的地址的UDP报文个数和以所 述报文内网源IP为源地址的UDP报文个数;假设步骤S301中第一个报文为TCP报文,则统 计以所述报文内网源IP为目的地址的合法TCP ACK报文个数和以所述报文内网源IP为源 地址的TCP报文个数;在该实施例中,UDP报文和TCP报文仅仅是举例描述,其他协议下的报文同样适用于该实施例的方法。 步骤S312,判断是否两个统计值均为O,统计值均不为0时转入步骤S315,否则转 入步骤S314 ; 步骤S313,不创建NAT表项,该数据流的后续报文不进行NAT处理; 步骤S314,不创建NAT表项,该数据流的后续报文不进行NAT处理,该源地址列入
黑名单; 步骤S315,创建数据流对应的NAT表项。该数据流后续报文直接根据该NAT表项 进行NAT转换。 优选地,在数据流中的源IP地址不合法的情况下,该方法还包括判断源IP地址
对应的其他数据流是否已建立NAT表项,如果是,则删除NAT表项。 图4是根据本发明实施例的对黑名单进行定期检查的流程图。 如图4所示,该流程包括如下步骤 步骤S401, NAT设备每隔10秒遍历源地址黑名单; 步骤S402,从黑名单中获取一个源IP ; 步骤S403 ,往该源IP发送目的端口为65534为TCP FIN数据报文; 步骤S404,判断是否接收到该源IP的TCP RST回应报文,收到回应转到步骤S405,
没有收到回应转到步骤S402 ; 步骤S405,接收到回应报文,把该源IP从黑名单中移除,并统计接收到的回应报 文; 步骤S406,判断是否统计值为O,统计值为0时转入步骤S402,统计值不为0时转 入步骤S407 ; 步骤S407,创建数据流对应的NAT表项。该数据流后续报文直接根据该NAT表项 进行NAT转换。 从以上的描述中,可以看出,本发明实现了如下技术效果相对于现有的NAT防攻 击的技术方案,主要解决了内网构造了大量不存在的源IP数据流攻击NAT设备,导致NAT 设备为这些非法的数据流创建NAT表项,把NAT设备的NAT表项占满的问题。按照本发明的 方法,改进了NAT设备的NAT防攻击的能力,提高了NAT设备本身稳定性。包括以下方面
1、根据数据流源IP和NAT设备接收该数据流的接口是否在同一内网IP网络为前 提条件,采用不同的方式检查数据流源IP的合法性。 2、当数据流的源IP和NAT设备接收该数据流的接口在同一内网IP网络时,通过 检查数据流的源IP是否在NAT设备的ARP表中,过滤掉源IP不在ARP表中的数据流创建 NAT表项的请求。从而保证NAT设备的NAT表项不会被这些不存在的源IP数据流占用。
3、当数据流的源IP和NAT设备接收该数据流的接口不在同一内网IP网络时,通 过反向路由检查,过滤掉数据流找不到路由表项情况和路由表项的出接口同数据流的接收 接口不一致的情况。从而保护NAT设备的NAT表项不会被这些不存在的源IP数据流占用。
4、当数据流的源IP在NAT设备非直连的内网网段中,通过统计该源IP作为目的 地址的报文个数,如果报文个数为0,则过滤掉这样的源IP创建NAT表项的请求。从而保证 NAT设备的NAT表项不会被这些不存在的源IP数据流占用。 5、当数据流的源IP在NAT设备非直连的内网网段中,通过统计以该源IP作为目
12的地址的报文个数和以该源IP作文源地址的报文个数,如果两个统计值中有一个为o,则
过滤掉这样的源IP创建NAT表项的请求。从而保证NAT设备的NAT表项不会被这些不存 在的源IP数据流占用。 6、对于4和5中判断为不存在的源IP,通过定期向该源IP发送目的端口为为
65534的TCP FIN数据报文,如果NAT设备能收到回应的TCP RST报文,就说明该源IP被合
法使用,再把该源IP从黑名单列表中删除。 根据本发明的实施例,提供了一种NAT设备。 图5是根据本发明实施例的NAT设备的示意图。 如图5所示,该NAT设备包括接收模块501,第一判断模块502和创建模块503。
其中,接收模块501,用于接收数据流;第一判断模块502,用于判断数据流中的源 IP地址是否合法;创建模块503,在源IP地址合法的情况下,用于对数据流创建NAT表项。
优选地,该第一判断模块502还包括查找子模块511和第一判断子模块512。
其中,查找子模块511 ,在所述数据流中的源IP地址和所述NAT设备接收报文的网 络接口在同一个网段的情况下,用于通过数据流的源IP地址查找ARP表项;第一判断子模 块512,用于根据查找ARP表项的结果来判断数据流中的源IP地址是否合法。
优选地,该第一判断模块502还包括第二判断子模块513、统计子模块514和第 三判断子模块515。 其中,第二判断子模块513,用于在所述数据流中的源IP地址和所述NAT设备接收 报文的网络接口不在同一个网段的情况下,判断接收数据流的网络接口和目的接口是否为 同一个接口 ,如果是则触发统计子模块,其中,目的接口为源IP地址在NAT设备中查到的路 由表项所对应的目的接口 ;统计子模块514,用于统计以源IP地址为目的地址的数据报文 的个数以及以源IP地址为源地址的数据报文的个数;第三判断子模块515,用于根据统计
的结果来判断数据流中的源IP地址是否合法。 图6是根据本发明实施例的优选的NAT设备的示意图。 如图6所示,优选地,该NAT设备还包括第二判断模块504和删除模块505。
第二判断模块504,用于判断黑名单中的各个源IP地址是否被使用,其中,黑名单 用于保存不合法的源IP地址;删除模块505,用于将被使用的源IP地址从黑名单中删除。
优选地,该NAT设备还包括第三判断模块506,其中,该第三判断模块506用于在 所述源IP不合法的情况下,判断所述源IP地址对应的其他数据流是否已建立NAT表项,如 果是,则删除所述NAT表项。 需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的 计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不 同于此处的顺序执行所示出或描述的步骤。 显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用 的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成 的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储 在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们 中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的 硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技 术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修 改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
一种防止网络攻击的方法,其特征在于,包括网络地址转换NAT设备接收数据流;所述NAT设备判断所述数据流中的源IP地址是否合法;在所述源IP地址合法的情况下,所述NAT设备对所述数据流创建网络地址转换NAT表项,在所述源IP地址不合法的情况下,所述NAT设备拒绝对所述数据流创建NAT表项。
2. 根据权利要求1所述的方法,其特征在于,所述NAT设备判断所述数据流中的源IP 地址是否合法包括所述NAT设备判断所述数据流中的源IP地址是否和所述NAT设备接收报文的网络接 口在同一个网段;在所述源IP地址和所述NAT设备接收报文的网络接口在同一个网段的情况下,所述 NAT设备通过所述数据流的源IP地址查找ARP表项;在所述NAT设备查到所述ARP表项的情况下,则确定所述源IP地址合法。
3. 根据权利要求1或2所述的方法,其特征在于,在所述源IP地址和所述NAT设备接 收报文的网络接口不在同一个网段的情况下,所述NAT设备判断所述数据流中的源IP地址 是否合法还包括所述NAT设备判断其接收数据流的网络接口和目的接口是否为同一个接口 ,其中,所 述目的接口为所述源IP地址在NAT设备中查到的路由表项所对应的目的接口 ;在所述NAT设备接收数据流的网络接口和所述目的接口为同一个接口的情况下,所述 NAT设备统计以所述源IP地址为目的地址的数据报文的个数以及以所述源IP地址为源地 址的数据报文的个数;在以所述源IP地址为目的地址的数据报文的个数以及以所述源IP地址为源地址的数 据报文的个数均为非零的情况下,则确定所述源IP地址合法。
4. 根据权利要求1至3中任一项所述的方法,其特征在于,所述NAT设备判断所述数据 流中的源IP地址是否合法包括所述NAT设备判断所述数据流中的第一个数据报文的源IP地址是否合法; 在所述第一个数据报文的源IP地址不合法的情况下,则确定所述数据流的源IP地址 不合法。
5. 根据权利要求1至3中任一项所述的方法,其特征在于,在所述数据流中的源IP地 址不合法的情况下,所述方法还包括将不合法的所述源IP地址加入黑名单。
6. 根据权利要求5所述的方法,其特征在于,在将不合法的所述源IP地址加入黑名单 之后,所述方法还包括所述NAT设备每隔预定的时间判断所述黑名单中的各个源IP地址是否被使用; 在所述黑名单中的源IP地址被使用的情况下,将被使用的源IP地址从所述黑名单中 删除。
7. 根据权利要求6所述的方法,其特征在于,所述NAT设备每隔预定的时间判断所述黑 名单中的各个源IP地址是否被使用包括所述NAT设备每隔所述预定的时间向所述黑名单中的各个源IP地址发送预设目的端 口的数据报文;在所述NAT设备接收到来自所述黑名单中源IP地址的回应报文的情况下,则确定所述 源IP地址被使用。
8. 根据权利要求1至3中任一项所述的方法,其特征在于,在所述数据流中的源IP地 址不合法的情况下,所述方法包括判断所述源IP地址对应的其他数据流是否已建立NAT表项,如果是,则删除所述NAT表项。
9. 一种网络地址转换NAT设备,其特征在于,包括 接收模块,用于接收数据流;第一判断模块,用于判断所述数据流中的源IP地址是否合法;创建模块,在所述源IP地址合法的情况下,用于对所述数据流创建网络地址转换NAT 表项。
10. 根据权利要求9所述的NAT设备,其特征在于,所述第一判断模块还包括 查找子模块,用于在所述数据流中的源IP地址和所述NAT设备接收报文的网络接口在同一个网段的情况下,通过所述数据流的源IP地址查找ARP表项;第一判断子模块,用于根据查找ARP表项的结果来判断所述数据流中的源IP地址是否 合法。
11. 根据权利要求9或10所述的NAT设备,其特征在于,所述第一判断模块还包括 第二判断子模块,用于在所述数据流中的源IP地址和所述NAT设备接收报文的网络接口不在同一个网段的情况下,判断接收数据流的网络接口和目的接口是否为同一个接口, 如果是则触发统计子模块,其中,所述目的接口为所述源IP地址在NAT设备中查到的路由 表项所对应的目的接口;统计子模块,用于统计以所述源IP地址为目的地址的数据报文的个数以及以所述源 IP地址为源地址的数据报文的个数;第三判断子模块,用于根据所述统计的结果来判断所述数据流中的源IP地址是否合法。
12. 根据权利要求9至11中任一项所述的NAT设备,其特征在于,所述NAT设备还包括第二判断模块,用于判断黑名单中的各个源IP地址是否被使用,其中,所述黑名单用 于保存不合法的源IP地址;删除模块,用于将被使用的源IP地址从所述黑名单中删除。
13. 根据权利要求9至11中任一项所述的NAT设备,其特征在于,所述NAT设备还包括第三判断模块,用于在所述源IP不合法的情况下,判断所述源IP地址对应的其他数据 流是否已建立NAT表项,如果是,则删除所述NAT表项。
全文摘要
本发明公开了一种防止网络攻击的方法及网络地址转换设备,其中,该方法包括网络地址转换NAT设备接收数据流;NAT设备判断数据流中的源IP地址是否合法;在源IP地址合法的情况下,NAT设备对数据流创建NAT表项,在源IP地址不合法的情况下,NAT设备拒绝对数据流创建NAT表项。通过本发明,能够保护NAT设备的NAT表项,进而能够防止网络攻击。
文档编号H04L29/12GK101753637SQ20091024284
公开日2010年6月23日 申请日期2009年12月17日 优先权日2009年12月17日
发明者陈朝晖 申请人:北京星网锐捷网络技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1