暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

华为防火墙ALG/ ASPF功能实验演示

爱婷如命一生一世 2018-12-18
4161

ASPF和ALG在华为防火墙上的地位  

在很多企业组网环境中,凡是部署防火墙的网络环境,很多运维人员都认为,只要把安全策略配置好了,企业的任何业务就可以一劳永逸,安全无忧。

如果这样的认为,那么就会有那么一些协议会出来给你难堪!

比如最常用的FTP协议,它的报文交互过程就暗藏玄机!让我们配置的安全策略防不胜防!

为何说FTP协议的特殊,FTP协议是个典型的多通道协议,在其工作的过程,FTP客户端和FTP服务器将会建立两条连接,控制连接和数据连接

控制连接用来传输FTP指令和参数。

数据连接用来获取目录和传输数据。

特殊之处在于有个用于协商端口的的Port报文,会在应用层里数据里携带IP地址和端口。

华为官方对NAT技术在处理报文的时候是这样描述:NAT和NAPT只能对IP报文的头部地址和TCP/UDP头部的端口信息进行转换,没有对来自应用层数据中可能包括IP地址和端口信息进行转换

如图所示普通NAT转换方式,是转换不了应用层数据里面的IP地址和端口号,这就需要用ALG这个技术去解决这个问题。

NAT ALG是一种穿越NAT设备的的技术,ALG会对特定应用层协议进行转换,在对这些特定的应用层协议进行NAT转换过程中,利用所形成的NAT映射表(可以是静态配置可以使动态或者NAT server形成的NAT映射表)信息同时改变封装在IP报文数部分中的地址和端口信息,同时允许这些数据部分带有不可识别的私网地址和端口信息的应用层协议报文可以穿越NAT设备进行传输,相当于屏蔽了报文中的私网地址信息


注意的是像NAT ALG 这样的NAT扩展技术,必须是在静态NAT或动态NAT或NATserver中应用,不能单独配置使用

在华为防火墙中,NAT ALG和ASPF功能是由一条命令控制,开启NAT ALG功能就等同于同时开启ASPF功能



ALG/ASPF  实验演示

实验拓扑:这个拓扑还是之前用到的拓扑,其中安全策略,接口归属、默认路由都已配置完毕。


先保证客户端1能够Ping通219.0.1.250这台服务器:

在ENSP中搭建一个FTP服务器:指定相关路径,启动服务。


根据数据连接的发起方式,FTP协议分为两种工作模式

主动模式(port)FTP服务器主动向FTP客户端发起数据连接。

被动模式(pasv) FTP服务器被动接受FTP客户端发起的数据连接。

在ENSP模拟器中,选择为主动模式

在客户端1上进行FTP访问:如图所示,访问成功。


在防火墙中将ALG/ASPF功能关掉:关于这个aspf配置,下文我会详细解释,这里我先关闭它,为了求得实验理论

也可用命令行关闭:关闭ASPF和ALG功能。

[Firewall-1]undo firewall detect ftp 


在ENSP模拟器中使用FTP客户端访问FTP服务器,竟然无法访问,


既然防火墙是基于会话转发,我们先来查检查下会话情况:查看到的访问FTP服务器时是有会话存在的。

[Firewall-1]display  firewall session table


通过抓包,我们来观察下访问失败的原因:

抓取中国电信的G0/0/0号接口,在抓取处于公网内的报文竟然还携带者私网地址这样的报文肯定会被运营商直接丢弃!即使是被放行,对端的服务器一旦接收到这样的报文,回程的连接的目的地址一定是10.0.0.8, 可是这是私网地址,TCP的三次我是无法建立。

这样一来,数据进行解封装,解封到应用层后,对方客户端所看到的就是没有经过相应转换的应用层地址和端口信息。这样的话,在对端应用层发送响应报文时采用的就是没有经过相应地址转换的源端信息作为目的地址和端口信息(是公网IP地址和公网端口号),造成的结果肯定是响应报文无法到达配置了私网IP地址和私网端口号的源端。

在华为官方是这样解释:

对于防火墙来说,关于FTP服务器回给FTP客户端的回程报文,这个回程报文并不是前一条连接的后续报文,而是代表了一条新的连接。


当时分析到这一点的时候,我认为如果在FTP服务器到FTP客户端的这个方向配置一条安全策略,就可以解决这个问题,但是我紧接着想到FTP在进行数据连接的时候使用的端口是在控制连接中协商出来的,具有随机性,我无法精确预知!要是开放所有的客户端的端口,势必会给FTP客户端造成安全隐患!

这时候,我就要介绍ASPF这个功能了。





防火墙中启用ASPF

ASPF-----全称 application Specific Packet Filter 针对应用层的包过滤。

在华为防火墙中是默认开启ASPF的FTP协议。

[Firewall-1]firewall detect ftp 

ASPF主要负责报文的应用层信息,检测报文的应用层信息,记录应用层的信息中携带的关键数据,使得某些在安全策略中没有明确定义要放行的报文也能得到顺利转发。

因此在网络中如果存在FTP这样的业务,请检查是否开启了相应的ASPF功能。

而记录应用层信息中关键数据的表项称为 server-map表。报文命中该名,不再受安全策略的控制,这相当于我在防火墙上开启了一条“隐形通道”,当然这个数据表项是不会时时出现,只有防火墙分析了报文的应用层信息之后,提前预测到后面报文的行为方式,才会显现!

[Firewall-1]display firewall server-map 

在工作中要时刻注意server-map表和session表都是防火墙上的重要表项,各自作用不同,不能互相替代!

如图所示:

我们看到防火墙生成一条 server-map的ASPF表项,FTP服务器访问FTP客户端的报文,正是命中了这条表项后直接被转发,我们不用为其配置安全策略,这条aspf的 server-map表不会永久存在,老化时间到了之后,会被删除。也保证了安全性。

在客户端访问FTP服务器的同时,抓取报文,从 FTP port报文中,我们可以看到其携带的IP地址和端口变为了公网IP地址。端口协商已成功,服务器紧接着就会发送TCP连接发送数据了。


华为防火墙的ASPF功能还可以阻断HTTP协议中有害的插件,在HTTP协议中会包含Java 和Active X 插件,这些的内容会被利用制作成木马和病毒,其传播方式会在HHTP报文的载荷中进行传输,如果单单检查HTTP报文头部是无法识别,所以必须通过ASPF对HTTP报文的载荷信息进行检查,以保护内网主机。



文章转载自爱婷如命一生一世,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论