扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
最早出现的NAT(Network Address Translation,网络地址翻译)技术,是用来解决互联网IP地址耗尽问题的,随着网络技术的发展,安全需求的提升,NAT逐渐演变为隔离内外网络、保障网络安全的基本手段,而且采用这种技术,无须额外投资,单纯利用现有网络设备,即可轻松达到安全目的。本文将从典型应用入手,详细介绍实现安全保护的办法,并分析什么应用适合选用NAT技术。
一、免费的NAT技术
NAT可以将局域网中的内部地址节点翻译成合法的IP地址在Internet上使用(即把IP包内的地址域用合法的IP地址来替换),或者把一个IP地址转换成某个局域网节点的地址,从而可以帮助网络超越地址的限制,合理地安排网络中公有Internet地址和私有IP地址的使用。通常,NAT功能会被集成到路由器、防火墙、ISDN路由器或者单独的NAT设备中,所以,只要购买了这些网络产品,您就可以免费享用NAT技术带来的网络安全了。NAT设备可以维护一个状态表,用来把非法的IP地址映射到合法的IP地址上去。每个数据包在NAT设备中都将被翻译成正确的IP地址,然后再发往下一级设备。
(一)相关概念
为了更好地认识NAT技术,我们先了解一下它所涉及的几个概念。
1.内部局部地址 在内部网上分配到一个主机的IP地址。这个地址可能不是一个有网络信息中心(NIC)或服务提供商所分配的合法IP地址。
2.内部全局地址 一个合法的IP地址(由NIC或服务供应商分配),对应到外部世界的一个或多个本地IP地址。
3.外部局部地址 出现在网络内的一个外部主机的IP地址,不一定是合法地址,它可以在内部网上从可路由的地址空间进行分配。
4.外部全局地址 由主机拥有者在外部网上分配给主机的IP地址,该地址可以从全局路由地址或网络空间进行分配。
对于NAT技术,提供4种翻译地址的方式,如下所示。
(二)4种翻译方式
1.静态翻译 是在内部局部地址和内部全局地址之间建立一对一的映射。
2.动态翻译 是在一个内部局部地址和外部地址池之间建立一种映射。
3.端口地址翻译 超载内部全局地址通过允许路由器为多个局部地址分配一个全局地址,也就是将多个局部地址映射为一个全局地址的某一端口,因此也被称为端口地址翻译(PAT)。
4.重叠地址翻译 翻译重叠地址是当一个内部网中使用的内部局部地址与另外一个内部网中的地址相同,通过翻译,使两个网络连接后的通信保持正常。
在实际使用中,通常需要以上几种翻译方式配合使用。
二、让典型应用“说话”
现在,我们以常见Cisco路由器为例,阐述典型应用中NAT技术的实现。
1.配置共享IP地址
应用需求:当您需要允许内部用户访问Internet,但又没有足够的合法IP地址时,可以使用配置共享IP地址连接Internet的NAT转换方式。
图2是配置内部网络10.10.10.0/24通过重载一个地址172.16.10.1./24访问外部网络的全过程。如果有多个外部地址,可以利用动态翻译进行转换,这里就不多做说明了。
NAT路由器配置清单1
interface ethernet 0
ip address 10.10.10.254 255.255.255.0
ip nat inside
!-- 定义内部转换接口
interface serial 0
ip address 172.16.10.64 255.255.255.0
ip nat outside
!-- 定义外部转换接口
ip nat pool ovrld 172.16.10.1 172.16.10.1 prefix 24
!-- 定义名为ovrld的NAT地址池和地址池重的地址172.16.10.1
ip nat inside source list 1 pool ovrld overload
!--指出被 access-list 1 允许的源地址会转换成NAT地址池ovrld中的地址并且转换会被内部多个机器重载成一个相同的IP地址。
access-list 1 permit 10.10.10.0 0.0.0.31
!-- Access-list 1 允许地址10.10.10.0到10.10.10.255进行转换
NAT路由器配置清单2
interface ethernet 0
ip address 10.10.10.254 255.255.255.0
ip nat inside
!-- 定义内部转换接口
interface serial 0
ip address 172.16.20.254 255.255.255.0
ip nat outside
!-- 定义外部转换接口
ip nat inside source static 10.10.10.1 172.16.20.1
!-- 指定将地址10.10.10.1静态转换为172.16.20.1
适用范围:这种情况适合于通信都是由内部用户向Internet发起的应用。
例如小型企业多个用户通过共享xDSL连接Internet。另外,也可以用软件进行NAT转换,Windows 2000的操作系统就有这样的功能。至于内部用户数量较多的情况,建议使用代理服务器。
2.配置在Internet上发布的服务器
应用需求:当您需要将内部设备发布到Internet上时,可以使用配置在Internet上发布的服务器的NAT转换方式。
图3是将内部网络的邮件服务器(IP地址为10.10.10.1/24)发布到外部网络的全过程,使用静态翻译可以实现这种转换。清单2展示了具体配置方法。
适用范围:这种情况适合于访问是从外部网络向内部设备发起的应用。
3.配置端口映射
应用需求:假设您在Internet上发布一台在内部网络的Web服务器,服务器配置成监听8080端口,您需要把外部网络对Web服务器80端口的访问请求重定向。
清单3展示了具体配置方法。
4.配置TCP传输
应用需求:TCP传输装载共享是与地址匮乏无关的问题,它将数个设备的地址映射成一个虚拟设备的地址,从而实现设备间的负载均衡。
图5是将地址从10.10.10.2到10.10.10.15的真实设备映射成虚拟10.10.10.1地址的全过程。清单4展示了具体配置方法。
5.真实应用案例
应用需求:笔者所在的单位内部的局域网已建成,并稳定运行着各种应用系统。随着业务的发展,需要实施一个数据中心在外单位的新应用。出于安全方面的考虑,不能够对现有网络结构进行大的调整和改动;另外,由于资金方面的原因,需要尽可能地节省设备等方面的投入。
应用现状:我单位内部网结构如下:具有3个VLAN。VLAN 1(即10.1.1.X),使用单位内部应用系统,与数据中心没有数据交换;VLAN 2(即10.2.2.X),使用数据中心提供的应用系统,约有100台机器;VLAN 3(即10.3.3.X),只用2台机器使用数据中心提供的应用,分别是10.3.3.1和10.3.3.2。
数据中心提供一台Cisco 3640,Serial口与数据中心通过HDSL连接,分配的地址分别是192.168.252.1和255.255.255.252,FastEthernet口与单位内部局域网连接,分配的地址分别是192.168.1.0和255.255.255.0。
实施方案:由于不打算更改内部网的结构,所以将内部网地址作为内部局部地址,数据中心分配的地址作为内部全局地址,实施NAT应用。另外NAT需要两个端口,一个做为inside,另一个做为outside,因此考虑使用FastEthernet口做inside,Serial口做outside。图6 为本单位NAT技术的应用图。
利用以上设置,我们成功实现了内部地址的翻译转换,并实现了在不改变现有网络结构的情况下与数据中心连网的目标。
三、有比较有选择
1.与代理服务器的比较
用户经常把NAT和代理服务器相混淆。NAT设备对源机器和目标机器都是透明的,地址翻译只在网络边界进行。代理服务器不是透明的,源机器知道它需要通过代理服务器发出请求,而且需要在源机器上做出相关的配置,目标机器则以为代理服务器就是发出请求的源机器,并将数据直接发送到代理服务器,由代理服务器将数据转发到源机器上。
NAT路由器配置清单3
interface ethernet 0
ip address 10.10.10.254 255.255.255.0
ip nat inside
!-- 定义内部转换接口
interface serial 0
ip address 172.16.30.254 255.255.255.0
ip nat outside
!-- 定义外部转换接口
ip nat inside source static tcp 10.10.10.8 8080 172.16.30.8 80
!-- 指定将地址10.10.10.8:8080静态转换为172.16.30.8:80
NAT路由器配置清单4
interface ethernet 0
ip address 10.10.10.17 255.255.255.0ip nat inside
!-- 定义内部转换接口
interface serial 0
ip address 10.10.10.254 255.255.255.0ip nat outside
!-- 定义外部转换接口
ip nat pool real-hosts 10.10.10.2 10.10.10.15 prefix-length 28 type rotaryip nat inside destination list 1 pool real-hosts
!--定义地址池real-hosts地址范围是从10.10.10.2到10.10.10.15
!--指定将地址将地址池real-hosts转换为10.10.10.1
access-list 1 permit 10.10.10.1
代理服务器工作在OSI模型的第4层传输层,NAT则是工作在第3层网络层,由于高层的协议比较复杂,通常来说,代理服务器比NAT要慢一些。
但是NAT比较占用路由器的CPU资源,加上NAT隐藏了IP地址,跟踪起来比较困难,不利于管理员对内部用户对外部访问的跟踪管理和审计工作。所有NAT技术只适用于内部用户数量较少的应用,如果访问外部网络的用户数量大,而且管理员对内部用户有访问策略设置和访问情况跟踪的应用,还是使用代理服务器较好一些。
NAT路由器配置清单5
interface fastethernet 1/0
ip nat inside
!-- 定义内部转换接口
interface serial 0/0
ip address 192.168.252.1 255.255.255.252
ip address 192.168.1.254 255.255.255.0 secondary
ip nat outside
!-- 为节省端口,将数据中心提供的地址全部绑在Serial口
ip nat pool ToCenter 192.168.1.1 192.168.1.253 prefix-length 24
ip nat inside source list 1 pool ToCenter
!-- 建立动态源地址翻译,指定在前一步定义的访问列表
access-list 1 permit 10.3.3.1
access-list 1 permit 10.3.3.2
access-list 1 permit 10.2.2.0 0.0.0.255
!-- 定义一个标准的访问列表,对允许访问数据中心的地址进行翻译
2.与防火墙比较
防火墙是一个或一组安全系统,它在网络之间执行访问控制策略。防火墙对流经它的网络通信数据进行扫描,这样能够过滤掉一些攻击,以免其在目标计算机上被执行。防火墙还可以关闭不使用的端口,禁止特定端口的流出通信,封锁特洛伊木马等。最后,它可以禁止来自特殊站点的访问,从而防止来自不明入侵者的所有通信。
一般的防火墙都具有NAT功能,或者能和NAT配合使用。应用到防火墙技术中的NAT技术可以把个别IP地址隐藏起来不被外界发现,使外界无法直接访问内部网络设备。作为网络安全的一个重要手段,是选用单纯的NAT技术还是带NAT技术的防火墙,要从几个方面考虑:
一是您的企业和运营机构如何运用访问控制策略,是为了明确地拒绝除对于连接到网络至关重的服务之外的所有服务,还是为了访问提供一种计量和审计的方法;
二是您对企业网需要何种程度的监视、冗余度以及控制水平;
三则是财务上的考虑,一个高端完整的防火墙系统是十分昂贵的。是否采用防火墙需要在易用性、安全性和预算之间做出平衡的决策。
四、安全中的不安全
我们可以从以下几个方面窥视NAT技术的安全性问题。
1.NAT只对地址进行转换而不进行其他操作,因此,当您建立了与外部网络的连接时,NAT不会阻止任何从外部返回的恶意破坏信息。
2.虽然NAT隐藏了端到端的IP地址,但它并不隐藏主机信息。例如您通过NAT设备访问Windows Streaming Media服务器,您会发现服务器记录的不仅是您的主机名,还有您的内部IP地址和操作系统。
3.Internet上的恶意攻击通常针对机器的“熟知端口”,如HTTP的80端口、FTP的21端口和POP的110端口等。虽然NAT可以屏蔽不向外部网络开放的端口,但针对面向熟知端口的攻击,它是无能为力的。
4.许多NAT设备都不记录从外部网络到内部网络的连接,这会使您受到来自外部网络的攻击,但由于没有记录可以追查,您根本无法发觉自己受到过什么攻击。
NAT隐藏了内部IP地址,使其具有一定的安全性,但从上面的分析我们可以知道,不能将NAT作为网络单一的安全防范措施。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。