赞
踩
——————————————————————————————————————————————————
上一章多次提到规则,规则在防火墙转发报文过程中扮演着重要角色,只有规则允许通过,报文才能在安全区域之间流动,否则报文丢弃。规则在防火墙的具体体现就是安全策略。安全策略涵盖的内容很多,实现原理也比较复杂。
先从一个简单的环境说起。下图,PC和Web服务器位于不同的网络,分别与防火墙相连,PC属于Trust区域,Web属于Untrust区域。
如果想在防火墙上允许PC访问Web服务器,用文字的形式就是:允许Trust区域到Untrust区域、源地址192.168.1.2、目的地址172.16.0.1、目的端口80的报文通过。安全策略基于区域的域间关系来呈现,内容包括两组部分。
1、条件:检查报文的依据,将报文中携带的信息与条件逐一对比,来判断报文是否匹配。
2、动作:匹配了条件报文执行动作,包括允许通过Permit和拒绝通过deny。一个策略只允许一个动作。
安全策略的条件可以分为多个字段,如源地址、源端口、目的地址、目的端口等,这些字段之间是与的关系,也就是说,只有报文中的信息和所有字段都匹配上,才算命中了这条策略。
如果同一个字段中有多个匹配项,如同时匹配有两个源地址或三个目的地址,这些匹配项之间是或的关系,只要报文匹配了其中一项,就算匹配了该条件。
安全策略配置完成后,PC就可以访问WEB。WEB服务器回应给PC的报文,会匹配会话转发,不需要再配置额外的安全策略。这点在状态检测和会话机制中已经介绍过了。
在实际的网络中,不仅只有PC和WEB两个特定目标通信,而是两个网络之间的通信,如192.168.10.0/24网段访问172.16.0.0/24网段。所以策略的条件配置成一个网段。
如果这时有新的需求,不让192.168.10.0/24网段中的特定地址192.168.10.100访问172.16.0.0/24网段,可以新增一条安全策略。拒绝Trust区域到Untrust区域、源地址192.168.10.100的报文通过。这两条安全策略的条件都有源地址192.168.10.100,也可以说既可以命中第一条策略,还可以命中第二条策略,但是两个策略的动作是冲突的,防火墙如何处理这些动作呢?
——————————————————————————————————————————————————
安全策略之间存在顺序的,防火墙会按照从上到下的顺序逐条查找域间存在的安全策略。如果报文命中某一条安全策略,就会执行策略中的动作,或允许通过或拒绝通过,不会再继续查找。如果没有命中某条安全策略,则向下继续查找。
基于上述定义,在配置安全策略时要遵循,先精细、后粗犷的原则。先配置小范围、条件精确的的安全策略,在配置范围大、条件宽泛的安全策略。ACL规则和安全策略是一个原理。
如第一条策略:拒绝Trust区域到Untrust区域、源地址192.168.10.100的报文通过。
第二条策略:允许Trust区域到Untrust区域、源地址192.168.10.0的报文通过。
如果把策略的顺序颠倒下,源地址192.168.10.100的报文永远不会命中动作为拒绝的策略。
如果查找的安全策略时,所有都没有命中,针对这种情况,防火墙提供了缺省包过滤功能。
——————————————————————————————————————————————————
缺省包过滤本质也是一种安全策略。也可以叫做缺省安全策略。缺省包过滤中没有具体的条件,对所有报文均生效,动作也是分为允许或拒绝两种。缺省包过滤只是一种叫法,华为一直沿用这种叫法,和第一代包过滤防火墙没有关系。
缺省包过滤的条件最宽泛,所有的报文都可以匹配上,所以防火墙把缺省包过滤作为处理报文的最后手段。如报文没有命令任何一条安全策略,最后将命中缺省包过滤,防火墙会对报文执行缺省包过滤中匹配的动作。
默认,缺省包过滤的动作是拒绝通过。
有时候为了简化配置,大家会把默认的缺省包过滤动作设置为允许。这样确实省时省事,但是会带来极大风险。允许所有报文通过。网络隔离和访问控制都无法实现,防火墙也就失去了存在的意义。
默认情况下,华为防火墙也支持安全区域内的安全策略,限制某些特定报文通过。当防火墙工作在交换模式(透明模式)时,经过防火墙的报文也会受到安全策略控制。
除了经过防火墙转发的报文,防火墙本身与外界交互的报文也同样受到安全策略控制。产生这类报文的业务包括管理员登录防火墙、与其他设备建立VPN等。这些将会在Local区域安全策略中详细介绍。
——————————————————————————————————————————————————
网络世界风云变幻,安全威胁层出不穷,为了适应变化,华为防火墙安全策略也随之改进和完善。
第一阶段:基于ACL的包过滤阶段
匹配条件:报文五元组和时间段。 动作:允许/拒绝。 通过安全域间引用ACL方式实现。
第二阶段:融合UTM安全策略
匹配条件:报文五元组、用户和时间段。 动作:允许/拒绝,允许通过的报文继续进行UTM处理,包括IPS/AV/URL过滤等。通过策略的方式实现,策略中配置的条件和动作。
第三阶段:一体化安全策略
基于ACTUAL的六维度感知体系,精确识别报文。一次识别流量的应用类型和携带内容,内容安全多业务并行处理。
——————————————————————————————————————————————————
基于ACL包过滤是华为防火墙早期的实现方式,如USG5000系列V100R003版本,USG9500系列V200R001版本等。
基于ACL的包过滤通过ACL来对报文进行控制,包含若干规则rule,定义条件和动作。在安全域间引用。
acl number 3000
rule 5 deny ip source 192.168.10.100 0
rule 10 permit ip source 192.168.10.0 0.0.0.255 destination 172.16.0.0 0.0.0.255
firewall interzone trust untrust
packet-filter 3000 outbound
——————————————————————————————————————————————————
随着UTM产品推出,华为防火墙安全策略也向前迈进了,真正变成了策略的形式。与基于ACL包过滤不同,此时的安全策略可以直接定义条件和动作,无需额外配置ACL。另外安全策略还可以引用AV、IPS等UTM策略,对报文进一步检测。
融合UTM安全策略由条件、动作和UTM组成。在安全策略条件中出现了服务集(Server-set)概念,代替了协议和端口。安全策略中已经内置了一些服务集,包含常见的协议,直接配置条件即可,对于不在此范围之内的协议或端口,可自定义新的服务集。
融合UTM安全策略之间也是存在顺序的。从上到下逐条查找。
例:在Trust区域到Untrust区域方向上,拒绝源地址192.168.10.100的报文通过;允许源地址192.168.10.0/24网段,目的地址172.16.0.0/24网段报文通过。
policy interzone trust untrust outbound
policy 1
policy source 192.168.0.100 0
action deny
policy 2
policy source 192.168.0.0 0.0.0.255
policy destination 172.16.0.0 0.0.0.255
action permit
——————————————————————————————————————————————————
网络高速发展,应用不断增多,协议的使用方式和数据传输方式发生改变,网络蠕虫、僵尸网络以及其他基于应用的攻击不断产生。传统防火墙主要基于端口和协议来识别应用,基于传输层的特征来进行攻击检测和防护,面对网络蠕虫、僵尸网络等威胁将不再具有足够的防护能力。新的安全需求,推动下一代防火墙的产生,华为防火墙与时俱进,安全策略发展到“一体化”安全策略的新阶段。目前USG6000系列防火墙的V100R001版本采用的是一体化安全策略。
统一威胁管理UTM(Unified Threat Management)是一种功能全面的安全产品,作为单个产品能提供多种安全功能,包括反病毒、反恶意软件、防火墙、入侵防御、URL过滤等功能。因此,可以通过单一管理平台监控所有威胁和安全相关活动,通过UTM,用户可以全面、简化地了解安全架构的所有要素。
本人用的模拟器仿真平台,USG6000V2,V500R005版本
所谓的一体化,主要包括两个内容:配置上的一体化,像防病毒、入侵防御、URL过滤、邮件过滤等安全功能都可以在安全策略中引用安全配置文件来实现。其二是业务上的处理一体化,安全策略对报文进行一次检测,多业务并行处理。
与前两个阶段安全策略相比,一体化策略有以下区别:
1、安全策略基于全局范围,不在基于安全域间,安全区域只作为可选条件。
2、安全策略中的缺省动作代替了缺省包过滤,全局生效,不再区分域间。
security-policy rule name to_web_permit source-zone trust destination-zone untrust source-address 192.168.10.100 mask 255.255.255.255 user user-group /default 基于用户组 application label Database 基于应用类数据库 application label HTTP-Based 基于应用类的Http time-range worktime 基于时间段 url pre-defined category 1 profile av default 引用防病毒模板 profile ips strict 引用IPS入侵防御模板 profile url-filter default 引用URL过滤模板 profile aapt APT 引用APT防御模板 profile dns-filter default 引用DNS过滤模板 action permit rule name to_web_pemit source-zone local destination-zone untrust source-address 192.168.10.0 mask 255.255.255.0 destination-address 172.16.0.0 mask 255.255.255.0 action permit
——————————————————————————————————————————————————
网络中一些业务需要经过防火墙转发,还有一些是自身参与处理。这些业务如果要正常运行,必须在防火墙上的Local安全区域与业务使用的接口所在的区域配置安全策略。
——————————————————————————————————————————————————
使用USG6000防火墙和两台路由器搭建一个简单的OSPF环境,验证的是防火墙本身参与到OSPF路由计算的场景。
如果防火墙本身不参与OSPF路由计算,只透传OSPF路由报文的场景中,接收和发送OSPF报文的两个接口属于不同的安全区域时,必须配置安全策略,允许OSPF报文通过。
HUG6000 interface GigabitEthernet1/0/1 ip address 1.1.1.1 255.255.255.252 firewall zone untrust add interface GigabitEthernet1/0/1 ospf 100 area 0.0.0.0 network 1.1.1.0 0.0.0.3 AR1: interface GigabitEthernet0/0/0 ip address 1.1.1.6 255.255.255.252 interface GigabitEthernet0/0/1 ip address 1.1.1.2 255.255.255.252 ospf 100 area 0.0.0.0 network 1.1.1.0 0.0.0.3 network 1.1.1.4 0.0.0.3 AR2: interface GigabitEthernet0/0/0 ip address 1.1.1.5 255.255.255.252 ospf 100 area 0.0.0.0 network 1.1.1.4 0.0.0.3
默认情况下,防火墙没有开启G1/0/1接口所在的Untrust区域和Local区域之间的安全策略。
在防火墙上使用 dis ospf peer查看OSPF邻接关系
邻居是正常建立的,OSPF邻接关系Full。
但是资料上的案例是ExStart状态,没有成功交换DD报文。资料的案例是USG9500 V300R001版本,而实验环境用的USG6000V2,V500R005版本。查看了下USG6000官方手册。
OSPF协议本身是基于组播地址224.0.0.5交互OSPF报文。查看官方文档,USG6000系列防火墙组播报文是不受控制的。所以邻居状态为Full。
如果按照老版本的操作,需要在策略里放行Local到Untrust区域的OSPF报文。
security-policy
rule name to_web_ospf
source-zone local
destination-zone untrust
service ospf
action permit
总结:按照单播报文和组播报文的角度考虑,对于防火墙来说,根据官方USG6000系列的手册,默认情况下,单播和组播都不受控制,当执行了firewall packet-filter basic-protocol enable后,单播报文是受控的,需要配置安全策略,而组播报文是不受控的,不需要配置安全策略。
资料上显示的OSPF的DD报文和虚链路报文是单播。使用reset ospf process 重启OSPF进程。来看看DD报文是否为单播。
都是单播。
组播。
所以按照资料案例上的说法是单播受控,所以邻居状态是ExStart状态。USG官方文档的意思只有执行firewall packet-filter basic-protocol enable后,单播报文是受控的。我们来执行下看看。
OSPF邻居变成了ExStart状态,单播报文受控。
我们在来配置下策略。
security-policy
rule name Local_to_Untrust_ospf
source-zone local
destination-zone untrust
service ospf
action permit
刚配置完命令,控制台的日志输出:建立邻接关系成功,邻居状态Full。
书上的资料可能老旧了,但是明白原理对维护很有帮助。新版本的OSPF协议报文安全策略不管是单播还是组播都是不受控制的。
——————————————————————————————————————————————————
以前提到的管理员登录设备、与认证服务器对接、建立VPN、OSPF等。其实还有许多如:GRE VPN、L2TP VPN、IPSec VPN、SSL VPN等功能后续会介绍。
补充下,针对管理员登录设备,需要配置Trust到Local区域的安全策略,但是在实际中,防火墙都提供了默认的登录方式,可以通过M口登录到防火墙,不需要配置安全策略。
——————————————————————————————————————————————————
通过策略的学习,可能也会认为,只要把安全策略配置好了,就可以一劳永逸。但是有些协议变化莫测,比如FTP协议,它的报文交互就暗藏玄机,让安全策略防不胜防。单凭安全策略无法完成掌控报文转发。
——————————————————————————————————————————————————
我们先模拟下FTP客户端访问FTP服务器的组网,FTP客户端和FTP服务器与防火墙相连,客户端属于Trust区域,服务器属于Untrust区域。
如果想让FTP客户端访问FTP服务器,防火墙的安全策略怎么配置??肯定是在Trust到Untrust,允许特定源/目的的FTP报文通过就可以了。
配置完防火墙接口及区域后,配置FTPSer。接着我们加入策略
Trust到Untrust,源地址192.168.10.2,目的地址172.16.0.1,协议FTP,动作允许。
security-policy
rule name Trust_to_Untrust_FTP
source-zone trust
destination-zone untrust
source-address 192.168.10.2 mask 255.255.255.255
destination-address 172.16.0.1 mask 255.255.255.255
service ftp
action permit
FTP无法访问。。。。
查看防火墙会话,发现以建立会话
为什么会无法访问?要从FTP协议的特殊讲起,FTP协议是一个多通道协议,FTP客户端和服务器之间会建立两条连接,控制连接和数据连接,控制传输FTP指令和参数,包括建立数据连接所需要的信息,数据连接获取目的及传输数据。
大概说下吧:
1、先是客户端向服务器端口21发送,控制连接的三次握手。。TCP3次握手。。。
2、控制连接交互。。交互用户名/密码。协商接下来发送数据的端口等等。。
3、交互完了开始数据连接的TCP三次握手。。。服务端向客户端协商的数据端口发送。
4、控制连接确认后,开始传输数据,。。。。
我们只配置了允许FTP客户端访问服务端的安全策略,控制连接能成立。但是FTP服务端向客户端协商的端口的报文到达防火墙时,防火墙认为这是一个新的报文,不是之前连接的后续报文。我们没有配置服务器到客户端的安全策略。所以交互失败。
如何解决这个问题呢?聪明的人肯定说,在FTP服务器到客户端配置一条安全策略。这算是一种方法。
但是协商出来的端口是随机的。无法精确预知,所以要开放所有端口,这样会带来安全隐患。要是防火墙能自己记录这个端口,然后开启安全策略就好了。
防火墙已经考虑这个问题了,这个时候就要有请安全策略的神秘助手ASPF(针对应用层的包过滤)出场了。ASPF主要盯着报文的应用层信息来做文章,记录应用层信息中携带的关键数据,使得某些在安全策略中没有明确定义要放行的报文也能正常转发。
记录应用层信息中关键数据的表项称为Server-map表,报文命中该表后,不再受安全策略控制。Sever-map表记录的不是当前连接的信息,而是分析当前连接的报文后得到的信息。防火墙收到报文后,先检查是否命中会话表,如命中,则认为是后续报文,如不命中则认为是首包,检查是否命中Server-map表。
防火墙Server-map表和会话表作为防火墙重要表项,两者作用不同,也不能互相替代。
开启ASPF的FTP功能操作很简单。
firewall interzone trust untrust
detect ftp
也可以全局开启ASPF的FTP功能
firewall detect ftp
开启后可以正常访问。当我们正常访问数据的时候。可以查看server-map表。可以看到服务器访问客户端报文的Server-map表项。老化时间到期后,自动清除。
我们也可以在WEB界面全局开启ASPF功能。华为USG6000V2默认开启ASPF FTP功能。
除了FTP以外,还支持针对其他多通道协议的ASPF功能,如SIP、H.323、MGCP等。具体默认开启还得看官方手册。。
——————————————————————————————————————————————————
对于不在detect命令支持协议范围内的某些特殊应用,防火墙提供了用户自定义协议的ASPF功能。可以通过ACL来识别该应用的报文,ASPF会自动为其创建三元组Server-map表项。保证该应用报文顺利通过防火墙。配置ACL越精细越好,以免影响其他业务。
以TFTP举例
TFTP协议控制通道和数据通道共用TFTP客户端的端口号。开启用户自定义的ASPF功能很简单。
acl 3000
rule permit ip source 192.168.10.2 0
firewall interzone trust untrust
detect user-defined 3000 outbound
开启后虽然生成的表项保证了业务,但是也存在对端口的访问权限。防火墙针对ASPF安全策略,对命中三元组表项再进行过滤,实现更精细化的控制。例如,通过上面配置的三元组Server-map表项,要求对命中该表项报文进一步控制。
acl 3000
rule permit ip source 192.168.10.2 0 destination 172.16.0.1 0
firewall interzone trust untrust
aspf packet-filter 3000 outbound
无论是FTP、QQ、自定义协议,ASPF都会生成Server-map表项,帮助这些协议穿越防火墙,保证业务正常运行。
此外,防火墙的ASPF功能还可以阻断HTTP协议的有害插件。HTTP协议包含Java和ActiveX插件,非常容易制作成木马和病毒。它们包含在HTTP报文的载荷中传输,只检查报文头信息,无法识别。
阻断HTTP协议有害插件也很简单,在安全区域的域间内执行detect activex-blocking或detect java-blocking命令即可。
firewall interzone untrust trust
detect activex-blocking
detect java-blocking
——————————————————————————————————————————————————
如何精确指定匹配条件是配置安全策略难点,匹配设置过于宽泛带来安全风险,过于严格,可能会导致报文无法命中,影响业务运行。
在配置的时候,首先将缺省包过滤动作改为允许通过,对业务进行调测。然后查看会话表,以会话表中记录的信息为匹配条件配置安全策略,最后恢复缺省包过滤配置。再次验证策略是否正确。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。