ACL(访问控制列表)详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ACL(访问控制列表)详解相关的知识,希望对你有一定的参考价值。

参考技术A

访问控制列表(ACL)是应用在 路由器 接口的指令列表(即规则)。这些指令列表用来告诉路由器,那些数据包可以接受,那些数据包需要拒绝。

ACL使用包过滤技术,在路由器上读取OSI七层模型的第3层和第4层包头中的信息。如源地址,目标地址,源端口,目标端口等,根据预先定义好的规则,对包进行过滤,从而达到访问控制的目的。

ACl是一组规则的集合,它应用在路由器的某个接口上。对路由器接口而言,访问控制列表有两个方向。

出:已经通过路由器的处理,正离开路由器的数据包。

入:已到达路由器接口的数据包。将被路由器处理。

————————————————

1、Access Contral List

2、ACL是一种包过滤技术。

3、ACL基于 IP包头的IP地址 四层TCP/UDP头部的端口号; 基于三层和四层过滤

4、ACL在路由器上配置,也可以在防火墙上配置(一般称为策略)

5、ACL主要分为2大类:

标准 ACL
表号是 1-99 特点;

只能基于 源IP地址 对包进行过滤

扩展 ACL
表号:100-199

特点:可以基于源IP、目标IP、端口号、协议对包进行过滤

————————————————

ACL原理

1)ACL表必须应用到接口的进或出方向生效

2) 一个接口的一个方向 只能应用一张表

3)进还是出方向应用?取决于流量控制总方向

4)ACL表是严格自上而下检查每一条,所以要注意书写顺序

5)每一条是有条件和动作组成,当流量不满足某条件,则继续检查;当流量完全 满足某条件,不再往后检查 直接执行动作。

6)标准ACL尽量写在靠近目标的地方

————————————————

将ACL应用到接口:

———————

注释:反子网掩码:将正子网掩码0和1倒置

反子网掩码:用来匹配,与0对应的严格匹配,与1对应的忽略匹配。

———————

例如:access-list 1 deny 10.1.1.1 0.255.255.255

解释:该条目用来拒绝所有源IP为10开头的

access-list 1 deny 10.1.1.1 0.0.0.0

简写:access-list 1 deny host 10.1.1.1

解释:该条目用来拒绝所有源IP为10.1.1.1的主机

access-list 1 deny 0.0.0.0 255.255.255.255

简写:access-list 1 deny any

解释:该条目用来拒绝所有人

————————————————


————————————————

1)做流量控制,首先要先判断ACL写的位置(那个路由器?那个接口的哪个方向?)

2)再考虑怎么写ACL

首先要判断最终要 允许所有还是拒绝所有

将 【详细的严格的控制】 写在最前面

3)一般情况下,标准或扩展ACL一旦编写,无法修改某一条,也无法删除某一条,也无法往中间插入新的条目,只能一直在最后添加新的条目

如想修改插入或删除,只能删除整张表,重新写!

conf t

no access-list 表号
查看ACL表:

show ip access-list [表ID]

————————————————

扩展ACL:

表号:100-199

特点:可以基于源IP、目标IP、端口号、协议对包进行过滤

命令:

acc 100 permint/deny 协议 源IP或源网段 反子网掩码 目标IP 或源网段 反子网掩码 [eq端口号]

注释:协议:tcp/udp/icmp/ip

案例:

acc 100 permit tcp host 10.1.1.1 host 20.1.1.3 eq 80

acc 100 deny ip host 10.1.1.1 20.1.1.1 0.0.0.255

————————————————

命名ACL:

作用:可以对标准或扩展ACL进行自定义命名

优点:

自定义命名更容易辨认,也便于记忆!

可以任意修改某一条,或删除某一条,也可以往中间插入某一条

conf t

ip access-list standard/extended 自定义表名

开始从deny或permit编写ACL条目

exit

删除某一条:

ip access-list standard/extended 自定义表名

no 条目ID

exit

插入某一条:

IP access-list standard/extended 自定义表名

条目ID 动作 条件

————————————————

以上是以思科命令为例。

华为 ACL访问控制列表 (高级ACL为例)

参考技术A


Access Control List访问控制列表–ACL

ACL是由一个或多个用于报文过滤的规则组成的规则集合,通过在不同功能上的应用 可 达到不同的应用效果。
路由器和交换机接口的指令列表,用来控制端口进出的数据包,配合各种应用(NAT、route police 前缀列表等)实现对应的效果。

匹配特定数据,实现对数据的控制(deny–拒绝,permit–放行)
实现网络访问控制,Qos留策略,路由信息过滤,策略路由等诸多方面。

(1):按照ACL过滤的报文类型和功能划分

基本acl(2000-2999):只能匹配源ip地址。
高级acl(3000-3999):可以匹配源ip、目标ip、源端口、目标端口等三层和四层的字段。

① 接口ACL(编号1000-----19999)
② 基本ACL(编号2000-----2999)
③ 高级ACL(编号3000-----3999)
④ 二层ACL(编号4000-----4999)
⑤ 自定义ACL(编号5000----5999)

(2):按照命名方式划分

① 数字型ACL(创建ACL是编号)
② 命名型ACL(给所创建的ACL赋予一个名称)

定义ACL语句--------》接口/应用挂载-------》接口收到流量匹配ACL语句----------》数据命中ACL后执行语句动作。

(1):一个ACL可以由多条“deny | permit”语句组成,每一条语句描述了一条规则
permit–放行,允许,抓取/匹配
deny----拒绝,过滤。

(2):设备收到数据流量后,会逐条匹配ACL规则,看其是否匹配。
如果不匹配,则匹配下一条。一旦找到一条匹配的规则,则执行规则中定义的动作(permit或者deny)并且不再匹配后续的语句。
如果找不到匹配的规则,则设备不对报文进行任何处理(即默认执行prmit any any,放行所有)

注意: ACL中定义的这些规则可能存在重复或矛盾的地方。规则的匹配顺序决定了规则的优先级,ACL通过设置规则的优先级来处理规则之间重复或矛盾的情形

配置顺序和自动排序

(1)配置顺序:

配置顺序按ACL规则编号(rule-id)从小到大的顺序进行匹配。
设备会在创建ACL的过程中自动为每一条规则分配一个编号(rule-id),规则编号决定了规则被匹配的顺序(ARG3系列路由器默认规则编号的步长是5)。

(2)自动排序:

自动排序使用“深度优先”的原则进行匹配,即根据规则的精确度排序,匹配条件(如协议类型,源目的IP地址范围等)限制越严格越精确。
若“深度优先”的顺序相同,则匹配该规则时按照规则编号从小到大排列。

rule

(1) 一个ACL内可以有一条或者多条规则,每条规则都有自己的编号,在一个ACL每条语句的规则编号时唯一的,每条编号代表一个ACL语句和动作。
(2) ACL的规则编号(rule id)默认自动生成,也可以手动指定,一般我们通过手动插入新的rule 来调整ACL的匹配规则。
(3)默认每条规则号的从0开始,增长规则为步进5(通过step命令修改步进号)

以上是关于ACL(访问控制列表)详解的主要内容,如果未能解决你的问题,请参考以下文章

ACL扩展访问控制列表详解

Linux setfacl命令详解

标准ACL扩展ACL和命名ACL的配置详解

ACL 访问控制列表

华为 ACL访问控制列表 (高级ACL为例)

ACL标准访问控制列表