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(访问控制列表)详解的主要内容,如果未能解决你的问题,请参考以下文章