Technical documentation
发布日期:2022-04-18 浏览次数:3080 来源:李宜举
HCIP安全Security技术文档-防火墙安全区域详解-WOLF-LAB
官方微信同电话:17316362402,可加HCIP培训安全Security学习群
WOLF-LAB沃尔夫提供免费基础课学习视频+资料+模拟器,联系客服获取
安全区域介绍
在“什么是防火墙”一节中我们提到,防火墙主要部署在网络边界起到隔离的作用,那么在防火墙上如何来区分不同的网络呢?
为此,我们在防火墙上引入了一个重要的概念:安全区域(Security Zone),简称为区域(Zone)。安全区域是一个或多个接口的集合,防火墙通过安全区域来划分网络、标识报文流动的“路线”。一般来说,当报文在不同的安全区域之间流动时才会受到控制。是用于保护一个安全区域免受另外一个安全区域的网络攻击和入击行为。
默认情况下,报文在不同的安全区域之间流动时受到控制,报文在同一个安全区域内流动时不受控制。但华为防火墙也支持对同一个安全区域内流动的报文控制。这里所说的控制是通过“规则”也叫作“安全策略”来实现的。
接口、网络和安全区域的关系?
我们都知道,防火墙通过接口来连接网络,将接口划分到安全区域后,通过接口就能把安全区域和网络关联起来。通常说某个安全区域,也可以表示该安全区域中接口所连接的网络。接口、网络和安全区域的关系如图所示。
什么是安全区域呢?
安全区域(Security Zone),也称为区域(Zone),是一个逻辑概念,用于管理防火墙设备上安全需求相同的多个接口,也就是说它是一个或多个接口的集合。
管理员将安全需求相同的接口进行分类,并划分到不同的安全域,能够实现安全策略的统一管理。
讲安全区域前讲我们先了解一个术语,安全级别(Security Level),在华为防火墙上,每个安全区域都有一个唯一的安全级别,用1-100的字表示,数字越大,则代表该区域内的网络越可信。
对于默认的安全区域,它们的安全级别是固定的:
Local 区域的安全级别是100,
Trust 区域的安全级别是85,
DMZ 区域的安全级别是50,
Untrust 区域的安全级别是5。
华为防火墙默认预定义了四个固定的安全区域,分别为:
Trust:该区域内网络的受信任程度高,通常用来定义内部用户所在的网络或者对内部提供服务的服务器。
Untrust:该区域代表的是不受信任的网络,通常用来定义Internet或者企业外网等不安全的网络。
DMZ(Demilitarized非军事区):该区域内网络的受信任程度中等,通常用来定义内部服务器(公司OA系统,ERP系统等)所在的网络,对内与对外提供服务的服务器。
(说明:DMZ这一术语起源于军方,指的是介于严格的军事管制区和松散的公共区域之间的一种有着部分管制的区域。)
Local:防火墙上提供了Local 区域,代表防火墙本身。比如防火墙主动发起的报文(我们在防火墙执行ping测试)以及抵达防火墙自身的报文(我们要网管防火墙telnet、ssh、http、https),凡是目的IP是防火墙接口地址的报文都是访问Loacl区域,防火墙需要响应并且处理的报文。
关于Local区域,Local区域中不能添加任何接口,但防火墙上所有接口本身都隐含属于Local区域。也就是说,报文通过接口去往某个网络时,目的安全区域是该接口所在的安全区域;报文通过接口到达防火墙本身时,目的安全区域是 Local区域。这样既可以使每个接口连接的其他设备能够访问防火墙自身,也能更明确Local区域和各个安全区域的域间关系,可谓一举两得。
(注意:默认的安全区域无需创建,也不能删除,同时安全级别也不能重新配置。USG防火墙最多支持32个安全区域。)
Local 区域中不能添加任何接口,但防火墙上所有接口本身都隐含属于Local 区域。也就是说,报文通过接口去往某个网络时,目的安全区域是该接口所在的安全区域;报文通过接口到达防火墙本身时,目的安全区域是Local 区域。
报文在安全区域之间流动的方向:
不同的网络受信任的程度不同,在防火墙上用安全区域来表示网络后,怎么来判断一个安全区域的受信任程度呢?
在华为防火墙上,每个安全区域都必须有一个安全级别,该安全级别是唯一的,用1~100的数字表示,数字越大,则代表该区域内的网络越可信。对于默认的安全区域,它们的安全级别是固定的:Local 区域的安全级别是100,Trust区域的安全级别是85,DMZ区域的安全级别是50,Untrust区域的安全级别是5.
级别确定之后,安全区域就被分成了三六九等,高低有别。报文在两个安全区域之间流动时,我们规定:报文从低级别的安全区域向高级别的安全区域流动时为入方向(Inbound),报文从由高级别的安全区域向低级别的安全区域流动时为出方向(Outbound)。
查看安全区域:
display zone
2021-12-07 07:59:26.330
local
priority is 100
interface of the zone is (0):
#
trust
priority is 85
interface of the zone is (1):
GigabitEthernet0/0/0
#
untrust
priority is 5
interface of the zone is (0):
#
dmz
priority is 50
interface of the zone is (0):
初始的四个安全区域不可以删除!每个安全区域都有优先级也就是安全级别。
a.防火墙不存在相同安全级别的安全区域。
b.一个接口只能属于一个安全区域。
c.不同的接口可以属于同一个安全区域。
d.没有加入到安全区域的接口永远无法和加入到安全区域的接口互访。
e.默认情况下,不同的安全区域双向隔离。(域间流量)
f.默认情况下同一个安全区域的接口互访(域内流量)默认方向。
g.对于区域间的流量默认拒绝,区域内的流量默认放行!
security-policy
default action permit
//放行区域间的流量,默认是deny,一般是NAT或者VPN测试使用
security-policy
default packet-filter intrazone enable
//域间流量拒绝
安全区域分析,如下图:
从图中我们可以看出防火墙1号接口和2号接口联接到两个不同的运营商,它们属于同一个安全区域Untrust, 防火墙3号接口属于Trust安全区域,防火墙4号接口属于DMZ安全区域。
当内部用户访问互联网时,源区域是Trust,目的区域是Untrust;当互联网用户访问DMZ服务器时,源区域是Untrust,目的区域是DMZ;当互联网用户网管防火墙时,源区域是Untrust,目的区域是Local;当防火墙向DMZ服务器发起ICMP流量时,源区域是Local,目的区域是DMZ。
了解安全区域之间的数据包流动对后续安全策略是很有帮助的。
防火墙如何判断报文在哪两个安全区域之间流动呢?
首先,源安全区域很容易确定,防火墙从哪个接口接收到报文,该接口所属的安全区域就是报文的源安全区域。
确定目的安全区域时分两种情况。
(1)三层模式下,防火墙通过查找路由表确定报文将要从哪个接口发出,该接口所属的安全区域就是报文的目的安全区域。
(2)二层模式下,防火墙通过查找 MAC 地址转发表确定报文将要从哪个接口发出,该接口所属的安全区域就是报文的目的安全区域。
源安全区域和目的安全区域确定后,就可以知道报文是在哪两个安全区域之间流动了。
另外还有一种情况,在 VPN 场景中,防火墙收到的是封装的报文,将报文解封装后得到原始报文,然后还是通过查找路由表来确定目的安全区域,报文将要从哪个接口发出,该接口所属的安全区域就是报文的目的安全区域。
配置安全区域
01创建安全区域
安全区域的配置主要包括创建安全区域以及将接口加入安全区域,下面给出了创建一个新的安全区域ISP1,然后将接口 GE1/0/1加入该安全区域的过程。接口GE1/0/1可以工作在三层模式也可以工作在二层模式。
配置命令非常简单,唯一需要注意的是,新创建的安全区域是没有安全级别的,我们必须为其设置安全级别,然后才能将接口加入安全区域。当然,鉴于安全级别的唯一性,设置的安全级别不能和已经存在的安全区域的级别相同。
[NGFW]firewall zone name ISP1
[NGFW-zone-ISP1]setpriority 80
[NGFW-zone-ISP1]add interface g1/0/1 //将接口下的网络划分到该区域,接口本身属于loacl区域。
注:区域里必须要有唯一的安全级别(Cisco ASA安全级别可以相同),相应的接口要加入到区域,可以是物理接口和逻辑接口(Vlanif、Tunnel)。
02查看安全区域
local
priority is 100
trust
priority is 85
interface of the zone is (1):
GigabitEthernet0/0/0
untrust
priority is 5
interface of the zone is (0):
dmz
priority is 50
interface of the zone is (0):
ISP1
priority is 80
interface of the zone is (1):
GigabitEthernet1/0/1
如图1-14所示,PCA和PCB属于不同的子网,交换机上通过两个VLAN 将PC A和PC B所属的子网隔离,交换机连接到防火墙的接口GE0/0/1上。对于防火墙来说,这种组网是典型的“单臂”环境。
这种情况下,防火墙的一个接口连接了两个子网,如果想为这两个子网设定不同的安全级别,即需要将PC A和PC B划分到不同的安全区域。该如何配置呢?因为防火墙上一个接口只能加入到一个安全区域中,所以不能简单地把接口 GEO/0/1加入到某个安全区域,此时可以通过子接口或VLANIF接口来实现这个需求。
(1)先来看一下子接口的实现情况。我们在接口GEO/0/1下创建两个子接口GEO/0/1.10和 GEO/0/1.20,分别对应 VLAN10和 VLAN 20,然后将这两个子接口划分到不同的安全区域,而接口 GEO/0/1不用加入安全区域,即可实现将PCA和 PCB划分到不同安全区域的目的,如图1-15所示。
防火墙配置如下
[FW]interface GlgabitEtbernet 0/0/1.1O
[FW-GlgabitEtbernet0/0/1.10] vlan-type dotlq 10
[FW-GlgabitEtbernet0/0/1.10] ip address 192.168.10.254 24
[FW-GlgabitEtbernet0/0/1.1O] quit
[FW]interface GlgabitEtbernet 0/0/1.20
[FW-GlgabitEtbernet0/0/1.20]vlan-type dot1q 20
[FW-GlgabitEtbernet0/0/1.20] ip address 192.168.20.254 24
[FW-GlgabitEtbernet0/0/1.20] quit
[FW] Firewall zone name trustl
[FW-zone-trustl] set priority 10
[FW-zone-trust1] add Interface GlgabitEtbernet 0/0/1.lO
[FW-zone-trustl]quit
[FW] firewall zone name trust2
[FW-zone-trust2] set priority 20
[FW-zone-trust2]add Interface GlgabltEtbernet 0/0/1.20
[FW-zone-trust2] quit
security-policy
rule name PC1
source-zone trust1
destination-zone trust2
action permit
rule name PC2
source-zone trust2
destination-zone trust1
action permit
完成上述配置后,PCA被划分到Trust1安全区域,PCB被划分到Trust2安全区域,此时就可以对PCA访问PCB的报文进行控制。
(2)接下来看一下VLANIF接口的实现情况。
在防火墙上创建两个VLAN 并为各自的 VLAN IF 接口配置IP地址,然后配置接口GE1/0/1工作在二层模式(透明模式),允许 VLAN 10 和 VLAN 20 的报文通过。将VLANIF10和 VLANIF20划分到不同的安全区域,而接口GE1/O/1不用加入安全区域,即可实现将PC A和PC B划分到不同安全区域的目的,如图1-16所示。
防火墙配置如下:
vlan batch 10 20
interface Vlanif 10
ip address 192.168.10.254 24
quit
interface Vlanif 20
ip address 192.168.20.254 24
quit
interface GigabitEthernet 0/0/1
portswitch
port link-type trunk
port trunk allow-pass vlan all
quit
firewall zone trust1
add interface Vlanif10
quit
firewall zone trust2
add interface Vlanif20
quit
security-policy
rule name PC1
source-zone trust1
destination-zone trust2
action permit
rule name PC2
source-zone trust2
destination-zone trust1
action permit
欢迎关注WOLF-LAB:
HCIP安全Security问题,可联系WOLF-LAB(沃尔夫)实验室!