ACL原理与配置


1 ACL技术概述

  ACL技术背景:需要一个工具,实现流量过滤

  某公司为保证财务数据安全,禁止研发部门访问财务服务器,但总裁办公室不受限制。

  ACL是由一系列permit或deny语句组成的、有序规则的列表。

  ACL是一个匹配工具,能够对报文进行匹配和区分。

2 ACL基本概念与工作原理

2.1 ACL的组成

  ACL由若干条permit或deny语句组成。每条语句就是该ACL的一条规则,每条语句中的permit或deny就是与这条规则相对应的处理动作。

2.2 规则编号

  规则编号(RuleID):一个ACL中的每一条规则都有一个相应的编号。

  步长(Step):系统自动为ACL规则分配编号时,每个相邻规则编号之间的差值,缺省值为5。步长的作用是为了方便后续在旧规则之间,插入新的规则。

  RuleID分配规则:系统为ACL中首条未手工指定编号的规则分配编号时,使用步长值(例如步长=5,首条规则编号为5)作为该规则的起始编号;为后续规则分配编号时,则使用大于当前ACL内最大规则编号且是步长整数倍的最小整数作为规则编号。

2.3 通配符

  通配符是一个32比特长度的数值,用于指示IP地址中,哪些比特位需要严格匹配,哪些比特位无需匹配。

  通配符通常采用类似网络掩码的点分十进制形式表示,但是含义却与网络掩码完全不同。

2.4 ACL的分类与标识

  基于ACL规则定义方式的分类

分类 编号范围 规则定义描述
基本ACL 2000 ~ 2999 仅使用报文的源IP地址、分片信息和生效时间段信息来定义规则。
高级ACL 3000 ~ 3999 可使用IPv4报文的源IP地址、目的IP地址、IP协议类型、ICMP类型、TCP源/目的端口号、UDP源目的端口号、生效时间段等来定义规则。
二层ACL 4000 ~ 4999 使用报文的以太网帧头信息来定义规则,如根据源MAC地址、目的MAC地址、二层协议类型等。
用户自定义ACL 5000 ~ 5999 使用报文头、偏移位置、字符串掩码和用户自定义字符串来定义规则。
用户ACL 6000 ~ 6999 既可使用IPv4报文的源IP地址或源UCL(User Control List)组,也可使用目的IP地址或目的UCL组、IP协议类型、ICMP类型、TCP源端口/目的端口、UDP源端口/目的端口号等来定义规则。

  基于ACL标识方法的分类

分类 规则定义描述
数字型ACL 传统的ACL标识方法。创建ACL时,指定一个唯一的数字标识该ACL。
命名型ACL 通过名称代替编号来标识ACL。

2.5 基本ACL与高级ACL

3 ACL工作原理

3.1 ACL匹配机制

3.2 ACL匹配顺序及结果

  配置顺序(config模式):系统按照ACL规则编号从小到大的顺序进行报文匹配,规则编号越小越容易被匹配。

3.3 ACL匹配位置

3.4 入站及出站方向

4 ACL配置命令

4.1 ACL基础配置命令

  1.创建基本ACL

# 使用编号(2000~2999)创建一个数字型的基本ACL,并进入基本ACL视图
[Huawei] acl [ number ] acl-number [ match-order config ]

# 使用名称创建一个命名型的基本ACL,并进入基本ACL视图。
[Huawei] acl name acl-name { basic | acl-number } [ match-order config ]

  2.配置基本ACL的规则

# 在基本ACL视图下,通过此命令来配置基本ACL的规则。
[Huawei-acl-basic-2000] rule [ rule-id ] { deny  permit } [ source { source-address source-wildcard | any } | time-range time-name ]

4.2 ACL高级配置命令

  1.创建高级ACL

# 使用编号(3000~3999)创建一个数字型的高级ACL,并进入高级ACL视图。
[Huawei] acl [ number ] acl-number [ match-order config ]

# 使用名称创建一个命名型的高级ACL,进入高级ACL视图。
[Huawei] acl name acl-name { advance | acl-number } [ match-order config ]

  2.配置基本ACL规则

   根据IP承载的协议类型不同,在设备上配置不同的高级ACL规则。对于不同的协议类型,有不同的参数组合。

1.当参数protocol为IP时,高级ACL的命令格式为:
  在高级ACL视图下,通过此命令来配置高级ACL的规则。
rule [ rule-id ] { deny | permit } ip [ destination { destination-address destination-wildcard | any } | source { source-address source-wildcard | any } | time-range time-name | [ dscp dscp | [ tos tos |   precedence precedence ] ] ]

2.当参数protocol为TCP时,高级ACL的命令格式为:
  在高级ACL视图下,通过此命令来配置高级ACL的规则。
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 } | source { source-address source-wildcard | any } | source-port { eq port | gt port | lt port | range port-start port-end } | tcp-flag { ack | fin | syn } * | time-range time-name ] *

文章作者: 罗宇
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 罗宇 !
  目录