防火墙技术

马秋贤

目录

  • 1 基础知识
    • 1.1 什么是防火墙
    • 1.2 防火墙的发展历史
    • 1.3 华为防火墙产品一览
    • 1.4 安全区域
    • 1.5 状态检测和会话机制
    • 1.6 状态检测和会话机制补遗
  • 2 安全策略
    • 2.1 安全策略初体验
    • 2.2 安全策略发展历程
    • 2.3 Local区域的安全策略
    • 2.4 ASPF
  • 3 攻击防范
    • 3.1 DoS攻击简介
    • 3.2 单包攻击机防御
    • 3.3 流量型攻击之SYN Flood攻击及防御
  • 4 NAT
    • 4.1 源NAT
    • 4.2 NAT Serve
    • 4.3 双向NAT
  • 5 GRE&L2TP VPN
    • 5.1 VPN简介
    • 5.2 GRE
    • 5.3 L2TP VPN的诞生及演进
  • 6 IPSec VPN
    • 6.1 IPSec简介
    • 6.2 手工方式IPS ec VPN
    • 6.3 IKE和ISAKMP
    • 6.4 IKEvl
  • 7 DSVPN
    • 7.1 DSVPN简介
    • 7.2 Normal方式的DSVPN
  • 8 SSL VPN
    • 8.1 SSLVPN原理
    • 8.2 文件共享
    • 8.3 WEB代理
  • 9 双机热备
    • 9.1 双机热备概述
    • 9.2 VRRP与VGMP的故事
    • 9.3 VGMP招式详解
    • 9.4 HRP协议详解
  • 10 出口选路
    • 10.1 出口选路总述
    • 10.2 就近选路
    • 10.3 策略路由选路
  • 11 防火墙在校园网中的应用
    • 11.1 组网需求
    • 11.2 组网规划
    • 11.3 配置步骤
Local区域的安全策略

    在安全策略初体验中,路由协议一般是不受安全策略控制的,防火墙直接允许路由协议的报文通过。这和具体产品实现有关,不同型号的产品会有差异。大家看完后感觉有点语焉不详,纷纷咨询这个问题。今天,就使用华为防火墙USG9000(软件版本为V300R001)来实际验证一把,看一看当安全策略遇上OSPF路由协议时,会发生什么事情。

      需要说明一点,本篇验证的是防火墙本身参与到OSPF路由计算的场景,即验证防火墙接口所在安全区域与Local区域之间是否需要开启安全策略。而防火墙本身不参与OSPF路由计算,只是二层转发OSPF路由报文的场景中,如果防火墙的接口属于不同的安全区域,则需要开启安全区域之间的安全策略,允许OSPF路由报文通过。

我们使用一台USG9000防火墙和两台路由器搭建一个简单的网络环境,网络拓扑如下图所示:

 

根据下表中的数据,在USG9000上配置接口的IP地址、将接口加入安全区域、开启OSPF功能,以及在路由器R1和R2上配置接口的IP地址、开启OSPF功能。具体配置过程在这里不再赘述。 

配置项

USG9000

R1

R2

接口

#

interface GigabitEthernet1/1/9

ip address 30.1.1.10 255.255.255.0

#

#

interface GigabitEthernet5/0/0

ip address 30.1.1.11 255.255.255.0

#

interface GigabitEthernet5/0/1

ip address 50.1.1.11 255.255.255.0

#

#

interface GigabitEthernet0/0/4

ip address 50.1.1.10 255.255.255.0

#

安全区域

#

firewall zone untrust

set priority 5

add interface GigabitEthernet1/1/9

#

-

-

OSPF

#

ospf 1

 area 0.0.0.1

  network 30.1.1.0 0.0.0.255

#

#

ospf 1

 area 0.0.0.1

  network 30.1.1.0 0.0.0.255

  network 50.1.1.0 0.0.0.255

#

#

ospf 1

 area 0.0.0.1

  network 50.1.1.0 0.0.0.255

#


 

默认情况下,防火墙上没有开启GE1/1/9接口所在的Untrust区域和Local区域之间的安全策略,这两个区域之间不允许报文通过。我们在防火墙上使用display ospf peer命令查看OSPF的邻接关系:

 

在路由器R1上使用display ospf peer命令查看OSPF的邻接关系:

 

在USG9000和R1上看到的OSPF邻接状态都为ExStart,我们根据下面的OSPF邻接关系建立过程示意图,发现OSPF邻接关系没建立起来,因为USG9000和R1之间没有成功交换DD(Database Description)报文。

 

 

此时,我们怀疑有可能是USG9000丢弃了DD报文。在USG9000上使用display firewall statistic system discarded命令查看丢包信息:

 

上面的信息表示缺省包过滤将报文丢弃,而且被丢弃报文的个数还在不断增长,说明OSPF模块在不断地尝试发送DD报文,但都被安全策略模块丢弃了。
接下来我们在USG9000上开启Local区域和Untrust区域之间的安全策略,允许OSPF报文通过。注意,因为USG9000既要发送DD报文又要接收DD报文,所以Inbound和Outbound方向上的安全策略都要开启。如下:

强叔提示:这里为了精确匹配OSPF协议,我们使用了系统提供的ospf服务集,如果防火墙中没有提供这个服务集,我们可以自己创建一个服务集,协议号设置为89即可。

 

然后分别在USG9000和R1上使用display ospf peer命令查看OSPF的邻接关系(可能需要等待几分钟的时间才会出现下面的结果,或者可以使用reset ospf process命令重启OSPF进程,就可以很快看到结果):

 

 

此时可以看到OSPF邻接建立成功,同时USG9000上已经存在了通过OSPF路由协议学习到的去往50.1.1.0这个网段的路由:

 

我们来总结一下,对于防火墙USG9000来说,需要开启接口所在安全区域和Local区域之间的安全策略,允许OSPF报文通过,这样防火墙才能和相连的设备正常建立邻接关系。
实际上,我们可以从另外一个角度来考虑这个问题:单播报文和组播报文。对于防火墙来说,一般情况下,单播报文是要经过安全策略的检查,所以需要开启安全策略允许报文通过;而组播报文不经过安全策略的检查,也就不需要开启相应的安全策略。
那么在OSPF中,哪些报文是单播哪些报文是组播呢?不同的网络类型,OSPF报文的发送形式也不相同,如下表所示。

强叔提示:我们可以在接口上执行ospf network-type命令来修改OSPF的网络类型。 

网络类型

Hello

Database

Description

Link State

Request

Link State

Update

Link State

Ack

Broadcast

组播

单播

单播

组播

组播

P2P

组播

组播

组播

组播

组播

NBMA

单播

单播

单播

单播

单播

P2MP

组播

单播

单播

单播

单播

 

    从表中可以看出,网络类型是Broadcast类型时,OSPF报文中的DD报文和LSR报文是单播报文,需要开启安全策略;网络类型是P2P时,OSPF报文都是组播报文,因此无需开启安全策略。NBMA和P2MP类型也是同理。