文章摘要:
Internet网络中网络地址转换技术产生的背景、主要内容、内部转换机制、在网络安全中的应用以及与其它网络安全技术相比的优点。并介绍了基于网络地址转换技术的防火墙的特点和网络地址转换技术的最新发展。
关键词:防火墙 网关 内部冈 网络地址转换 访问控制
网络地址转换NAT[Network Address Trans1ator)技术是Internet网络应用中一项非常实用的技术.以往主要被应用在并行处理的动态负载均衡以及高可靠性系统的容错备份的实现上.最初,NAT技术是紧随CIDR(C1assless Inter Domnin Routing)技术的出现而出现的.二者的主要目的都是为了解决当时传统1P网络地址紧张的问题.CIDR技术通过允许用任意长度子网掩码来划分网段,大大提高了对已注册地址的有效利用率.NAT技术则是一个有唯一出口的桩网络(STUB NETW0RK),通过地址复用来提高对已注册地址的有效利用率,这二者都为解决这一问题提供了有效的手段.
事实上,在实现NAT技术之前,已经出现了一种类似的技术一一IP地址掩盖(IP Masquerading).它是在外部网与内部网中某一台主机进行通信时,将内部的这台主机所使用的IP地址映射为网关上的一个特定的TCP端口,使得每次外部网主机访问网关上的某一端口时,其连接中的所有IP包都被转发给这一内部主机.这样整个内部网在与外部进行通信时,再无需任何IP地址了,只需网关对外具有一个IP地址,而不同的内部网主机对外的不同连接使用网关上的不同TCP端口即可.但IP地址掩盖技术并末得到广泛认可,因为它的功能极其有限,当内部网中与外部网联系的主机数量稍有增多时,网关的TCP连接控制部分就难以应付了,而且内部主祝对外映射成不同的网关TCP端口.这对于客户消并没有什么关系,但对于提供服务的主机,就会出现服务端口不符合标淮TCP规范的问题.而NAT技术的出现迅速地取代了IP地址掩盖技术.
1 网络地址转换技术(HAT)
如上所述,NAT技术的应用环境是一个有唯一出口的桩网络,这样才能保证所有的通信都必须经过NAT技术的网关,地址的转换不发生歧义.它通过地址复用来提高对已注册地址的有效利用率.NAT技术中具体的IP地址复用方法是:在内部网中使用私有的虚拟地址,即由Internet地址分配委员会(IANA)所保留的几段Private Network IP地址.以下是预留的Private Network地址范围:
10.0.0.0 一一 10.255.255.255
172.16.0.0 一一 172.31.255.255
192.168.0.0 一一 192.168.255.255
由于这部分地址的路由信息被禁止出现在Internet骨干网络中,所以如果在Internet中使用这些地址是不会被任何路由器正确转发的,因而也就不会因大家都使用这些地址而相互之间发生冲突.在边界路由器中设置一定的地址转换关系表并维持一个注册的真实IP地址池(IP Pool),通过路由器中的转换功能将内部的虚拟地址映射为相应的注册地址,使得内部主机可以与外部主机间透明地进行通信.
NAT技术员一般的形式为:NAT网关依据一定的规则,对所有进出的数据包进行源与目的地址识别,并将由内向外的数据包中源地址替换成一个真实地址(注册过的合法地址),而将由外向内的数据包中的目的地址替换成相应的虚地址(内部用的非注册地址).NAT网关对地址的转换过程实例如下:
实例环境:内部网使用虚拟地址空间为10.0.0.0-10.255.255.255,对外拥有注册真实IP地址为202.119.1.0-202.119.1.255,内部主机IHl、IH2地址分别设为10.0.1.1和10.0.2.2,另一外部网主机OH1地址为202.112.196.7.网络拓扑结构如图1所示.
当内部网主机IH1与外部网主机OHl建立联系时,由于网关对外将其映射为一注册的真实地址202.119.1.23,所以它的IP包头中的IP地址在网关处被转换成这一地址.于是会产生图2所示的IP数据包:
(1)图2(a)为IH1发出的IP包.
(2)经过网关后被转换为图2(b)的形式.
(3)图2(c)为其返回的IP包形式.
(4)进入网关后转换为图2N)的形式.
在以上的包传输过程中,内部的虚拟地址10.0.1.1与外部的真实地址202.119.1.23之间构成一一对应关系,经过网关时须进行必要的转换工作,这正是NAT技术名称的由来.其它内部主机与外部主机连接过程与之类似,但内部主机(IHl,IH2)之间的连接直接使用虚拟地址而不需要经过网关的转换.
本例的转换形式只是一种特定的NAT转换(向转换形式).从网关的出入方向看,NAT有入向转(inbound)、出向转换(outbound)和双向转换(bi-directional)3种形式.绝大多数应用都属于入向转换形式,其它2种形式极少用到.因为目前的网络通信基本上都是在与Internet之间发生.Internet的地址空间极其庞大,无法再做有效的地址变换(考虑IPv6的情况除外),因而外部地址一般不会在网关处进行变换.从转换对应关系的角度来看,NAT还可分为静态转换和动态转换二类.所谓静态转换就是在网关上预先设置好虚拟地址与实际地址的一一对应关系,在工作时不作实时更改;而动态转换则无需预先设置,直接由网关在运行时根据网络连接和地址空间的使用情况自行决定地址对应关系.
2 基于HAT技术的网络防火墙
2.1 HAT技术的应用
NAT技术在网络安全领域的应用主要集中在大型的商业性防火墙产品中.具有代表性的产品有Checkpoint公司的Firewal1、IBM公司的Secure Network Gateway.
NAT技术的最初应用是以普通网关的形式出现的.当时功能还很简单,仅仅用于研究实验.之后少数路由器厂商推出了专用的NAT路由器,在功能和设备性能上都有了很大的提高.随着NAT技术的应用越来越广泛,其自身的技术特点在网络安全领域也逐渐显示出其独特的应用价值.
当人们考察IP包过滤防火墙时,意识到其发挥的功能过于单一,它仅仅是根据IP包中源及目的地址来判定一个包是否可以通过.而这二个地址是很容易披篡改和伪造的,一旦网络的结构暴露给外界后,就很难抵御IP层的攻击行为.改进IP包过滤功能的一个有效途径就是改变这种确定性的过滤规则.采用网络路由中网络地址转换技术、通过在网关上对进出口IP包源与目的地址的转换,完全可以实现过滤规则的动态化,使得外部网中的主机或使用者难以了解和掌握与自己通信的对方的真实网络地址.因为外部网所接收到的数据包中的地址都已被网关改写过了,反映到外部网中就是一个虚拟的主机.这样,一方面通过在网络层(IP层)将内部网与外部网隔离开,使得内部网的拓扑结构、域名及地址信息对外成为不可见或不确定信息,从而保证了内部网中主机的隐蔽性.使绝大多数攻击性的试探失去所需的网络条件;另一方面,以此为基础能非常有效地控制各种出入数据包,不仅能大大提高IP包过滤的灵活性,更重要的是为提高网关系统转发报文的效率提供了一个安全的平台.同时在很大程度上还保证了网络通信的透明性.NAT技术的引入,为传统IP层中的安全技术增加了新的特性,改变了只能按照地址匹配算法进行简单的过滤控制这一状况. NAT只能安装在网关系统上,而这也正是普通防火墙系统通常所处的位置.因此NAT技术的应用很自然地就被集成在防火墙系统内,成为众多的安全防护手段之一.
2.2 基于NAT技术的防火墙的特点
与其它网络安全技术相比,NAT技术的实现比较安全.它完全局于一种系统底层的功能,不像PROXY等基于应用的方式,其安全性依赖于系统对于应用程序所提供的安全服务水平.在多用户的操作系统中这种安全性一般都难以达到理想条件,由于NAT技术的实现与运行平台十分有关,往往需要直接改动系统本身,再加上商业利益等因素决定了它的实现方式都是不公开的,所以很难被其他人所研究,不会在短时间内发现严重的安全漏洞.另外,NAT技术对网络运作的影响也十分有限,它对TCP/IP协议基本上提供了透明的服务,对网络应用则毫无影响.如果没有被告知,通信双方完全感觉不到NAT网关的存在.而SOCKS或PROXY技术则要求先安装适当的客户端软件,使用者还要了解网关的一些有关信息,以配置客户端软件所需用的参数,否则无法使用.与应用型的安全技术相比,NAT技术还有形式简洁的优点.它仅仅是修改过往的数据包个别信息,与网关两侧的网络环境相适应,无需像PROXY技术那样,要充分了解某一协议内部的各种功能和细节,针对每一种功能提供相关的服务.这些对比都表明NAT技术用于网络安全是具有很大优越性.另外,由于NAT技术所特有的地址转换能力,使得基于这一技术实现的防火墙的安全性也比其它类型的防火墙有很大的提高.
首先,防火墙在完成中继系统功能的同时,还完全屏蔽了内部子网的各种重要的协议信息,包括IP地址、城名分配情况、路由信息、内部网拓扑结构等重要数据.这就使得外部网的攻击无从发起,这种安全保障的强度是一般防火墙技术所无法比拟的.另外.由于NAT技术的地址转换机制.它对各种网络攻击方法还有独到的防护能力.下面主要就TCP SYN报文掩没(TCP SYN-FLOODING)这种特殊的服务失效型(Denia1 of Service)网络攻击方式对其作一说明.
一般说来,SYN FLOOING属于传输层的一种攻击手段,它借用了TCP协议体系中的一些漏洞,使主机上网络协议的实现软件发生崩溃造成服务失效.主要方法是在TCP连接建立的过程中.利用初始化时的3次握手机制需要主机上的网络实现部分为其留出必要的状态信息和接收与发送的数据缓存这一前提.因此,当1台主机恶意地向另1台主机连续地只发送SYN报文(即3次握手中的第1个报文)而不发送相应的响应报文(即3次握手中的第3个报文)时,出于早期设计者对网络传输可靠性的担心,网络协议的实现软件会一直保留这一连续请求的状态直至超时.然而,大多数早期系统的超时时间都被错误地设置成一个过大的值,这就造成缓冲区迅速被用尽,而系统却无法实施适当的干预.于是系统不仅对外的网络响应完全丧失,很多系统还会造成内部资源耗尽,对其它进程的响应也慢到无法忍受的地步甚至死机.这种攻击在传统的防火墙技术中几乎无法克服.因为它利用的是T