你必须要知道的访问控制列表ACL

2020-04-30 15:46:43 浏览数 (1)

ACL原理
ACL是什么

为了过滤数据包,需要配置一些规则,规定什么样的数据包可以通过,什么样的数据包不能通过。这些规则就是通过访问控制列表(Access Control List)体现的。

访问控制列表根据IP报文的协议号、源地址、目标地址、源端口和目的端口的信息起到过滤数据报文的作用。

用户需要根据自己的安全策略来确定访问控制列表,并将其应用到整机或指定接口上,安全网关就会根据访问控制列表来检查所有接口或指定接口上的所有数据包,对于符合规则的报文作正常转发或丢弃处理的动作,从而起到防火墙的作用。

访问控制列表除了用于过滤数据报文之外,还可以应用于:

  • Qos(Quality of Service),对数据流量进行控制;
  • 在DCC中,访问控制列表还可以规定触发拨号的条件;
  • 地址转换;
  • 在配置路由策略时,可以利用访问控制列表来作路由信息的过滤。
ACL种类

ACL数字的范围标明了用途:

列表种类

数字标识范围

基本的访问控制列表

2000~2999

高级的访问控制列表

3000~3999

基于接口的访问控制列表

1000~1999

基于MAC的访问控制列表

4000~4999

分类方法是按照访问控制列表的用途来划分的。

基本访问控制列表

基本访问控制列表仅仅是根据数据包的源地址对数据包进行区分。 使用源地址信息,做为定义访问控制列表规则的元素。

高级访问控制列表

高级访问控制列表可以使用数据包的源地址信息、目的地址信息、IP承载的协议类型、针对协议的特性,例如TCP的源端口,ICMP协议的类型、代码等内容定义规则。

利用高级访问控制列表可以定义比基本访问控制列表更准确、更丰富、更灵活的规则。

基于接口的访问控制列表

基于接口的访问控制列表,是一种特殊的访问控制列表,可以根据接收或者发送报文的接口指定规则。

基于MAC的访问控制列表

基于以太网的MAC地址的访问控制列表,也是一种特殊的访问控制列表,指定发送报文的源设备和目标设备建立接口绑定规则,可以起到防止欺骗的作用。

ACL基本配置

在防火墙命令行的系统视图下可进行ACL表的创建。

代码语言:javascript复制
[SecPath] acl  number  2000  match-order  config
[SecPath-acl-basic-2000] ?      使用问号显示如下ACL列表的操作命令:                                                 
Acl-basic view commands:                                                        
display  Display current system information                                   
ping     Ping function                                                        
quit     Exit from current command view                                       
return   Exit to User View                                                    
rule     Specify an acl rule                                                  
tracert  Trace route function                                                 
undo     Cancel current setting 
访问控制列表的创建

一个访问控制列表是由permit或 deny语句组成的一系列的规则列表,或者叫若干个规则构成一个访问控制列表。在配置访问控制列表的规则之前,首先需要创建一个访问控制列表。

