- V7防火墙默认全禁止,即空配情况下业务不通。( 除Management区域以外)
- 安全域是防火墙区别于交换机路由器的基本特征之一, 接口只有加入了业务安全区域后才会转发数据。
- 安全域可以用于管理防火墙设备上安全需求相同的多个接口,管理员将安全需求相同的接口划分到相同的安全域。
-
特性简介
安全策略通过指定源/目的安全域、源IP/MAC地址、目的IP地址、服务、应用、用户和时间段等过滤条件匹配出特定的报文,并根据预先设定的策略动作对此报文进行处理;若报文未匹配上任何策略,则丢弃该报文。当安全策略中未配置过滤条件时,则该策略将匹配所有报文。
安全策略的过滤条件
安全策略中可同时配置多种过滤条件,具体包括:源安全域、目的安全域、源IP/MAC地址、目的IP地址、用户、应用、服务和时间段等。一条策略被匹配成功的条件是:策略中已配置的所有过滤条件必须均被匹配成功。
一类过滤条件中可以配置多个匹配项,比如一类过滤条件中可以指定多个目的安全域。一类过滤条件被匹配成功的条件是:过滤条件的任何一个匹配项被匹配成功即可。安全策略的匹配顺序
设备上可以配置多个安全策略,设备缺省按照策略的创建顺序对报文进行匹配,先创建的先匹配。因此,首先需要将规划的所有策略按照“深度优先”的原则(即控制范围小的、条件细化的在前,范围大的在后)进行排序,然后按照此顺序配置每一个安全策略。
域间策略和安全策略
域间策略(一对一)
域间策略是在域间实例下发的进行流量识别和控制的策略
V7防火墙上配置域间策略有两种方式,一种是基于ACL的包过滤策略,一种是基于对象组的对象策略
包过滤策略
[H3C] zone-pair security source trust destination untrust
[H3C-zone-pair-security-Trust-Untrust] packet-filter 3999
对象策略
[H3C] zone-pair security source trust destination untrust
[H3C zone-pair-security-Trust-Untrust] object-policy apply ip internet
安全策略(多对多/多对一/一对多)
与基于域间实例的包过滤策略、对象策略相比,安全策略具有如下优势:
- 与包过滤策略相比,安全策略不仅可以通过五元组对报文进行控制,还可以有效区分协议(如HTTP协议)上承载的不同应用(如基于网页的游戏、视频和购物),使网络管理更加精细和准确。
- 与对象策略相比,安全策略可以基于用户对报文进行控制,使网络管理更加灵活和可视。
- 安全策略的加速功能可用于提高安全策略规则的匹配速度。当有大量用户同时通过设备新建连接时,如果安全策略内包含大量规则,加速功能可以提高规则的匹配速度,保证网络通畅。
- 安全策略不再局限于一对一的域间实例下的引用,可以匹配一对多、多对一以及多对多等情况下安全域之间的访问。
- H3C NGFW防火墙支持安全策略,同时也仍然支持域间策略。当两种同样功能的策略同时存在时必然是有优先顺序:安全策略功能与对象策略功能在设备上不能同时使用,开启安全策略功能后,对象策略功能立即失效;当安全策略与包过滤策略同时配置时,由于安全策略对报文的处理在包过滤策略之前,报文与安全策略规则匹配成功后,不再进行包过滤处理。
security-policy ip
rule 0 name test
action pass
rule 1 name shangwang
action pass
source-zone Management
source-zone Trust
destination-zone Untrust
destination-zone DMZ
实例探究
某公司内的各部门之间通过NGFW防火墙实现互连,通过配置域间策略规则,允许CEO office在任意时间、Finance在工作时间访问服务器DB Server,禁止其它部门在任何时间、Finance在非工作时间通过访问该服务器,并允许Finance和Market部门的互相访问。
图5 某公司内部网络
其中域间策略的关键配置如下所示:
配置Finance部门在工作时间可以访问DB Server的对象策略,并在域间实例下引用。
配置CEOoffice部门在任意时间可以访问DBServer的对象策略,并在域间实例下引用。object-policy ip DMZ-Untrust
rule 0 pass source-ip finance destination-ip DBserver
time-range work
#
zone-pair security source DMZ destination Untrust
object-policy apply ip DMZ-Untrust
配置Finance部门和Market部门的互相访问的包过滤策略,并在Any到Any的域间实例下引用。object-policy ip 1
rule 0 pass source-ip CEO_ office destination-ip DBserver
#
zone-pair security source Trust destination Untrust
object-policy apply ip 1
事实上,上述配置下无法实现Finance部门和Market部门的互相访问,并不是由于包过滤策略和对象策略有冲突,而是因为Finance部门和Market部门的互相访问命中Any到Any的域间实例,而Any到Any不包括同安全域之间的访问。Finance部门和Market部门均被划为DMZ域,访问不通时debugging aspf packet的显示信息如下:acl advanced 3000
rule 0 permit ip source 192. 168.2.0 0.0.0.255 destination 192.168.3.0 0.0.0.255
rule 5 permit ip source 192. 168.3.0 0.0.0.255 destination 192.168.2.0 0.0.0.255
#
zone- pair security source Any destination Any
packet-filter 3000
“The packet was dropped by ASPF for nonexistent zone pair.”表明没有命中域间实例,如果接口没有加入安全域,ASPF也会上报这条信息。因此应配置DMZ到DMZ的明细域间策略。<H3C>debugging aspf packet acl 3000
<H3C>*Dec 3 10:09:38:765 2018 H3C ASPF/7/PACKET:-Context=1; The packet was dropped by ASPF for nonex-istent zone pair. Src-Zone=DMZ, Dst - Zone=DMZ; If-In-=GigabitEthernet 1/0/2(3), If-Out=GigabitEthernet 1/0/3(4);Packet Info:SrC-IP=192.168.2.2, Dst-IP=192.168.3.2,VPN-Instance=none, Src- Port=222, Dst-Port= 2048. Pro-tocol=ICMP(1).
此时需要升级NGFW防火墙以使用安全策略。NGFW命令支持将对象策略转换为安全策略,但不支持转换包过滤策略,因此需要先手动更改包过滤策略为对象策略。
通过security-policy switch-from object-policy将对象策略转换为安全策略,包过滤策略不做任何转换。object-policy ip Any- Any
rule 0 pass source-ip finance destination-ip market
rule 1 pass source-ip market destination-ip finance
#
zone-pair security source Any destination Any
object-policy apply ip Any-Any
packet-filter 3000
Any到Any的域间策略经过转换后可以实现Finance部门和Market部门的互相访问,说明安全策略的易用性更好,弥补了域间策略的架构缺陷和限制。security-policy ip
rule 0 name 1-0
action pass
source-zone Trust
destination-zone Untrust
source-ip ceo_ office
destination-ip DBserver
rule 1 name DMZ- Untrust- - 1
action pass
time-range work
source-zone DMZ
destination-zone Untrust
source-ip finance
destination-ip DBserver
rule 3 name Any-Any-3
action pass
source-ip finance
destination-ip market
rule 4 name Any-Any-4
action pass
source-ip market
destination-ip finance
安全策略的注意事项
安全策略功能与对象策略功能在设备上不能同时使用。
- 当安全策略与包过滤策略同时配置时,因为安全策略对报文的处理在包过滤之前报文与安全策略规则匹配成功后,不再进行包过滤处理。
配置安全策略前,请首先确认是否需要将设备上已存在的对象策略转换为安全策略,若需要,请务必先将对象策略转换为安全策略。
如何配置防火墙的安全策略
如何配置安全策略
到防火墙的报文分为两种,一种到防火墙本地,另一种由防火墙转发出去,我们称为本地报文和转发报文。
本地报文
从接口G1/0/1 telnet到防火墙,要先将G1/0/1口加入安全域Trust ,然后配置从外部域Trust到Local域的安全策略。
从防火墙ping对端交换机,要先将和交换机互连的G1/0/2口加入安全域Untrust然后配置Local域到Untrust域的安全策略。转发报文
防火墙上下行接口G1/0/4和G1/0/5分别加入Trust域和Untrust域,仅允许172.31 0.0/22的源地址访问192.168.0.0/24的目的地址。
在Web管理平台中,在[策略] - [安全策略界面]下点击[新建]安全策略。
选择源安全域/目的安全域,添加172.31.0.0/22和192.168.0.0/24的IPv4对象组,选择源地址/目的地址。
此时172.31.0.0网段的地址可以主动访问192.168.0.0网段,但是192.168.0.0网段无法访问172.31.0.0网段。
这是由于安全策略是有方向性的,要实现192.168.0.0网段的主动访问,还需要建立Untrust域到Trust域的反向策略。注意:
使用安全策略功能会让对象策略object-policy失效
包过滤策略packet-filter生效,但优先级低于安全策略
如何排查防火墙不通的故障
排查思路
报文是否上到防火墙?
报文是否被防火墙阻断?
报文被防火墙阻断不会有会话表步骤一: 是否有会话表
查看会话时要写明源目的地址,另外要加verbose才能显示更多信息
- 有会话说明报文上到了防火墙
display session table ipv4 source-ip 172.31.0.1 destination-ip 172.31.0.4 ver
步骤二:查看报文是否到防火墙
debug ip packet acl
➢debug报文很多 ,一般要求后面写明细ACL匹配报文(写明源目的地址和协议)
acl advanced 3000
rule 0 permit icmp source 172.31.0.1 0 destination 172.31.0.4 0
<H3C> debugging ip packet acl 3000
This command is CPU intensive and might affect ongoing services. Are you sure you want to continue? [Y/N]:Y
<H3C> terminal monitor
The current terminal is enabled to display logs.
<H3C> terminal debugging
有匹配ACL的debug信息说明报文到达了防火墙。否则报文没到防火墙,需排查路由等其它网络因素。
步骤三:抓包
在Web管理平台中 ,在[系统] - [维护] - [报文捕获]下点击(开始报文捕获]配置报文捕获过滤条件,选择接口,流量较大的时候建议匹配ACL。
报文是否被防火墙阻断
步骤一 : 检查安全策略是否放通报文
debugging security-policy packet ip acl
Debug报文很多 ,一般要求后面写明细ACL匹配报文(写明源目的地址和协议)
acl advanced 3000
rule 5 permit icmp source 192. 168.10.2 0 destination 192.168.10.1 0
<H3C> debugging security-policy packet ip acl 3000
This command is CPU intensive and might affect ongoing services. Are you sure you want to continue? [Y/N]:Y
<H3C> terminal monitor
The current terminal is enabled to display logs.
<H3C> terminal debugging
正常debug(The packet is permitted)
<H3C> *Aug 31 08:24:11:380 2017 F1020 FILTER/7/PACKET: -Context=1; The packet is permitted. Src-Zone=Trust, Dst-Zone=Local;lf-In=GigabitEthernet1/0/5(6), |f-Out=InLoopBack0(132); Packet Info:Src-IP=192.168.10.2, Dst-lP=192. 168.10.1, VPN-Instance=, Src-Port=8, Dst-Port=0, Protocol=ICMP(1), Application=ICMP(22742),SecurityPolicy=1, Rule-lD=0.
阻断debug(The packet is denied SecurityPolicy=4, Rule-lD=3)
<H3C> *Aug 31 08:26:31:988 2017 H3C FILTER/7/PACKET: -Context=1; The packet is denied. Src-Zone=Trust, Dst-Zone=Local;lf-In=GigabitEthernet1/0/5(6), |f-Out=InL oopBack0(132); Packet Info:Src-IP=192. 168.10.2, Dst-lP=192. 168.10.1, VPN-Instance=, Src-Port=8, Dst-Port=0, Protocol=ICMP(1), Application=|CMP(22742),SecurityPolicy=4, Rule-lD=3
防火墙配置deny的安全策略会打印上面的信息,显示被哪条规则deny
步骤二: debugging aspf packet {acl}检查ASPF策略是否阻断报文
第一种情况
The packet was dropped by ASPF for nonexistent zone pair.(说明接口没有加入安全域,检查安全域配置)
<H3C>debugging aspf packet
This command is CPU intensive and might affect ongoing services. Are you sure you
want to continue? [Y/N]:y
<H3C> *Aug 31 08:21:38:114 2017 F1020 ASPF/7/PACKET: -Context=1; The packet was
dropped by ASPF for nonexistent zone pair. Src-Zone=-, Dst-Zone=L ocal;lf-
In=GigabitEthernet1/0/5(6), lf-Out=InL oopBack0(132); Packet Info:Src-lP=192.168.10.2,
Dst-IP=192.168.10.1, VPN-Instance=none Src-Port=1533, Dst-Port= 2048.
Protocol=lCMP(1).
步骤二: 检查ASPF策略是否阻断报文
debugging aspf packet {ac|}
第二种情况
The first packet was dropped by packet filter or object-policy.(说明报文被安全策略阻断,检查是否有相应permit的安全策略)
<H3C>debugging aspf packet
This command is CPU intensive and might affect ongoing services. Are you sure you
want to continue? [Y/N]:y
<H3C> *Aug 31 08:26:31:988 2017 H3C ASPF/7/PACKET: -Context=1; The first packet was dropped by packet filter or object-policy. Src-Zone=Trust, Dst Zone=Local;lf-In=GigabitEthernet1/0/5(6), lIf-Out=InLoopBack0(132); Packet Info:Src-lP=192.168.10.2,
Dst-IP=192.168.10.1, VPN-Instance=none,Src-Port=1535, Dst-Port 2048.
Protocol=lCMP(1).
总结
判断报文是否.上防火墙
➢display session table ipv4
➢debug ip packet acl
判断报文是否被防火墙阻断
➢debugging security-policy packet ip acl
➢debugging aspf packet acl
注意事项
debug的注意事项
➢首先通过命令查看设备是否开启 了debug开关
<H3C>display debugging
Security-policy packet ip acl 3000 debugging switch is on
➢debug完成后关闭debug开启 ,可以通过命令行或者快捷键
<H3C>undo terminal debugging
The current terminal is disabled to display debugging logs.
<H3C>u t d
The current terminal is disabled to display debugging logs.
快捷键:CTR+C回到<用户模式>,CTR+O关闭debug信息
debug的FAQ
没有debug信息怎么办
- debug ip packet没有信息说明报文没有上到防火墙
有vpn-instance的需要在ACL里加vpn-instance
debug信息太多怎么办
尽量写明ACL
- 关闭安全策略日志的显示
- info-center source
- FILTER monitor deny