读书笔记-《华为防火墙技术漫谈》02

一、防火墙基础知识

4、调试

Current Total Sessions : 5
icmp VPN: public --> public ID: c387fe127dddb48858634f7b51
Zone: trust --> untrust TTL: 00:00:20 Left: 00:00:15
Recv Interface: GigabitEthernet1/0/1
Interface: GigabitEthernet1/0/0 NextHop: 172.16.0.1 MAC: 5489-985b-694f
<--packets: 1 bytes: 60 --> packets: 1 bytes: 60
192.168.10.1:20603 --> 172.16.0.1:2048 PolicyName: trust-untrust
  • Zone:表示报文在安全区域之间流动的方向,trust –> untrust表示报文是从Trust区域流向Untrust区域。
  • TTL:表示报文的老化时间,这条会话到期后,这条会话也将会被清楚。
  • Left:表示该会话的剩余时间。
  • Interface:出接口
  • Nexthop:下一跳地址
  • MAC地址:报文去往的下一跳MAC地址,本组网中是WEB服务器的MAC地址。
  • <–packets:1 bytes: 60 表示会话反向方向上的报文统计信息,即WEB服务器向PC发送报文的个数和字节数
  • –> packets:1 bytes: 60 表示会话正向方向上的报文统计信息,即PC向WEB服务器发送报文的个数和字节数

华为防火墙为不同的协议设置了响应的会话默认老化时间,比如ICMP的会话老化时间是20s,DNS的会话老化时间是30S等。

通常情况下采用这些默认值就可以保证各个协议正常运行,如果需要调整默认值,可以通过 firewall session aging-time 命令在配置。如

【FW] firewall session aging-time dns 10

当我们需要解决与防火墙相关的问题时,调试是一个不可或缺的步骤。我们可以使用调试命令display zone 来查看防火墙安全区域的状态。防火墙的核心技术在于分析双方通信的连接状态,并随后建立会话以辅助后续报文的传输。因此,当业务无法正常通信时,检查会话是否成功建立在防火墙上,是一个至关重要的故障排查步骤。

一旦我们完成了防火墙的配置,但业务仍然无法正常运行,我们可以使用

【FW] display firewall session table 

命令在防火墙上查看是否存在与该业务相关的会话。然后,根据情况继续深入排查问题。

例如:

[fw]display firewall statistics system discard

packets discard statistic
total packets discarded: 2
interzone miss packets discarded: 2

1、防火墙上不存在该业务的会话

如果防火墙上没有为该业务建立会话,可能的原因包括:第一,业务报文没有到达防火墙;第二,业务报文被防火墙丢弃。

造成的具体原因包括:

  • 某个接口未被分配到正确的安全区域。
  • 防火墙无法找到相关的ARP表项,导致报文被丢弃。
  • 防火墙的路由配置出现问题。
  • 防火墙仅收到了后续报文,而未收到首包报文。
  • 防火墙上的会话数量已经达到规格限制,无法再创建新的会话。

2、防火墙上存在该业务的会话

如果在防火墙上存在与该业务相关的会话,这意味着会话在正向方向上有统计信息(即有报文经过),但在反向方向上没有统计信息(即没有报文经过)。导致会话反向方向上没有统计信息的原因可能是回应报文未能到达防火墙,或者回应报文被防火墙丢弃。在这种情况下,首先需要检查报文在到达防火墙之前是否被其他网络设备丢弃,然后查看防火墙上的丢包统计信息。

二、安全策略

安全策略是基于不同安全区域之间的域间关系来制定的,其内容包括两个主要组成部分:

  1. 条件:检查报文的依据,防火墙将报文中携带的信息与条件逐一对比,以此来判断报文是否匹配。

  2. 动作:每一条策略都会包括一个动作,可以是允许permit 或拒绝通过 deny 每一条策略中只能有一个动作

需要特别注意的是,在安全策略中的条件可以包括多个字段,如源地址、目的地址、源端口、目的端口等等。这些字段之间的关系是“与”的关系,也就是说,只有当报文中的信息与所有字段都匹配时,才能算作是匹配了该策略。

另外,如果在同一个字段中存在多个匹配项,例如多个源地址或多个目的地址,那么这些匹配项之间是“或”的关系。这意味着只要报文匹配其中的一个匹配项,就可以认为匹配了该条件。

