NGFW安全策略构成
流量通过NGFW时,安全策略的处理流程如下:
NGFW会对收到的流量进行检测,检测出流量的属性,包括:源安全区域 、目的安全区域 、源地址/地区 、目的地址/地区 、用户 、服务 (源端口、目的端口、协议类型)、应用 和时间段 。 NGFW将流量的属性与安全策略的条件进行匹配。如果所有条件都匹配,则此流量成功匹配安全策略。如果其中有一个条件不匹配,则继续匹配下一条安全策略。以此类推,如果所有安全策略都不匹配,则NGFW会执行缺省安全策略的动作(默认为“禁止”)。 如果流量成功匹配一条安全策略,NGFW将会执行此安全策略的动作。如果动作为“禁止”,则NGFW会阻断此流量。如果动作为“允许”,则NGFW会判断安全策略是否引用了安全配置文件
。如果引用了安全配置文件
,则继续进行下一步处理;如果没有引用安全配置文件,则允许此流量通过。 如果安全策略的动作为“允许”且引用了安全配置文件
,则NGFW会对流量进行内容安全的一体化检测。 一体化检测是指根据安全配置文件
的条件对流量的内容进行一次检测,根据检测的结果执行安全配置文件的动作。如果其中一个安全配置文件阻断此流量,则NGFW阻断此流量。如果所有的安全配置文件都允许此流量转发,则NGFW允许此流量转发。
NGFW安全策略配置逻辑
NGFW的安全策略应用在全局,安全区域与IP地址等一样只是作为可选的匹配条件。而且安全区域支持多选。 如果配置了多条安全策略,会从上到下依次进行匹配。如果流量匹配了某个安全策略,将不再进行下一个策略的匹配。所以需要先配置条件精确的策略,再配置宽泛的策略。 系统默认存在一条缺省安全策略,如果流量没有匹配到管理员定义的安全策略,就会命中缺省安全策略(条件均为any
,动作默认为禁止)。 每条策略中都包含了多个匹配条件,如安全区域、用户、应用等。流量只有与安全策略的每一个条件都匹配时,才认为匹配了此安全策略。缺省情况下所有的条件均为any
,即所有流量均可以命中该策略。 如果一个匹配条件中可以配置多个值,则这些值之间是或的关系。即只要匹配任意一个值,就可以认为与该条件匹配。
多通道协议
遇到使用随机协商端口的协议,单纯的包过滤方法无法进行数据流定义
大部分多媒体应用协议(如H.323、SIP)、FTP、netmeeting等协议使用约定的固定端口来初始化一个控制连接,再动态的选择端口用于数据传输。端口的选择是不可预测的,其中的某些应用甚至可能要同时用到多个端口。传统的包过滤防火墙可以通过配置ACL过滤规则匹配单通道协议的应用传输,保障内部网络不受攻击,但只能阻止一些使用固定端口的应用,无法匹配使用协商出随机端口传输数据的多通道协议应用,留下了许多安全隐患。 单通道协议:通信过程中只需占用一个端口的协议。如:WWW只需占用80端口。 多通道协议:通信过程中需占用两个或两个以上端口的协议。如FTP被动模式下需占用21号端口以及一个随机端口。 FTP协议是一个典型的多通道协议,在其工作过程中,FTP Client和FTP Server之间将会建立两条连接:控制连接和数据连接。控制连接用来传输FTP指令和参数,其中就包括建立数据连接所需要的信息;数据连接用来获取目录及传输数据。数据连接使用的端口号是在控制连接中临时协商的。根据数据连接的发起方式FTP协议分为两种工作模式:主动模式(PORT模式)和被动模式(PASV模式)。主动模式中,FTP Server主动向FTP Client发起数据连接;被动模式中,FTP Server被动接收FTP Client发起的数据连接。模式在一般的FTP客户端中都是可以设置的,这里我们以主动模式为例进行讲解。
首先FTP客户端向FTP服务器的21端口发起连接建立控制通道,然后通过PORT命令协商客户端使用的数据传输端口号。协商成功后,服务器主动向客户端的这个端口号发起数据连接。 而且每次数据传输都会协商不同的端口号。 而我们配置的安全策略仅开放了FTP协议,也就是21端口。当FTP客户端向服务器发起控制连接时建立了会话。 而服务器向客户端发起数据连接的源/目的端口号分别是20和临时协商的端口号yyyy,显然不是这条连接的后续报文,无法命中此会话转发。因此会出现可以验证用户密码,但是无法获取目录列表的现象。 如果在服务器到客户端的方向也配置安全策略,就必须开放客户端的所有端口,有安全隐患。
ASPF与Server-map表
设备通过检测报文的应用层数据,自动获取相关信息并创建相应的会话表项,以保证这些应用的正常通信。这个功能称为ASPF
,所创建的会话表项叫做Server-map
表
由于某些特殊应用会在通信过程中临时协商端口号等信息,所以需要设备通过检测报文的应用层数据,自动获取相关信息并创建相应的会话表项,以保证这些应用的正常通信。这个功能称为ASPF(Application Specific Packet Filter),所创建的会话表项叫做Server-map表。
对于多通道协议,例如FTP,ASPF功能可以检查控制通道和数据通道的连接建立过程,通过生成server-map表项,确保FTP协议能够穿越设备,同时不影响设备的安全检查功能。 Server-map表相当于在防火墙上开通了“隐形通道”,使得像FTP这样的特殊应用的报文可以正常转发。当然这个通道不是随意开的,是防火墙分析了报文的应用层信息之后,提前预测到后面报文的行为方式,所以才打开了这样的一个通道。 Server-map通常只是用检查首个报文,通道建立后的报文还是根据会话表来转发。 Server-map表在防火墙转发中非常重要,不只是ASPF会生成,NAT Server等特性也会生成Server-map表。 如图所示:
Server-map表中记录了FTP服务器向FTP客户端的2071端口号发起的数据连接,服务器向客户端发起数据连接时将匹配这个Server-map表转发,而无需再配置反向安全策略。 数据连接的第一个报文匹配Server-map表转发后,防火墙将生成这条数据连接的会话,该数据连接的后续报文匹配会话表转发,不再需要重新匹配Server-map表项。 Server-map表项由于一直没有报文匹配,经过一定老化时间后就会被删除。这种机制保证了Server-map表项这种较为宽松的通道能够及时被删除,保证了网络的安全性。当后续发起新的数据连接时会重新触发建立Server-map表项。
Server-map表
配置ASPF
firewall interzone trust dmz
detect ftp
查看自动生成Server-map表项
display firewall server-map
Type: ASPF, 1.1 .1.254 -> 10.2 .0.254:2097, Zone:---
Protocol: tcp( Appro: ftp-data) , Left-Time:00:00:10
Vpn: public -> public
后续报文匹配会话表转发
display firewall session table
ftp VPN: public --> public 10.2 .0.254:2095 +-> 1.1 .1.254:21
ftp-data VPN: public --> public 1.1 .1.254:20 --> 10.2 .0.254:2097
Server-map表与会话表的关系如下
1. Server-map表记录了应用层数据中的关键信息,报文命中该表后,不再受安全策略的控制;
2. 会话表是通信双方连接状态的具体体现;
3. Server-map表不是当前的连接信息,而是防火墙对当前连接分析后得到的即将到来报文的预测;
4. 防火墙收到报文先检查是否命中会话表;
5. 如果没有命中则检查是否命中Server-map表;
5. 命中Server-map表的报文不受安全策略控制;
6. 防火墙最后为命中Server-map表的数据创建会话表。