1.什么是安全策略
安全策略基于安全区域的域间关系来呈现,其内容包括两个组成部分。
条件。检查报文的依据,防火墙将报文中携带的信息与条件逐一对比,以此来判断报文是否匹配。
动作。对匹配了条件的报文执行的动作,包括允许通过(permit)或拒绝通过(deny),一条策略中只能有一个动作
安全策略之间是存在顺序的,防火墙在两个安全区域之间转发报文时,会按照从上到下的顺序逐条查找域间存在的安全策略。如果报文命中了某一条安全策略,就会执行该安全策略中的动作,或允许通过或拒绝通过,不会再继续向下查找;如果报文没有命中某条安全策略,则会向下继续查找🐱🐉
我们在配置安全策略时要遵循“先精细,后粗犷”的原则。具体来说,就是先配置匹配范围小、条件精确的安全策略,然后再配置匹配范围大、条件宽泛的安全策略。
2.缺省包过滤
报文如果没有命中任何一条安全策略,最后将会命中缺省包过滤,防火墙将会对报文执行缺省包过滤中配置的动作。
默认情况下,缺省包过滤的动作是拒绝通过✨
3.安全策略发展历程
第一阶段:基于ACL的包过滤
基于ACL的包过滤通过ACL来对报文进行控制,ACL中包含若干条规则(rule),每条规则中定义了条件和动作。ACL必须事先配置,然后在安全域间引用。
第二阶段:融合UTM的安全策略
与基于ACL的包过滤不同,此时的安全策略中可以直接定义条件和动作,无需再额外配置ACL。另外,安全策略的动作为允许通过时,还可以引用AV、IPS等UTM策略,对报文进一步的检测。
第三阶段:一体化安全策略
所谓的一体化,主要包括两个方面的内容:其一是配置上的一体化,像反病毒、入侵防御、URL过滤、邮件过滤等安全功能都可以在安全策略中引用安全配置文件来实现,降低了配置难度;其二是业务处理上的一体化,安全策略对报文进行一次检测,多业务并行处理,大幅度提升了系统性能。
一体化安全策略除了基于传统的五元组信息之外,还能够基于Application(应用)、Content(内容)、Time(时间)、User(用户)、Attack(威胁)、Location(位置)6个维度将模糊的网络环境识别为实际的业务环境,实现精准的访问控制和安全检测
与前两个阶段的安全策略相比,一体化安全策略有以下区别。
安全策略基于全局范围,不再基于安全域间,安全区域只作为可选的条件,可同时配置多个安全区域。
安全策略中的缺省动作代替了缺省包过滤,全局生效,不再区分域间。
4.Local区域的安全策略
网络中的一些业务需要经过防火墙转发,还有一些业务是需要防火墙自身参与处理。例如,管理员会登录到防火墙上进行管理、Internet上的设备或用户会与防火墙建立VPN、防火墙和路由器之间会运行OSPF(Open Shortest Path First,开放最短路径优先)路由协议、防火墙会与认证服务器对接等。
这些业务如果想要正常运行,就必须在防火墙上配置相应的安全策略,允许防火墙接收各个业务的报文。具体来说,就是要在防火墙的Local安全区域与业务使用的接口所在的安全区域之间配置安全策略。
一般情况下,单播报文是受安全策略控制,所以需要配置安全策略允许报文通过;而组播报文不受安全策略控制,也就不需要配置相应的安全策略🤷♂️
5.ASPF
一个失败的案例:
FTP协议是一个典型的多通道协议,在其工作过程中,FTP客户端和FTP服务器之间将会建立两条连接:控制连接和数据连接。控制连接用来传输FTP指令和参数,其中就包括建立数据连接所需要的信息;数据连接用来获取目录及传输数据。
FTP协议分为两种工作模式:主动模式(PORT模式)和被动模式(PASV模式)。主动模式中,FTP服务器主动向FTP客户端发起数据连接;被动模式中,FTP服务器被动接收FTP客户端发起的数据连接。
首先FTP客户端使用随机端口xxxx向FTP服务器的21端口发起连接请求建立控制连接,然后使用PORT命令协商两者进行数据连接的端口号,协商出来的端口是yyyy。然后FTP服务器主动向FTP客户端的yyyy端口发起连接请求,建立数据连接。数据连接建立成功后,才能进行数据传输。
我们只配置了允许FTP客户端访问FTP服务器的安全策略,即控制连接能成功建立。但是当FTP服务器访问FTP客户端yyyy端口的报文到达防火墙后,对于防火墙来说,这个报文不是前一条连接的后续报文,而是代表着一条新的连接。要想使这个报文顺利到达FTP客户端,防火墙上就必须配置了安全策略允许其通过,但是我们没有配置FTP服务器到FTP客户端这个方向上的安全策略,所以该报文无法通过防火墙,导致FTP访问失败。
这个时候就要有请安全策略的神秘助手ASPF出场亮相了。
单从名字来看,ASPF主要是盯着报文的应用层信息来做文章,其原理是检测报文的应用层信息,记录应用层信息中携带的关键数据,使得某些在安全策略中没有明确定义要放行的报文也能够得到正常转发。记录应用层信息中关键数据的表项称为Server-map表,报文命中该表后,不再受安全策略的控制,这相当于在防火墙上开启了一条 “隐形通道”。当然这个通道不是随意开启的,是防火墙分析了报文的应用层信息之后,提前预测到后面报文的行为方式,所以才打开了这样的一个通道。
在安全区域的域内开启FTP协议的ASPF功能: 😁
一个成功的总结:
我们可以把ASPF看作是一种穿越防火墙的技术,ASPF生成的Server-map表项,相当于在防火墙上打开了一个通道,使类似FTP的多通道协议的后续报文不受安全策略的控制,利用该通道就可以穿越防火墙。
防火墙上的ASPF功能还可以阻断HTTP协议中的有害插件。HTTP协议中会包含Java和ActiveX插件,它们非常容易被制作成木马和病毒,危害内网主机的安全。Java和ActiveX插件通常被包含在HTTP报文的载荷中进行传输,如果只检查HTTP报文头信息,无法将其识别出来。所以必须通过ASPF来对HTTP报文的载荷信息进行检测,识别并阻断Java和ActiveX插件,保护内网主机。阻断HTTP协议中有害插件的配置也很简单,在安全区域的域间或域内执行detect activex-blocking或detect java-blocking命令即可。