代码语言:javascript复制
Acl number acl-number [match-order {confug | auto}

此命令可以创建一个访问控制列表

创建了一个访问控制列表之后,将进入ACL视图,ACL视图是按照访问控制列表的用途来分类的。假若创建了一个数字编号为3000的数字型ACL列表,将进入高级ACL视图。安全网关的提示符为:[SecPath-acl-advanced-3000]。进入ACL视图之后,就可以配置ACL规则了。对于不同的ACL,规则是不一样的。

代码语言:javascript复制
Undo acl {number acl-number | all }

此命令可以删除一个或所有访问控制列表;

参数说明:
  • number acl-number 定义一个数字型的ACL , acl-number 为访问控制规则序号。
  • match-order confug 指定按照用户的配置顺序匹配规则(为缺省规则),用户一旦指定某一条访问规则列表的匹配顺序就不能更改该顺序了。除非把该ACL的内容全部删除,再重新指定其匹配顺序。
  • match-order auto 指定按照深度优先的规则匹配规则;
如何使用反掩码

反掩码的作用和子网掩码很相似。通常情况下反掩码看起来很象一个颠倒过来的IP 地址子网掩码,但是用法上是不一样的。IP 地址与反掩码的关系语法规定如下: 在反掩码中相应位为1 的地址中的位在比较中被忽略,为0 的必须被检查。IP 地址与反掩码都是32 位的数。

反掩码和IP地址结合使用,可以描述一个地址范围。

0

0

0

255

只比较前24位

0

0

3

255

只比较前22位

0

255

255

255

只比较前8位

ACL列表基本配置

ACL基本配置包括

  • 基本访问控制列表配置
  • 高级访问控制列表配置
  • 基于接口的访问控制列表配置
  • 基于MAC地址的访问控制列表配置
  • 删除访问控制列表
  • 时间段配置
  • 访问控制列表的调试与显示
基本访问控制列表的配置

操作

命令

在系统视图下,创建一个基本访问控制列表

acl number acl-number [ match-order { config | auto } ]

在基本访问控制列表视图下,配置ACL规则

rule [ rule-id ] { permit | deny } [ source sour-addr sour-wildcard | any ] [ time-range time-name ] [ logging ] [ fragment ] [ vpn-instance vpn-instance-name ]undo rule rule-id [ source ] [ time-range ] [ logging ] [ vpn-instance vpn-instance-name ] [ fragment ]

高级访问控制列表的配置

操作

命令

在系统视图下,创建一个高级访问控制列表

acl number acl-number [ match-order { config | auto } ]

在高级访问控制列表视图下,配置ACL规则

rule [ rule-id ] { permit | deny } protocol [ source sour-addr sour-wildcard | any ] [ destination dest-addr dest-mask | any ] [ source-port operator port1 [ port2 ] ] [ destination-port operator port1 [ port2 ] ] [ icmp-type {icmp-type icmp-code| icmp-message} ] [ precedence precedence ] [ dscp dscp ] [ established ] [ tos tos ] [ time-range time-name ] [ logging ] [ fragment ] [ vpn-instance vpn-instance-name ]undo rule rule-id [ source ] [ destination ] [ source-port ] [ destination-port ] [ icmp-type ] [ precedence ] [ dscp ] [ tos ] [ time-range ] [ logging ] [ fragment ] [ vpn-instance vpn-instance-name ]

基于接口的访问控制列表的配置

操作

命令

在系统视图下,创建一个基于接口的访问控制列表

acl number acl-number [ match-order { config | auto } ]

在基于接口的访问控制列表视图下,配置ACL规则

rule { permit | deny } [ interface type number ] [ time-range time-name ] [ logging ]undo rule rule-id [ time-range | logging ]

基于MAC的访问控制列表的配置

操作

命令

在系统视图下,创建一个基于MAC地址的访问控制列表

acl number acl-number

在基于MAC地址的访问控制列表视图下,配置ACL规则

rule [ rule-id ] { deny | permit } [ type type-code type-wildcard | lsap lsap-code lsap-wildcard ] [ source-mac sour-addr sour-wildcard ] [ dest-mac dest-addr dest-mask ]undo rule rule-id

删除访问控制列表

操作

命令

删除访问控制列表

undo acl { number acl-number | all}

时间段配置

操作

命令

创建一个时间段

time-range time-name [ start-time to end-time ] [ days ] [ from time1 date1 ] [ to time2 date2 ]

删除一个时间段

undo time-range time-name [ start-time to end-time ] [ days ] [ from time1 date1 ] [ to time2 date2 ]

此命令在系统视图下进行。

在同一个名字下可以配置多个时间段,这些时间段是“或”逻辑关系。

访问控制列表的显示与调试

操作

命令

显示配置的访问控制列表规则

display acl { all | acl-number }

显示时间段

display time-range { all | time-name }

清除访问规则计数器

reset acl counter { all | acl-number }

第一、第二条命令在所有视图下均可执行。第三条命令在用户视图下执行。

0 人点赞