1、匹配顺序

安全策略之间是存在顺序的,防火墙在两个安全区域之间转发报文时,会按照从上到下的顺序逐条查找域间存在的安全策略。如果报文匹配了某条安全策略,将会执行该策略中的动作,要么允许通过,要么拒绝通过,而不会再继续查找其他策略。只有当报文没有匹配任何一条策略时,防火墙才会考虑缺省包过滤,执行其中配置的动作。

基于上述实现方式,我们在配置安全策略时要遵循“先精细,后粗犷”的原则。具体来说,就是先配置匹配范围小、条件精确的安全策略,然后在配置匹配范围大、条件宽泛的安全策略。相信大家都配置过ACL规则,安全策略的配置和ACL规则是同一个道理。

例如:

允许Trust安全区域到Untrust安全区域的、源地址是192.168.0.0/24网段、目的地址是172.16.0.0/24网段的报文通过。

拒绝192.168.0.0网段中的特定地址192.168.0.100 访问172.16.0.0/24网段,首先要先配置第一条安全策略:拒绝Trust 安全区域到Untrust 安全区域的、源地址是192.1689.0.100的报文通过;然后配置第二条安全策略:允许Trust安全区域到Untrust安全区域的、源地址是192.168.0.0/24网段、目的地址是172.16.0.0/24网段的报文通过。

防火墙在查找安全策略时,源地址是192.168.0.100的报文会首先命中第一条策略,然后执行拒绝通过的动作;而192.168.0.0/24网段的其他报文会命中第二条策略,执行允许通过的动作。如果我们把两条安全策略的顺序调换,源地址是192.168.0.100的报文就永远不会命中动作为拒绝通过的那条策略,目的也没法达到。

最后,如果没有任何安全策略与报文匹配,防火墙将执行缺省包过滤中配置的动作。

默认情况下,缺省包过滤的动作是拒绝通过。有时候,为了简化配置,会把两个安全区域之间缺省包过滤的动作设置为允许通过。这样操作确实省事省时,但是会带来极大的安全风险,网络隔离和访问控制都没法实现。

华为防火墙默认情况下,报文在安全区域之内流动是不受安全策略控制的。报文可以自由通行。

2、安全策略发展历程

华为的防火墙策略主要历经了三个阶段:基于ACL的包过滤阶段、融合UTM的安全策略阶段、一体化安全策略阶段。

  1. 基于ACL的包过滤阶段:
    • 初期的防火墙技术主要是基于访问控制列表(ACL)的包过滤,这是一种简单而有效的方法,用于控制流经防火墙的数据包。ACL主要依赖于源和目标IP地址、协议类型、端口等基本条件来过滤流量。
    • 这个阶段的防火墙主要用于实现基本的网络访问控制,可以阻止不明流量或恶意流量的通过,但缺乏高级安全功能。
  2. 融合UTM的安全策略阶段:
    • 随着网络攻击的不断演变,华为的防火墙逐渐融合了统一威胁管理(UTM)功能,加强了网络安全的多层次保护。
    • 在这一阶段,防火墙不仅可以进行基本的包过滤,还具备了威胁检测、入侵检测系统(IDS)和入侵防御系统(IPS)等高级安全功能。此外,它还提供了反病毒、内容过滤、应用控制等特性。
    • 安全策略不再仅仅依赖于ACL,而是基于更多的条件来决定流量的允许或拒绝,这增强了对恶意流量的检测和防御能力。
  3. 一体化安全策略阶段:
    • 华为防火墙在这一阶段迈向了一体化的安全策略管理,将安全策略的配置和管理集成在一起,简化了网络安全管理和监控。
    • 这一阶段的防火墙提供了更灵活的安全策略控制,可以根据不同的条件、应用、用户等因素进行决策,从而更好地满足复杂网络环境下的需求。
    • 一体化的安全策略管理还允许管理员更方便地创建、维护和监视安全策略,提高了整体网络安全的可管理性和响应速度。

总的来说,华为的防火墙策略经历了从基本的包过滤到高级的威胁管理,再到一体化安全策略管理的演进,以适应不断增长的网络安全挑战。这些阶段的演进使华为防火墙成为一种强大的工具,能够在多层次、多维度上保护网络免受各种安全威胁的侵害。