1.安全策略初体验
安全策略在防火墙转发报文的过程中扮演着重要角色,只有安全策略允许通过,报文才能在安全区域之间流动,否则报文将被丢弃。
先来看一个简单的网络环境,如下图:
如果想在防火墙上允许PC访问Web服务器,用文字的形式来描述这个需求就是:
允许Trust安全区域到Untrust安全区域的、源地址是192.168.0.1、目的地址是172.16.0.1、目的端口是80(HTTP协议)的报文通过。
把上面这段文字描述改用安全策略的方式来表示,同时补充隐含的源端口信息,结果如下图所示:
从上图可知,安全策略基于安全区域的
域间关系来呈现,其内容包括两个组成部分。
- 条件。检查报文的依据,防火墙将报文中携带的信息与条件逐一对比,以此来判断报文是否匹配。
- 动作。对匹配了条件的报文执行的动作,包括允许通过(permit)或拒绝通过(deny),一条策略中只能有一个动作。
安全策略之间是存在顺序的,防火墙在两个安全区域之间转发报文时,会按照从上到下的顺序逐条查找域间存在的安全策略
。如果报文命中了某一条安全策略,就会执行该安全策略中的动作,或允许通过或拒绝通过,不会再继续向下查找;如果报文没有命中某条安全策略,则会向下继续查找。
基于上述实现方式,在配置安全策略时要遵循“先精细,后粗犷”的原则。具体来说,就是先配置匹配范围小、条件精确的安全策略,然后再配置匹配范围大、条件
宽泛的安全策略。
上图两条策略,安全策略1:拒绝Trust安全区域到Untrust安全区域的、源地址是192.168.0.100的报文通过;安全策略2:允许Trust安全区域到Untrust安全区域的、源地址是192.168.0.0/24网段、目的地址是172.16.0.0/24网段的报文通过;匹配顺序从上向下
;
源地址是192.168.0.100的报文会先命中安全策略1,执行拒绝通过的动作,192.168.0.0/24网段的其他报文会命中安全策略2,执行允许通过的动作。
如果安全策略1和安全策略2顺序调换,源地址是192.168.0.100的报文永远不会命中安全策略1,拒绝192.168.0.100的报文通过目的就无法实现。
防火墙自带缺省的安全策略,如果设置的所有安全策略都没有命中,则通过缺省安全策略来处理报文;如下图,安全策略1和安全策略2都没有命中,则会命中缺省包过滤,执行默认的缺省安全策略的动作;
默认情况下,缺省包过滤的动作是拒 绝通过
,也就是说,如果没有配置任何安全策略,防火墙是不允许报文在安全区域之间流动的
。
如果把两个安全区域之间缺省包过滤的动作设置成允许通过,这样操作会带来极大的安全风险,允许所有报文通过,网络隔离和访问控制都无法实现,防火墙也就失去了存在的意义。
当防火墙的接口工作在二层模式(透明模式)时,经过防火墙的报文也会受到安全策略的控制,所以这种情况下也需要配置相应的安全策略对报文进行管控。
2.安全策略发展历程
华为防火墙安全策略的发展主要经历了三个阶段:基于ACL的包过滤阶段、融合UTM的安全策略阶段、一体化安全策略阶段。
一体化安全策略除了基于传统的五元组信息之外,还能够基于Application
(应用)、Content(内容)、Time(时间)、User(用户)、Attack(威胁)、Location(位置)6个维度将模糊的网络环境识别为实际的业务环境,实现精准的访问控制和安全检测。
一体化安全策略由条件、动作和配置文件组成,其中配置文件的作用是对报文进行内容安全检测
,只有动作是允许通过时才能够引用配置文件
。
3.Local区域的安全策略
网络中的一些业务需要经过防火墙转发,还有一些业务是需要防火墙自身参与处
理。例如,管理员会登录到防火墙上进行管理、Internet上的设备或用户会与防火墙建立VPN、防火墙和路由器之间会运行OSPF(Open Shortest Path First,开放最短路径优先)路由协议、防火墙会与认证服务器对接等。
这些业务如果想要正常运行,需要在防火墙的 Local 安全区域
与业务使用的接口所在的安全区域之间配置安全策略。
4.ASPF:隐形通道
ASPF(Application Specific Packet Filter)针对应用层的包过滤,其原理是检测报文的应用层信息,记录应用层信息中携带的关键数据,使得某些在安全策略中没有明确定义要放行的报文也能够得到正常转发。
记录应用层信息中关键数据的表项称为Server-map表,报文命中该表后,不再受安全策略的控制,这相当于在防火墙上开启了一条“隐形通道”。当然这个通道不是随意开启的,是防火墙分析了报文的应用层信息之后,提前预测到后面报文的行为方式,所以才打开了这样的一个通道。
Server-map表和会话表的区别:
- 会话表中的会话是通信双方的连接在防火墙上的具体体现,其作用是记录通信双方的连接状态。防火墙为某条连接的首包生成会话后,该连接的后续包命中会话即可直接转发,不再受安全策略控制。
- Server-map表记录的不是当前连接的信息,而是防火墙分析当前连接的报文后得到的信息,该信息预示了即将到来的报文的特征,防火墙通过Server-map表提前预测报文的行为方式。
- 从处理流程看,防火墙收到报文后,先检查报文是否命中会话表,如果命中,说明该报文是后续包,直接转发。如果报文没有命中会话表,说明该报文是首包,接下来检查报文是否命中Server-map表,报文命中后就不再受安全策略的控制。当然,防火墙最后还是会为该报文生成会话表。
除了ASPF功能之外,NAT功能也会生成Server-map表。
在Trust和Untrust安全域间开启FTP协议的ASPF功能:
[FW] firewall interzone trust untrust
[FW-interzone-trust-untrust] detect ftp
ASPF可以根据报文应用层中的信息动态生成Server-map表项,既简化了安全策略的配置又确保了安全性。可以把ASPF看作是一种穿越防火墙的技术,ASPF生成的Server-map表项,相当于在防火墙上打开了一个通道,使类似FTP的多通道协议的后续报文不受安全策略的控制,利用该通道就可以穿越防火墙。