在一些简单的场合,利用路由器上携带的防火墙功能,即ZBF防火墙,可以完成对流量的相应控制,对于没有专门的物理防火墙的场合,还是很有用的。ZPF(Zone-Based Policy Firewall)是一种基于区域的防火墙,基于区域的防火墙配置的策略都是在数据从一个区域发到另外一个区域时才生效,在同一个区域内的数据是不会应用任何策略的。Zone是应用防火墙策略的最小单位,一个Zone中可以包含一个接口,也可以包含多个接口。区域之间的所有数据默认是全部被丢弃的,所以必须配置相应的策略来允许某些数据的通过。
下面我们通过Cisco Packet Tracer工具模拟实验了解该特性,实验拓扑如下图所示。
基础配置:
R1:
R1(config)#int g0/0/0
R1(config-if)#ip address 12.1.1.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#int g0/0/1
R1(config-if)#ip address 192.168.1.254 255.255.255.0
R1(config-if)#no shutdown
R1(config)#ip route 0.0.0.0 0.0.0.0 12.1.1.2
R2:
R2(config)#int g0/0/0
R2(config-if)#ip address 12.1.1.2 255.255.255.0
R2(config-if)#no shutdown
R2(config-if)#int g0/0/1
R2(config-if)#ip address 23.1.1.2 255.255.255.0
R2(config-if)#no shutdown
R2(config)#ip route 192.168.1.0 255.255.255.0 12.1.1.1
R2(config)#ip route 192.168.3.0 255.255.255.0 23.1.1.3
R2(config)#ip route 192.168.4.0 255.255.255.0 23.1.1.3
R3:
R3(config)#int g0/0/0
R3(config-if)#ip address 23.1.1.3 255.255.255.0
R3(config-if)#no shutdown
R3(config-if)#int g0/0/1
R3(config-if)#ip address 192.168.3.254 255.255.255.0
R3(config-if)#no shutdown
R3(config)#ip route 0.0.0.0 0.0.0.0 23.1.1.2
R3(config-if)#int g0/0/2
R3(config-if)#ip address 192.168.4.254 255.255.255.0
R3(config-if)#no shutdown
配置完成后,Server1(192.168.1.100/24)、PC1(192.168.1.1/24)和PC3(192.168.3.3/24)、PC4(192.168.4.4/24)都可以相互ping通互访。所有PC端都可以访问Serrver的Web业务。
此时我们在边缘路由器R3上配置基于区域的策略防火墙 (ZPF) ,使其不仅可以充当路由器,还可以充当防火墙。R3 目前负责为其所连接的三个网络:G0/0/0连接到互联网,由于这是公共网络,因此它被视为不可信网络,且应具有最低安全级别;G0/0/1 连接到内部网络,内部网络被视为可信网络,且应具有最高安全级别;G0/0/2 为客户接入网络。
R3 充当防火墙时要执行的安全策略规定:
- 不允许从互联网发出的流量进入内部或客户网络。(即Server1不能访问到PC3和PC4);
- R3 内部网络中的计算机被视为可信设备,并且可以发出任何类型的流量。(即PC3可以访问Server1和PC4);
- R3 客户网络中的计算机被视为不可信设备,并且只允许向互联网发出 Web 流量HTTP。(即PC4只允许访问Server1的HTTP业务,其他流量不允许)
1. 创建安全区域。
R3(config)#zone security INSIDE
R3(config)#zone security CUSTOMER
R3(config)#zone security INTERNET
2.将接口分配到适当的安全区域
R3(config)#int G0/0/0
R3(config-if)#zone-member security INTERNET
R3(config)#int G0/0/1
R3(config-if)zone-member security INSIDE
R3(config)#int G0/0/2
R3(config-if)zone-member security CUSTOMER