配置 ZBFW.note
·文档:
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
