大家好,欢迎来到IT知识分享网。
一、首先需要了解以下概念:
1、多通道协议 通信过程中需占用两个或两个以上端口的协议
比如:FTP主动模式下是TCP 20(数据端口)和TCP 21(控制端口)端口、FTP被动模式下需占用21号端口以及一个随机端口;
NGFW安全策略的过滤机制:
对于同一条数据流,只需在访问发起的方向上配置安全策略,反向流量无需配置安全策略。即首包匹配安全策略,通过安全策略过滤后建立会话表,后续包直接匹配会话表,无需再匹配安全策略,提高业务处理效率。
2、ASPF:Application Specific Packet Filter
ASPF(Application Specific Packet Filter,针对应用层的包过滤)也叫基于状态的报文过滤,ASPF功能可以自动检测某些报文的应用层信息并根据应用层信息放开相应的访问规则(生成Server-map表)。
以多通道协议(如FTP、H.323、SIP等)为例,这些多通道协议的应用需要先在控制通道中协商后续数据通道的地址和端口,然后根据协商结果建立数据通道连接。由于数据通道的地址和端口是动态协商的,管理员无法预知,因此无法制定完善精确的安全策略。为了保证数据通道的顺利建立,只能放开所有端口,这样显然会给服务器或客户端带来被攻击的风险。
ASPF作用:
1、应用识别
A、没有开启ASPF,没有做应用层识别
B、开启ASPF,可以做应用识别
2、为多通道协议创建临时的会话通道
<NGFW> display firewall server-map
Type: ASPF, 1.1.1.1 -> 2.2.2.2:yyyy, Zone: —
Protocol: tcp(Appro: ftp-data), Left-Time: 00:00:15 –-临时,时间短
VPN: public -> public
3、NAT ALG:Application Level Gateway
ALG(Application Level Gateway,应用层网关)功能用于NAT场景下自动检测某些报文的应用层信息,根据应用层信息放开相应的访问规则(生成Server-map表),并自动转换报文载荷中的IP地址和端口信息。
普通NAT只能转换报文头中的IP地址和端口,无法对应用层的数据进行转换。在许多应用层协议中,报文载荷中也带有地址或端口信息,如果这些数据不进行转换,可能导致后续通信异常。
通过配置ALG功能,既可以根据应用层信息放开相应的访问规则,同时对应用层的数据进行NAT转换。
NAT ALG功能的目的是识别多通道协议,并自动转换报文载荷中的IP地址和端口信息。
<NGFW> display firewall server-map
Type: ASPF, 1.1.1.1 -> 1.1.1.2:zzzz[192.168.0.1:yyyy], Zone: —
Protocol: tcp(Appro: ftp-data), Left-Time: 00:00:15
VPN: public -> public
4、server-map:Server-map表是实现ASPF/ALG功能的基础之一。
Server-map表用于放行某些在安全策略中无法明确放行的报文,是通过ASPF/ALG功能自动生成的精细“安全策略”,是FW上的“隐形通道”。
ASPF/ALG功能可以检测某些报文的应用层信息,并将应用层信息中的关键数据记录在Serve-map表中。后续报文命中Server-map表直接放行或进行NAT,并建立会话,不受安全策略控制。
注意:对于ASPF/ALG类型的Server-map表,只有相应的流量经过设备时,才会生成相应的Server-map表。
ASPF/ALG类型的Server-map表的老化时间是固定的不可配置。比如ftp协议的Server-map表老化时间为15秒。
下图是Server-map表在转发流程中的位置,可以看出在安全策略前;
Server Map的作用:
A、 Server-map是一种映射关系,当数据连接匹配了动态Server-map表项时,不需要再查找包过滤策略,保证了某些特殊应用的正常转发。(NAT Server、NAT No-PAT产生的Server-map需要查找安全策略)
B、 另一种情况,当数据连接匹配Server-map表,会对报文中IP和端口进行转换。
C、Server-map通常只是用检查首个报文,通道建立后的报文还是根据会话表来转发
二、FTP主动模式的ASPF
1、FTP主动模式下,客户端使用随机端口xxxx向服务器的21端口发起连接请求建立控制通道,然后使用PORT命令协商两者建立数据通道的端口号,协商出来的端口是yyyy。然后服务器主动向客户端的yyyy端口发起连接请求,建立数据通道。数据通道建立成功后再进行数据传输。
2、在配置安全策略时,如果只配置了允许客户端访问服务器的21端口的安全策略,即控制连接能成功建立。但是当服务器访问客户端yyyy端口的报文到达FW后,对于FW来说,这个报文不是前一条连接的后续报文,而是代表着一条新的连接。要想使这个报文顺利到达FTP客户端,FW上就必须配置了安全策略允许其通过,如果没有配置服务器到客户端这个方向上的安全策略,该报文无法通过FW,导致数据通道建立失败。结果是用户能访问服务器,但无法请求数据。
3、如果通过安全策略解决此问题,数据通道使用的端口是在控制通道中临时协商出来的,具有随机性,无法精确预知,所以只能开放客户端的所有端口,这样就会给客户端带来安全隐患。ASPF功能正是为了解决此问题,如上图所示;
查看FW上生成的Server-map表
<NGFW> display firewall server-map
Type: ASPF, 2.2.2.2 -> 1.1.1.1:yyyy, Zone: —
Protocol: tcp(Appro: ftp-data), Left-Time: 00:00:15
VPN: public -> public
查看FW上创建的会话表
<NGFW> display firewall session-table
Current Total Sessions : 2
ftp VPN:public –> public 1.1.1.1:xxxx+->2.2.2.2:21
ftp-data VPN:public –> public 2.2.2.2:20–>1.1.1.1:yyyy
多通道协议会创建多条会话,控制连接和数据连接是两个不同的连接。第一条会话代表控制连接,“+->”表示该会话进入了ASPF/ALG流程。第二条会话代表数据连接,数据通道的报文命中Server-map表后创建数据连接会话。
三、FTP主动模式的ALG
1、未配置ALG功能前,为了保证客户端和服务器之间的控制通道和数据通道的正常建立,FW需要配置两条安全策略:
A、允许从客户端的任意端口到服务器的21端口的访问,用于建立控制连接和发送命令。
B、允许从服务器的20端口到客户端的任意端口的访问,用于建立数据连接。
由于客户端开放的端口是临时协商的,管理员无法提前预知,因此只能开放客户端的所有端口,给客户端带来了安全隐患。
2、另外,在源NAT场景中,即使配置了安全策略,服务器向客户端的私网端口发起数据连接时,数据连接仍然会建立失败。
3、配置了ALG功能后,FW通过分析PORT命令的应用层信息,将命令中携带的私网IP和私网端口转换成公网地址和公网端口后再转发给服务器,并创建Server-map表。服务器向转换后的公网地址和公网端口发起数据连接,报文到达FW后命中该Server-map表项,自动将目的地址和端口转换为真实的私网地址,不再受安全策略控制。
配置了ALG的情况下,FW上只需配置允许从客户端的任意端口到服务器的21端口的安全策略即可。
查看FW上生成的Server-map表
<sysname> display firewall server-map
Type: ASPF, 1.1.1.1 -> 1.1.1.2:zzzz[192.168.0.1:yyyy], Zone: —
Protocol: tcp(Appro: ftp-data), Left-Time: 00:00:15
VPN: public -> public
查看FW上创建的会话表
<sysname> display firewall session-table
Current Total Sessions : 2
ftp VPN:public –> public 192.168.0.1:xxxx[1.1.1.2:2050]+->1.1.1.1:21
ftp-data VPN:public –> public 1.1.1.1:20–>1.1.1.2:zzzz[192.168.0.1:yyyy]
多通道协议会创建多条会话,控制连接和数据连接是两个不同的连接。第一条会话代表控制连接,源地址(客户端地址)经过源NAT,“+-”表示该会话进入了ASPF/ALG流程。第二条会话代表数据连接,数据通道的报文命中Server-map表对目的地址做NAT转换为客户端的私网地址,并创建了数据连接会话。
四、总结
NAT ALG与ASPF的关系:FW支持配置全局、域间和域内的ASPF/ALG功能
差异点:
开启ASPF功能的目的是识别多通道协议,并自动为其开放相应的安全策略。
开启NAT ALG功能的目的是识别多通道协议,并自动转换报文载荷中的IP地址和端口信息。
ASPF能做的是“识别-开放”,而NAT ALG 需要做“识别-转换-开放”;
共同点:
二者使用相同的配置。开启其中一个功能,另一功能同时生效。
开启命令:firewall detect protocol
ASPF和ALG功能使用的是同一个配置,只是不同场景下FW对报文的处理不同,因而叫法不同。非NAT场景下叫ASPF,NAT场景下叫ALG。
扩展知识:
FW支持对如下知名协议的流量进行ASPF/ALG处理
协议 ASPF(IPV4) ALG
DNS YES YES
FTP YES YES
H.323 YES YES
ICQ YES YES
ILS YES YES
NETBIOS YES YES
MGCP YES YES
MMS YES YES
PPTP YES YES
QQ YES YES
RTSP YES YES
RSH YES YES
SCCP YES YES
SIP YES YES
SQLNET YES YES
参考文档:华为HedEx文档
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/62810.html