• 二、防火墙-安全策略


    ——————————————————————————————————————————————————

    1、安全策略基本概念

    上一章多次提到规则,规则在防火墙转发报文过程中扮演着重要角色,只有规则允许通过,报文才能在安全区域之间流动,否则报文丢弃。规则在防火墙的具体体现就是安全策略。安全策略涵盖的内容很多,实现原理也比较复杂。

    先从一个简单的环境说起。下图,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,也可以说既可以命中第一条策略,还可以命中第二条策略,但是两个策略的动作是冲突的,防火墙如何处理这些动作呢?

    ——————————————————————————————————————————————————

    2、匹配顺序

    安全策略之间存在顺序的,防火墙会按照从上到下的顺序逐条查找域间存在的安全策略。如果报文命中某一条安全策略,就会执行策略中的动作,或允许通过或拒绝通过,不会再继续查找。如果没有命中某条安全策略,则向下继续查找。

    基于上述定义,在配置安全策略时要遵循,先精细、后粗犷的原则。先配置小范围、条件精确的的安全策略,在配置范围大、条件宽泛的安全策略。ACL规则和安全策略是一个原理。

    如第一条策略:拒绝Trust区域到Untrust区域、源地址192.168.10.100的报文通过。
    第二条策略:允许Trust区域到Untrust区域、源地址192.168.10.0的报文通过。

    如果把策略的顺序颠倒下,源地址192.168.10.100的报文永远不会命中动作为拒绝的策略。

    如果查找的安全策略时,所有都没有命中,针对这种情况,防火墙提供了缺省包过滤功能。

    ——————————————————————————————————————————————————

    3、缺省包过滤

    缺省包过滤本质也是一种安全策略。也可以叫做缺省安全策略。缺省包过滤中没有具体的条件,对所有报文均生效,动作也是分为允许或拒绝两种。缺省包过滤只是一种叫法,华为一直沿用这种叫法,和第一代包过滤防火墙没有关系。

    缺省包过滤的条件最宽泛,所有的报文都可以匹配上,所以防火墙把缺省包过滤作为处理报文的最后手段。如报文没有命令任何一条安全策略,最后将命中缺省包过滤,防火墙会对报文执行缺省包过滤中匹配的动作。

    默认,缺省包过滤的动作是拒绝通过。

    有时候为了简化配置,大家会把默认的缺省包过滤动作设置为允许。这样确实省时省事,但是会带来极大风险。允许所有报文通过。网络隔离和访问控制都无法实现,防火墙也就失去了存在的意义。

    默认情况下,华为防火墙也支持安全区域内的安全策略,限制某些特定报文通过。当防火墙工作在交换模式(透明模式)时,经过防火墙的报文也会受到安全策略控制。

    除了经过防火墙转发的报文,防火墙本身与外界交互的报文也同样受到安全策略控制。产生这类报文的业务包括管理员登录防火墙、与其他设备建立VPN等。这些将会在Local区域安全策略中详细介绍。

    ——————————————————————————————————————————————————

    4、安全策略发展史

    网络世界风云变幻,安全威胁层出不穷,为了适应变化,华为防火墙安全策略也随之改进和完善。

    第一阶段:基于ACL的包过滤阶段

    匹配条件:报文五元组和时间段。 动作:允许/拒绝。 通过安全域间引用ACL方式实现。

    第二阶段:融合UTM安全策略

    匹配条件:报文五元组、用户和时间段。 动作:允许/拒绝,允许通过的报文继续进行UTM处理,包括IPS/AV/URL过滤等。通过策略的方式实现,策略中配置的条件和动作。

    第三阶段:一体化安全策略

    基于ACTUAL的六维度感知体系,精确识别报文。一次识别流量的应用类型和携带内容,内容安全多业务并行处理。

    ——————————————————————————————————————————————————

    4.1.基于ACL包过滤

    基于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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    ——————————————————————————————————————————————————

    4.2.融合UTM安全策略

    随着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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    ——————————————————————————————————————————————————

    4.3.一体化安全策略

    网络高速发展,应用不断增多,协议的使用方式和数据传输方式发生改变,网络蠕虫、僵尸网络以及其他基于应用的攻击不断产生。传统防火墙主要基于端口和协议来识别应用,基于传输层的特征来进行攻击检测和防护,面对网络蠕虫、僵尸网络等威胁将不再具有足够的防护能力。新的安全需求,推动下一代防火墙的产生,华为防火墙与时俱进,安全策略发展到“一体化”安全策略的新阶段。目前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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    ——————————————————————————————————————————————————

    5、Local区域安全策略

    网络中一些业务需要经过防火墙转发,还有一些是自身参与处理。这些业务如果要正常运行,必须在防火墙上的Local安全区域与业务使用的接口所在的区域配置安全策略。

    ——————————————————————————————————————————————————

    5.1.针对OSPF协议配置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
    
    AR1interface 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
    
    AR2interface 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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    默认情况下,防火墙没有开启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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    总结:按照单播报文和组播报文的角度考虑,对于防火墙来说,根据官方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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    刚配置完命令,控制台的日志输出:建立邻接关系成功,邻居状态Full。

    在这里插入图片描述

    书上的资料可能老旧了,但是明白原理对维护很有帮助。新版本的OSPF协议报文安全策略不管是单播还是组播都是不受控制的。

    ——————————————————————————————————————————————————

    5.2.其他协议

    以前提到的管理员登录设备、与认证服务器对接、建立VPN、OSPF等。其实还有许多如:GRE VPN、L2TP VPN、IPSec VPN、SSL VPN等功能后续会介绍。

    补充下,针对管理员登录设备,需要配置Trust到Local区域的安全策略,但是在实际中,防火墙都提供了默认的登录方式,可以通过M口登录到防火墙,不需要配置安全策略。

    ——————————————————————————————————————————————————

    6、ASPF

    通过策略的学习,可能也会认为,只要把安全策略配置好了,就可以一劳永逸。但是有些协议变化莫测,比如FTP协议,它的报文交互就暗藏玄机,让安全策略防不胜防。单凭安全策略无法完成掌控报文转发。

    ——————————————————————————————————————————————————

    6.1.帮助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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    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
    
    • 1
    • 2

    也可以全局开启ASPF的FTP功能

    firewall detect ftp
    
    • 1

    在这里插入图片描述
    开启后可以正常访问。当我们正常访问数据的时候。可以查看server-map表。可以看到服务器访问客户端报文的Server-map表项。老化时间到期后,自动清除。

    在这里插入图片描述

    我们也可以在WEB界面全局开启ASPF功能。华为USG6000V2默认开启ASPF FTP功能。

    在这里插入图片描述

    除了FTP以外,还支持针对其他多通道协议的ASPF功能,如SIP、H.323、MGCP等。具体默认开启还得看官方手册。。

    ——————————————————————————————————————————————————

    6.2.帮助用户自定义协议报文穿越防火墙

    对于不在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
    
    • 1
    • 2
    • 3
    • 4

    开启后虽然生成的表项保证了业务,但是也存在对端口的访问权限。防火墙针对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
    
    • 1
    • 2
    • 3
    • 4

    无论是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
    
    • 1
    • 2
    • 3

    ——————————————————————————————————————————————————

    7、配置思路

    如何精确指定匹配条件是配置安全策略难点,匹配设置过于宽泛带来安全风险,过于严格,可能会导致报文无法命中,影响业务运行。

    在配置的时候,首先将缺省包过滤动作改为允许通过,对业务进行调测。然后查看会话表,以会话表中记录的信息为匹配条件配置安全策略,最后恢复缺省包过滤配置。再次验证策略是否正确。

  • 相关阅读:
    玩转双指针
    揭秘拼多多API接口的魅力与价值:商品查询,获取指定商品的详细信息,如价格、库存等
    Python数据类型:数字
    Unity DOTS 1.0 (5) Baking System、Baking phases 和 Baking World
    【Linux专题】firewalld 过滤出接口流量
    这样做时间轴,让你的PPT更出彩!
    Linux安装Redis操作
    线性dp求解 最长子序列 —— 小题三则
    【clickhouse专栏】数据库、数据仓库之间的区别与联系
    mysql5.7安装配置教程(一看就会)
  • 原文地址:https://blog.csdn.net/u012451051/article/details/134546561