配置 ZBFW.note

noteId: WEB982f6a92b068e8abf42335c453d0e645 · 原始路径:/ALL/网络 - C模块/ZBFW(Cisco Zone Based Policy Firewall)/配置 ZBFW.note · 图片:16 · 附件待处理:1

 
·文档:
https://www.cisco.com/c/en/us/support/docs/security/ios-firewall/98628-zone-design-guide.html                                                                          
 
match-all    //and,需要匹配到所有规则
match-any    //or,匹配到其中一条规则即可
 
如果放行icmp流量会直接放行双向icmp流量
 
一、配置 ZBFW:
 
1、配置 INSIDE区域 能够访问 OUTSIDE区域:
 
·双向ICMP:
只有ICMP是双向的,其它协议都是单向的
# 创建区域:
zone security INSIDE
zone security OUTSIDE
zone security DMZ
 
# 将接口划分到区域中:
int g0/0
 zone-member security OUTSIDE
int g0/1
 zone-member security DMZ
int g0/2
 zone-member security INSIDE
## 此时不同区域直接已经无法通信了
 
# 定义class-map 匹配流量:
class-map type inspect match-any ICMP_AND_HTTP
 match protocol icmp
 match protocol http
## 也可以使用acl匹配:
 match access-group 101
 
# 配置策略匹配 class-map:
policy-map type inspect ICMP
 class type inspect ICMP_AND_HTTP    //输入前面定义的class名称
  inspect
## 结尾默认有一条 drop 所有
 
# 配置区域对(zone pair)应用策略:
zone-pair security INSIDE_TO_OUTSIDE source INSIDE  destination OUTSIDE
 service-policy type inspect ICMP    //应用策略,输入前面定义的策略名称
看似很多配置,但是只要能敲 type inspect 和 inspect,直接无脑敲就行
 
 
·测试:
能够双向ping通:
 
·开启80端口:ip http server
80 端口只能INSIDE访问OUTSIDE(因为配置了zone pair,而zone pair 是单向的)
 
 
2、如果要添加其它策略:
要在同一方向上应用多个策略
# 放行ICMP
class-map type inspect match-any ICMP

 match protocol icmp
 
# 放行HTTP

class-map type inspect match-any HTTP

 match protocol http

 match protocol https
 
## 在策略中应用即可  
policy-map type inspect INSIDE_POLICY

 class type inspect ICMP

  inspect 

 class type inspect HTTP

  inspect 
  
# 应用到区域上
zone-pair security IN_TO_OUT source INSIDE destination OUTSIDE

 service-policy type inspect INSIDE_POLICY
 
·测试:
 
 
3、配置 DNAT:(外网访问内网服务、端口)
# 创建区域:
zone security INSIDE
zone security OUTSIDE
zone security DMZ
 
# 将接口划分到区域中、配置 nat:
int g0/0
 zone-member security OUTSIDE
 ip nat outside
int g0/1
 zone-member security DMZ
 ip nat inside
int g0/2
 zone-member security INSIDE
 ip nat inside
 
## 正常配置策略放行即可:(但是方向确是OUTSIDE to DMZ)
# 配置 acl匹配http流量:(不能使用标准端口,因为是DNAT,如果使用标准端口会无法访问)
ip access-list extended DNAT
 permit tcp any host 192.168.10.1 eq 80
 
# 配置class匹配流量:
class-map type inspect match-any DNAT
 match access-group name DNAT
 
# 配置策略匹配class:
policy-map type inspect DNAT
 class type inspect DNAT
  inspect
 
# 配置 zone pair:(OUTSIDE to DMZ)
zone-pair security OUTSIDE_TO_DMZ source OUTSIDE destination DMZ 
 service-policy type inspect DNAT
 
# 配置DNAT:
ip nat inside source static tcp 192.168.10.1 80 interface gigabitEthernet 0/0 80
or
ip nat inside source static tcp 192.168.10.1 80 1.1.1.254 80
 
## 在 DMZ上开放端口:
ip http server
 
·测试:
 
 
4、配置 仅允许在 每天 9点~ 18点访问outside区域:
 
# 配置时间:
time-range TIME

 periodic weekdays 9:00 to 18:00
 periodic weekend 9:00 to 18:00
 
# ACL 调用时间配置:
ip access-list extended ACL

 permit ip any any time-range TIME
 
# 配置 class 调用ACL:
class-map type inspect match-any TIME

 match access-group name ACL
 
# 配置 policy:
policy-map type inspect TIME_POLICY

 class type inspect TIME

  inspect 
  
# 应用:
zone-pair security IN source INSIDE destination OUTSIDE

 service-policy type inspect TIME_POLICY
 
·测试:
查看 ZBFW机器上的时间
 
访问失败
 
修改 ZBFW时间到允许的时间段:
 
 
 
5、禁止指定流量,放行其余流量:
要禁止什么流量,使用ACL匹配即可,例如,需要禁止来自30.1.1.1主机的访问
# 配置ACL:
ip access-list extended DENY_HOST
 permit ip host 30.1.1.1 any
 
ip access-list extended ALLOW_ANY
 permit ip any any
 
# 配置 class:
class-map type inspect DENY
 match access-group name DENY_HOST
 
class-map type inspect ALLOW
 match access-group name ALLOW_ANY
 
# 配置 policy:
policy-map type inspect POLICY
 class type inspect DENY
  drop
 class type inspect ALLOW
  inspect
 
# 配置 zone-pari:
zone-pair security IN_TO_OUT source INSIDE destination OUTSIDE
 service-policy type inspect POLICY
 
·测试:
此时其它流量都能够通过,仅来自30.1.1.1的流量无法通过:
 
 
 
6、启用日志记录功能,将被拒绝的流量拒绝到日志中:
## 正常配置即可,只需要在 drop 后加上log:"drop log"
ip access-list extended ALLOW_ANY

 permit ip any any
 
class-map type inspect match-all ALLOW

 match access-group name ALLOW_ANY
 
policy-map type inspect POLICY

 class type inspect ALLOW

  drop log    //drop 后加上log即可
  
zone-pair security IN_TO_OUT source INSIDE destination OUTSIDE

 service-policy type inspect POLICY
 
·测试:
先访问,然后被拒绝:
 
查看日志:
show log