【强叔侃墙 内功心法篇2】当安全策略遇上OSPF

digest [复制链接]
发表于 : 2014-4-18 15:32:20 最新回复:2016-07-12 11:23:03
15142 22
强叔侃墙
强叔侃墙 官方号

安全策略初体验一篇中,强叔提到,路由协议一般是不受安全策略控制的,防火墙直接允许路由协议的报文通过。强叔还提到,这和具体产品实现有关,不同型号的产品会有差异。大家看完帖子后感觉有点语焉不详,纷纷向强叔咨询这个问题。今天,强叔就使用华为防火墙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类型也是同理。
最后再次提醒,上面的验证结论基于华为防火墙USG9000 V3R1版本,并不适用于其他型号的防火墙产品。本篇主要还是提供一种验证思路,大家可以参考强叔的操作过程来验证华为USG2000、USG5000和USG6000系列防火墙产品,看一看在这些防火墙产品上是否需要开启安全策略。另外,在实际网络环境中,如果防火墙上运行的OSPF状态不正常,大家也可以从安全策略这个角度入手,检查是不是由于没有开启安全策略而导致的。

本帖被以下专题推荐:

  • x
  • 常规:

点评 回复

跳转到指定楼层
她的猫
她的猫   发表于 2014-5-7 11:40:23 已赞(0) 赞(0)

为了方便ping,全部区域到local的双向都打开了。
  • x
  • 常规:

点评 回复

zhuangqun
zhuangqun   发表于 2014-5-11 22:59:35 已赞(0) 赞(0)

有FW工作在2层做双机热备,上下互联路由器运行OSPF的案例
  • x
  • 常规:

点评 回复

fcm
fcm  精英 发表于 2014-4-18 15:41:24 已赞(0) 赞(0)

下个会不会是继续OSPF,补全个当虚拟防火墙遇上OSPF
  • x
  • 常规:

点评 回复

DoubleDong
DoubleDong   发表于 2014-4-18 22:05:31 已赞(0) 赞(0)

半夜爬起来学习一下!
  • x
  • 常规:

点评 回复

jiazhaoxin
jiazhaoxin   发表于 2014-5-17 23:48:53 已赞(0) 赞(0)

一般情况下,是不是local和其它的域都要放开?
  • x
  • 常规:

点评 回复

叶道神
叶道神   发表于 2014-5-19 13:21:57 已赞(0) 赞(0)

膜拜大神,可以继续说明OSPF后续的么
  • x
  • 常规:

点评 回复

强叔侃墙
强叔侃墙 官方号 发表于 2014-5-19 17:22:54 已赞(0) 赞(0)

回复 6 楼

USG9000系列的举例,请访问http://support.huawei.com/enterprise/docinforeader.action?contentId=DOC1000040688&idPath=7919710|9856724|7923140|21100055|8577685下载文档,参考“管理员指南--->高可靠性--->配置举例-主备备份方式”中的“示例四:业务接口工作在二层,上下行连接路由器”,这个是主备备份方式的举例;或者“管理员指南--->高可靠性--->配置举例-负载分担方式”中的“示例七:业务接口工作在二层,上下行连接路由器”,这个是负载分担方式的举例。

USG6000系列的举例,请访问http://support.huawei.com/ehedex/hdx.do?docid=DOC1000039631&lang=zh,参考“管理员指南--->高可靠性--->配置举例”中的“业务接口工作在二层,上下行连接路由器的负载分担组网”。

  • x
  • 常规:

点评 回复

强叔侃墙
强叔侃墙 官方号 发表于 2014-5-19 17:34:35 已赞(0) 赞(0)

回复 7 楼

都放开也会有安全风险,建议根据实际情况分析。比如本篇中讲的,防火墙要参与OSPF运算,那就放开OSPF;又比如要telnet到防火墙上,就放开telnet协议。按照最小的原则,满足实际需求同时也能避免引入安全风险。
  • x
  • 常规:

点评 回复

小修
小修   发表于 2014-4-30 12:09:15 已赞(0) 赞(0)

坐等其他系列的防火墙有砖家验证了给结果(*^__^*)

  • x
  • 常规:

点评 回复

123
返回列表
发表回复
您需要登录后才可以回帖 登录 | 注册

警告 内容安全提示:尊敬的用户您好,为了保障您、社区及第三方的合法权益,请勿发布可能给各方带来法律风险的内容,包括但不限于政治敏感内容,涉黄赌毒内容,泄露、侵犯他人商业秘密的内容,侵犯他人商标、版本、专利等知识产权的内容,侵犯个人隐私的内容等。也请勿向他人共享您的账号及密码,通过您的账号执行的所有操作,将视同您本人的行为,由您本人承担操作后果。详情请参看“隐私声明
如果附件按钮无法使用,请将Adobe Flash Player 更新到最新版本!
登录参与交流分享

登录参与交流分享

登录