网络安全 频道

【安全大讲堂之UTM】网络地址转换技术

    网络地址转换就是将一个IP地址用另一个IP地址代替。尽管最初设计网络地址转换的目的是为了增加在专用网络中可使用的IP地址数,但是它有一个隐蔽的安全特性,如内部主机隐蔽等,保证了网络的一定安全。网络地址转换主要用在两个方面:

  •     (1)网络管理员希望隐藏内部网络的IP地址。这样,互联网上的主机无法判断内部网络的情况;
  •     (2)内部网络的IP地址是无效的。这种情况主要是因为现在的IP地址不够用,要申请到足够多的合法IP地址很难办到,因此需要转换IP地址。

    在上面两种情况下,内部网对外面是不可见的,互联网不能访问内部网,但是内部网主机之间可以相互访问。而应用网关可以部分解决这个问题,例如,可以隐藏内部IP,一个内部用户可以Telnet到网关,然后通过网关上的代理连接到互联网。但应用层网关有它的缺陷,要为每一种应用定制代理,如果没有为某种服务提供入站或出站的代理,这种服务就不能使用。由于代理是不透明的,因此即使合法的出站用户通过应用网关,也会给网关带来很大的开销。这是因为代理对数据包转发是在应用层进行的,一旦通过代理建立起到目标主机的连接,那么代理一般就不做控制了。

    网络地址转换可以提供一种透明的完善的解决方案,网络管理员可以决定哪些内部的IP地址需要隐藏,哪些地址需要映射成为一个对互联网可见的IP地址。网络地址转换可以实现一种“单向路由”,这样就不存在从互联网到内部网或主机的路由。

    网络地址转换的工作机制是当网络数据包流入UTM时,系统会检查该数据包是否符合用户设定的网络地址转换规则,如果找到符合的规则,系统会按照规则对数据包进行转换,同时建立一个网络地址转换进程。当有数据包返回时,将检查进程表,进行相应的处理。这里可以看到,网络地址转换需要对每一个TCP/IP连接建立一个对应的网络地址转换进程表项。假如不对查询算法进行优化,则在访问量大的情况下,查询网络地址转换进程表项将会占用大量的CPU时间。

    在网络地址转换图(如图1所示)中的10.0.0.1主机处于内部网,网关为UTM内部接口10.0.0.2,UTM外网接口IP地址是202.112.108.1,互联网上有一台服务器的IP地址是202.100.10.50。用户机10.0.0.1通过UTM的网络地址转换才能访问服务器202.100.10.50,下面介绍网络地址转换的过程。

 

    图1  网络地址转换图

    在不同网段IP地址的转换情况如表3-1所示,内部地址是10.0.0.0子网,UTM网关对外部的地址是202.112.108.1,可以将内部网的地址都转换成202.112.108.1出去。但这会遇到一个问题,所有返回数据包的目的IP都是202.112.108.1,那么UTM如何识别它们并送回内部网的真实主机呢?可以让UTM记住所有出去的包,因为每个包都有一个目的端口,每台主机的端口可能都不一样。还可以让UTM记住所有出去的包的TCP序列号,不同主机发送的包的序列号不一样,UTM会根据记录把返回的数据包送达正确的发送主机。

    表3-1  不同网段IP地址的转换 

 

    NAT可以有多种模式,主要有如下几种。

    (1)静态地址转换

    这种模式中,一个指定的内部主机有一个从不改变的固定的转换表,一般静态地址转换将内部地址转换成UTM的外网接口地址,如图2所示。静态地址转换是一种一对一的双向地址映射,主要用于内部服务器向外提供服务的情况。

 

    图2  静态地址转换

    (2)源地址转换

    源地址转换是基于源地址的地址转换,主要用于内网访问外网,减少公有地址的数目,隐藏内部地址,如图3所示。

 

    图3  源地址转换

    (3)目的地址转换

    目的地址转换可分为目标地址映射、目标端口映射、服务器负载均衡等。目的地址转换也称为反向地址转换或地址映射。目的地址转换是一种单向的针对目标地址的映射,主要用于内部服务器向外部提供服务的情况,它与静态地址转换的区别在于它是单向的。外部可以主动访问内部,内部却不可以主动访问外部。另外,可使用目的地址转换实现负载均衡的功能,即可以将一个目标地址转换为多个内部服务器地址。也可以通过端口的映射将不同的端口映射到不同的机器上。目的地址转换如图4所示。

 

    图4  目的地址转换

    不管是以上哪种模式,都可以基于IP地址和端口方式,采用端口地址转换,管理员只需要设定一个或多个可以用作端口地址转换的公有互联网地址,用户的访问将会映射到IP池中IP的一个端口上去,这使得每个合法互联网 IP可以映射六万多台内部网主机。

    例如有一个小型网络,它的IP地址段是192.168.0.1-192.168.0.255,通过一台UTM上网,UTM有两个IP地址,一个是网络内部地址,如192.168.0.1,一个是合法的IP地址,如202.106.0.22,如图7所示。

 

    图5  地址转换

    如果局域网内部的一台电脑H4,IP地址是192.168.0.3:4000,4000是它的端口号,想访问搜狐的主页www.sohu.com,192.168.0.3:4000的请求先传到UTM 192.168.0.1上,UTM把这个IP地址转换为202.106.0.22:9000,然后以端口号为9000的这个IP地址向sohu发出请求,当sohu受到请求后,会回答,它先把回答的数据流传给202.106.0.22:9000,也就是局域网边界的UTM,UTM接收到数据后,会查找与9000这个端口号相关联的内部IP地址,当它发现是192.168.0.3:4000后,就把数据传给192.168.0.3:4000,这样,IP地址的转换就完成了。

    UTM通过灵活的应用地址转换功能,在对通过UTM的数据进行全面细致检测的同时,还保证了网络的连通性,极大地提高了企业网络资源的应用。

0
相关文章