信息安全基础知识笔记05 防火墙网络地址转换技术NAT(下)
信息安全基础知识笔记05防火墙网络地址转换技术NAT(下)
内网服务器映射(NAT Server)
内部服务器(Nat Server)功能是使用一个公网地址来代表内部服务器对外地址。
在防火墙上,专门为内部的服务器配置一个对外的公网地址来代表私网地址。对于外网用户来说,防火墙上配置的外网地址就是服务器的地址。
(1)基本概念
NAT Server,即内部服务器。NAT隐藏了内部网络的结构,具有“屏蔽”内部主机的作用。但是在实际应用中,可能需要提供给外部主机一个访问内部服务器的机会,如提供给外部一台WWW的服务器,而外部主机根本没有指向内部地址的路由,因此无法正常访问。这时可以使用内部服务器(Nat Server)功能来实现这个功能应用。
外部用户访问内部服务器时,有如下两部分操作:
① 防火墙将外部用户的请求报文的目的地址转换成内部服务器的私有地址。
② 防火墙将内部服务器的回应报文的源地址(私网地址)转换成公网地址。
防火墙支持基于安全区域的内部服务器。例如,当需要对处于多个网段的外部用户提供访问服务时,防火墙结合安全区域配置内部服务器可以为一个内部服务器配置多个公网地址。
通过配置防火墙的不同级别的安全区域对应不同网段的外部网络,并根据不同安全区域配置同一个内部服务器对外的不同的公网地址,使处于不同网段的外部网络访问同一个内部服务器时,即通过访问对应配置的公网地址来实现对内部服务器的访问能力。
(2)配置方法(命令行界面)
如下图所示:DMZ区域(内网)存在两台服务器,一台对外提供Web服务(使用192.168.20.2:80)的Web Server和一台对外提供FTP服务(192.168.20.3:21)的FTP Server。
现有一台外网的主机(202.169.10.2)通过防火墙访问内网的这两台服务器。其中通过防火墙出接口的地址的8080端口访问Web Server,通过21端口访问FTP Server。
Step 1:网络接口,区域,设备IP,安全策略等基本配置步骤省略。以下贴出防火墙FW_A的部分配置。
Step 2:配置域间包过滤规则
为外网访问内网的Web Server配置安全访问策略
为外网访问内网的FTP Server配置安全访问策略
Step 3:配置NAT Server功能,使外网可以访问内网的Web Server和FTP Server。
如上图所示,global后面表示公网地址,inside后面表示内网地址,通过这两条命令将内网的两台服务器分别映射到防火墙对公网出接口地址的不同端口号上。
(2)配置方法(Web界面)
Step 1:点击“策略”=》“NAT策略”=》“服务器映射”,并点击“新建”来新建服务器映射列表。(创建安全策略的步骤已经省略)
Step 2:配置NAT Server功能,使外网可以访问内网的Web Server。
Step 3:配置NAT Server功能,使外网可以访问内网的FTP Server。
(4)实验结果验证
在外网主机上输入http://202.169.10.1:8080访问内网提供Web的服务器(192.168.20.2:80),可以看到返回状态码200,表示访问成功。
在外网主机通过202.169.10.1:21访问内网提供FTP服务器(192.168.20.3:21),可以看到成功打开了FTP的文件服务器目录,表示访问成功。
查看会话表,可以看到数据包到达防火墙后,对其目的地址进行转换的结果。
NAT扩展知识
(1)NAT ALG
① 基本概念
NAT ALG(Application Level Gateway,应用级网关)是特定的应用协议的转换代理,可以完成应层数据中携带的地址及端口号信息的转换。
在以太网数据帧结构中,IP首部包含32位的源IP地址和32位的目的IP地址,TCP首部包含16位的源端口号和16位的目的端口号。
但是很多协议会通过IP报文的数据载荷进行新端口甚至新IP地址的协商。协商完成之后,通信双方会根据协商结果建立新的连接进行后续报文的传输。而这些协商出来的端口和IP地址往往是随机的,管理员并不能为其提前配置好相应的NAT规则,这些协议在NAT转换过程中就会出现问题。
普通NAT实现了对UDP或TCP报文头中的的IP地址及端口转换功能,但对应用层数据载荷中的字段无能为力,在许多应用层协议中,比如多媒体协议(H.323、SIP等)、FTP、SQLNET等,TCP/UDP载荷中带有地址或者端口信息,这些内容不能被NAT进行有效的转换,就可能导致问题。
NAT ALG(Application Level Gateway,应用层网关)技术能对多通道协议进行应用层报文信息的解析和地址转换,将载荷中需要进行地址转换的IP地址和端口或者需特殊处理的字段进行相应的转换和处理,从而保证应用层通信的正确性。
例如,FTP应用就由数据连接和控制连接共同完成,而且数据连接的建立动态地由控制连接中的载荷字段信息决定,这就需要ALG来完成载荷字段信息的转换,以保证后续数据连接的正确建立。
为了实现应用层协议的转发策略而提出了ASPF功能。ASPF功能的主要目的是通过对应用层协议的报文分析,为其开放相应的包过滤规则,而NAT ALG的主要目的,是为其开放相应的NAT规则。由于两者(ASPF和NAT ALG)通常都是结合使用的,所以使用同一条命令就可以将两者同时开启。
② 实现原理
此处使用FTP主动模式下的NAT ALG应用作为举例。
图中私网侧的主机要访问公网的FTP服务器。NAT设备上配置了私网地址192.168.1.2到公网地址8.8.8.11的映射,实现地址的NAT转换,以支持私网主机对公网的访问。
组网中,若没有ALG对报文载荷的处理,私网主机发送的PORT报文到达服务器端后,服务器无法根据私网地址进行寻址,也就无法建立正确的数据连接。整个通信过程包括如下四个阶段:
Step 1:私网主机和公网FTP服务器之间通过TCP三次握手成功建立控制连接。
Step 2:控制连接建立后,私网主机向FTP服务器发送PORT报文,报文中携带私网主机指定的数据连接的目的地址和端口,用于通知服务器使用该地址和端口和自己进行数据连接。
Step 3:PORT报文在经过支持ALG特性的NAT设备时,报文载荷中的私网地址和端口会被转换成对应的公网地址和端口。即设备将收到的PORT报文载荷中的私网地址192.168.1.2转换成公网地址8.8.8.11,端口1084转换成12487。
Step 4:公网的FTP服务器收到PORT报文后,解析其内容,并向私网主机发起数据连接,该数据连接的目的地址为8.8.8.11,目的端口为12487。
Tips:题外话
一般情况下,公网向私网主机发送数据连接的报文源端口为20,但由于FTP协议没有严格规定,有的服务器发出的数据连接源端口为大于1024的随机端口,如本例采用的是wftpd服务器,采用的源端口为3004。由于该目的地址是一个公网地址,因此后续的数据连接就能够成功建立,从而实现私网主机对公网服务器的访问。
(2)双向NAT技术
① 应用场景
双向NAT应用场景的通信双方访问对方的时候目的地址都不是真实的地址,而是NAT转换后的地址。一般来说,内网属于高优先级区域,外网属于低优先级区域。当低优先级安全区域的外网用户访问内部服务器的公网地址时,会将报文的目的地址转换为内部服务器的私网地址,但内部服务器需要配置到该公网地址的路由。
如果要避免配置到公网地址的路由,则可以配置从低优先级安全区域到高优先级安全区域方向的NAT(不同区域)。这种NAT叫域间双向NAT。
还有一种常见情况是,若有另一台用户设备与服务器处于同一个安全区域内,且这台设备需要通过访问服务器的公网地址进行通信时,同一个安全区域内的访问需要作NAT,这种NAT叫域内双向NAT。
② 域间双向NAT
为了简化配置服务器至公网的路由,可在NAT Server基础上,增加源NAT配置。
当配置NAT Server时,服务器需要配置到公网地址的路由才可正常发送回应报文。如果要简化配置,避免配置到公网地址的路由,则可以对外网用户的源IP地址也进行转换,转换后的源IP地址与服务器的私网地址在同一网段。这样内部服务器会缺省将回应报文发给网关,即设备本身,由设备来转发回应报文。
运用上面给出的拓扑图作为示例:
FTP服务器与防火墙相连,对外公布的地址为防火墙的出接口202.20.1.5,对外使用的端口号为21。实际内网(隐藏的)IP为192.168.1.5,使用端口21。现有一台外网的主机2.2.2.5需要访问FTP服务器。
基础配置(设备IP,接口配置,防火墙安全策略,访问外网的静态路由等)这里省略。不过需要注意的是,为了达到实验目的,内网服务器不需要填写网关。
首先为内网服务器(192.168.1.5)做NAT Server映射,使其对公网的地址为防火墙的出接口地址(202.20.1.5)。
然后配置源NAT,将外网IP映射为与内网服务器同网段的内网IP。
配置完成后,使用外网主机访问内网服务器,访问成功
查看防火墙会话表,可以看到防火墙产生的会话表项中源NAT映射的结果。
③ 域内双向NAT
防火墙将用户的请求报文的目的地址转换成FTP服务器的内网IP地址,源地址转换成用户对外公布的IP地址。
防火墙将FTP服务器回应报文的源地址转换成对外公布的地址,目的地址转换成用户的内网IP地址。
若需要地址转换的双方都在同一个安全域内,那么就涉及到了域内NAT的情况。当FTP服务器和用户均在Trust区域,用户访问FTP服务器的对外的公网IP地址,这样用户与FTP服务器之间所有的交互报文都要经过防火墙。这时需要同时配置内部服务器和域内NAT。
域内NAT是指当内网用户和服务器部署在同一安全区域的情况下,仍然希望内网用户只能通过访问服务器的公网地址的场景。在实现域内NAT过程中,既要将访问内部服务器的报文的目的地址由公网地址转换为私网地址,又需要将源地址由私网地址转换为公网地址。
运用上面给出的拓扑图作为示例:
此拓扑是上图拓扑基础上加入了一台内网用户主机,因此基础配置只需要再加一条由DMZ区域到Untrust区域允许放行的安全策略即可,其他不变。
注意:FTP服务器必须配置上网关。
如图所示,FTP服务器和PC均在防火墙的Trust安全区域,FTP服务器的IP地址为192.168.1.5,Client2客户端的IP地址为192.168.1.20,二者通过交换机与防火墙相连。
当Client2客户端访问FTP服务器的公网IP地址时,PC机的地址也进行地址转换。这样做的目的是保证Client2客户端和FTP服务器交互的所有报文能够经过防火墙,并处理正确。
基础配置(设备IP,接口配置,防火墙安全策略,访问外网的静态路由等)这里省略。
首先,增加一条安全策略,允许DMZ区域访问Untrust区域。
然后,使用基于地址池的源NAT转换。配置地址池如下:
当内网用户Client2客户端(192.168.1.20)访问外网IP时,防火墙作源NAT转换成202.20.1.100到202.20.1.200范围内随机的一个IP。
配置完成后,对实验结果进行验证。
查看防火墙会话表,可以看到两个地址对应的转换结果。