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


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




ACL原理

ACL是什么

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

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


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

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

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

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

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

列表种类

数字标识范围

基本的访问控制列表 

20002999

高级的访问控制列表 

30003999

基于接口的访问控制列表 

10001999

基于MAC的访问控制列表 

40004999

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

基本访问控制列表

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


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

高级访问控制列表

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


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

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

基于接口的访问控制列表

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

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


基于MAC的访问控制列表

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


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

ACL基本配置

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

[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语句组成的一系列的规则列表,或者叫若干个规则构成一个访问控制列表。在配置访问控制列表的规则之前,首先需要创建一个访问控制列表。

Acl number acl-number [match-order {confug | auto}

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

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

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 位的数。


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

反掩码和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-codeicmp-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 }


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





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