前提条件
•如果配置基于时间的ACL,则需创建生效时间段,并将其与ACL规则关联起来。配置ACL生效时间段案例
背景信息
高级ACL根据源IP地址、目的IP地址、IP协议类型、TCP源/目的端口、UDP源/目的端口号、分片信息和生效时间段等信息来定义规则,对IPv4报文进行过滤。
高级ACL比基本ACL提供了更准确、丰富、灵活的规则定义方法。例如,当希望同时根据源IP地址和目的IP地址对报文进行过滤时,则需要配置高级ACL。
操作步骤
1、执行命令system-view,进入系统视图。
2、创建高级ACL。可使用编号或者名称两种方式创建。
-
执行命令acl [ number ] acl-number [ match-order { auto | config } ],使用编号(3000~3999)创建一个数字型的高级ACL,并进入高级ACL视图。
-
执行命令acl name acl-name { advance | acl-number } [ match-order { auto | config } ],使用名称创建一个命名型的高级ACL,进入高级ACL视图。
缺省情况下,未创建ACL。
如果创建ACL时未指定match-order参数,则该ACL默认的规则匹配顺序为config。
创建ACL后,ACL的缺省步长为5。如果该值不能满足管理员部署ACL规则的需求,则可以对ACL步长值进行调整。
3、(可选)执行命令description text,配置ACL的描述信息。
缺省情况下,未配置ACL的描述信息。
配置ACL时,为ACL添加描述信息可以方便理解和记忆该ACL的功能或具体用途。
4、配置高级ACL规则。
根据IP承载的协议类型不同,在设备上配置不同的高级ACL规则。对于不同的协议类型,有不同的参数组合。
-
当IP承载的协议类型为ICMP时,高级访问控制列表的命令格式为:
rule [ rule-id ] { deny | permit } { protocol-number | icmp } [ destination { destination-address destination-wildcard | any } | icmp-type { icmp-name | icmp-type icmp-code } | source { source-address source-wildcard | any } | logging | time-range time-name | vpn-instance vpn-instance-name | [ dscp dscp | [ tos tos | precedence precedence ] * ] | [ fragment | none-first-fragment ] | vni vni-id ] * -
当IP承载的协议类型为TCP时,高级访问控制列表的命令格式为:
rule [ rule-id ] { deny | permit } { protocol-number | tcp } [ destination { destination-address destination-wildcard | any } | destination-port { eq port | gt port | lt port | range port-start port-end | port-set port-set-name } | source { source-address source-wildcard | any } | source-port { eq port | gt port | lt port | range port-start port-end | port-set port-set-name } | tcp-flag { ack | fin | psh | rst | syn | urg | established } * | logging | time-range time-name | vpn-instance vpn-instance-name | [ dscp dscp | [ tos tos | precedence precedence ] * ] | [ fragment | none-first-fragment ] | vni vni-id ] *
-
当IP承载的协议类型为UDP时,高级访问控制列表的命令格式为:
rule [ rule-id ] { deny | permit }{ protocol-number | udp } [ destination { destination-address destination-wildcard | any } | destination-port { eq port | gt port | lt port | range port-start port-end | port-set port-set-name } | source { source-address source-wildcard | any } | source-port { eq port | gt port | lt port | range port-start port-end | port-set port-set-name } | logging | time-range time-name | vpn-instance vpn-instance-name | [ dscp dscp | [ tos tos | precedence precedence ] * ] | [ fragment | none-first-fragment ] | vni vni-id ] *
当IP承载的协议类型为GRE、IGMP、IPINIP、OSPF时,高级访问控制列表的命令格式为:
rule [ rule-id ] { deny | permit } { protocol-number | gre | igmp | ipinip | ospf } [ destination { destination-address destination-wildcard | any } | source { source-address source-wildcard | any } | logging | time-range time-name | vpn-instance vpn-instance-name | [ dscp dscp | [ tos tos | precedence precedence ] * ] | [ fragment | none-first-fragment ] | vni vni-id ] *
5、(可选)执行命令rule rule-id description description,配置ACL规则的描述信息。
缺省情况下,各规则没有描述信息。
配置ACL规则时,为ACL规则添加描述信息,可以方便理解和记忆该ACL规则的功能或具体用途。
设备仅允许为已存在的规则添加描述信息,不允许先配置规则的描述信息再配置具体的规则内容。如果在设备上删除已经配置了描述信息的规则,那么该规则对应的描述信息也一并被删除。
配置小窍门
配置高级ACL规则
-
配置基于ICMP协议类型、源IP地址(主机地址)和目的IP地址(网段地址)过滤报文的规则
在ACL 3001中配置规则,允许源IP地址是192.168.1.3主机地址且目的IP地址是192.168.2.0/24网段地址的ICMP报文通过。
<Huawei> system-view [Huawei] acl 3001 [Huawei-acl-adv-3001] rule permit icmp source 192.168.1.3 0 destination 192.168.2.0 0.0.0.255
-
配置基于TCP协议类型、TCP目的端口号、源IP地址(主机地址)和目的IP地址(网段地址)过滤报文的规则
在名称为deny-telnet的高级ACL中配置规则,拒绝IP地址是192.168.1.3的主机与192.168.2.0/24网段的主机建立Telnet连接。
<Huawei> system-view [Huawei] acl name deny-telnet [Huawei-acl-adv-deny-telnet] rule deny tcp destination-port eq telnet source 192.168.1.3 0 destination 192.168.2.0 0.0.0.255
在名称为no-web的高级ACL中配置规则,禁止192.168.1.3和192.168.1.4两台主机访问Web网页(HTTP协议用于网页浏览,对应TCP端口号是80),并配置ACL描述信息为Web access restrictions。
<Huawei> system-view [Huawei] acl name no-web [Huawei-acl-adv-no-web] description Web access restrictions [Huawei-acl-adv-no-web] rule deny tcp destination-port eq 80 source 192.168.1.3 0 [Huawei-acl-adv-no-web] rule deny tcp destination-port eq 80 source 192.168.1.4 0
-
配置基于TCP协议类型、源IP地址(网段地址)和TCP标志信息过滤报文的规则
在ACL 3002中配置规则,拒绝192.168.2.0/24网段的主机主动发起的TCP握手报文通过,允许该网段主机被动响应TCP握手的报文通过,实现192.168.2.0/24网段地址的单向访问控制。同时,配置ACL规则描述信息分别为Allow the ACK TCP packets through、Allow the RST TCP packets through和Do not Allow the other TCP packet through。
完成以上配置,必须先配置两条permit规则,允许192.168.2.0/24网段的ACK=1或RST=1的报文通过,再配置一条deny规则,拒绝该网段的其他TCP报文通过。
<Huawei> system-view [Huawei] acl 3002 [Huawei-acl-adv-3002] rule permit tcp source 192.168.2.0 0.0.0.255 tcp-flag ack [Huawei-acl-adv-3002] display this //如果配置规则时未指定规则编号,则可以通过此步骤查看到系统为该规则分配的编号,然后根据该编号,为该规则配置描述信息。 # acl number 3002 rule 5 permit tcp source 192.168.2.0 0.0.0.255 tcp-flag ack //系统分配的规则编号是5 # return [Huawei-acl-adv-3002] rule 5 description Allow the ACK TCP packets through [Huawei-acl-adv-3002] rule permit tcp source 192.168.2.0 0.0.0.255 tcp-flag rst [Huawei-acl-adv-3002] display this # acl number 3002 rule 5 permit tcp source 192.168.2.0 0.0.0.255 tcp-flag ack syn rule 5 description Allow the ACK TCP packets through rule 10 permit tcp source 192.168.2.0 0.0.0.255 tcp-flag rst //系统分配的规则编号是10 # return [Huawei-acl-adv-3002] rule 10 description Allow the RST TCP packets through [Huawei-acl-adv-3002] rule deny tcp source 192.168.2.0 0.0.0.255 [Huawei-acl-adv-3002] display this # acl number 3002 rule 5 permit tcp source 192.168.2.0 0.0.0.255 tcp-flag ack syn rule 5 description Allow the ACK TCP packets through rule 10 permit tcp source 192.168.2.0 0.0.0.255 tcp-flag rst rule 10 description Allow the RST TCP packets through rule 15 deny tcp source 192.168.2.0 0.0.0.255 //系统分配的规则编号是15 # return [Huawei-acl-adv-3002] rule 15 description Do not Allow the other TCP packet through