ACL,中文名称是“访问控制列表”,它由一系列规则(即描述报文匹配条件的判断语句)组成。这些条件通常被称为五元组-分别是报文的源地址、目的地址、源端口、目的端口、端口号等。这样解释ACL,大大家肯定听不懂,那么我打个比喻,ACL相当于一个过滤器,ACL规则就是过滤器的滤芯,安装什么样的滤芯(即根据报文特征匹配的一系列ACL规则),ACL就能过滤出什么样的报文了。
为什么需要ACL?
根据规则过滤的ACL,能够做到阻塞攻击报文、为不同类报文流提供差分服务、对Telnet登录/FTP文件下载进行控制等的功能,从而提高网络环境的安全性和网络传输的可靠性。
ACL是怎么工作的?
ACL工作主要是根据规则进行,ACL规则里包括他的规则编号(顺序),动作(允许或者拒绝)规则匹配的地址段(源/源-目的)生效时间段
技术干货!
基于ACL规则定义方式的划分,可分为:
基本ACL、高级ACL、二层ACL、用户自定义ACL和用户ACL。
基于ACL标识方法的划分,则可分为:
数字型ACL和命名型ACL。
注意:用户在创建ACL时可以为其指定编号,不同的编号对应不同类型的ACL。同时,为了便于记忆和识别,用户还可以创建命名型ACL,即在创建ACL时为其设置名称。命名型ACL,也可以是“名称 数字”的形式,即在定义命名型ACL时,同时指定ACL编号。如果不指定编号,系统则会自动为其分配一个数字型ACL的编号。
通过名称代替编号来定义ACL,就像用域名代替IP地址一样,可以方便记忆,也让大家更容易识别此ACL的使用目的。
基本ACL:
主要针对IP报文的源IP地址进行匹配,基本ACL的编号范围是2000-2999。
比如这个例子,创建的是acl 2000,就意味着创建的是基本ACL。
高级ACL:
可以根据IP报文中的源IP地址、目的IP地址、协议类型,TCP或UDP的源目端口号等元素进行匹配,可以理解为:基本ACL是高级ACL的一个子集,高级ACL可以比基本ACL定义出更精确、更复杂、更灵活的规则。
ACL
一条ACL可以由多条“deny或permit”语句组成,每一条语句描述一条规则,这些规则可能存在包含关系,也可能有重复或矛盾的地方,因此ACL的匹配顺序是十分重要的。
华为设备支持两种匹配顺序:自动排序(auto模式)和配置顺序(config模式)。缺省的ACL匹配顺序是config模式。
自动排序,是指系统使用“深度优先”的原则,将规则按照精确度从高到低进行排序,并按照精确度从高到低的顺序进行报文匹配。——这个比较复杂,这里就不具体展开了,感兴趣的同学可以课后查看资料。
配置顺序,系统按照ACL规则编号从小到大的顺序进行报文匹配,规则编号越小越容易被匹配。——这个就是我们前面提到的匹配顺序。
如果后面又添加了一条规则,则这条规则会被加入到相应的位置,报文仍然会按照从小到大的顺序进行匹配。
匹配结果:(如图所示,以192.168.1.3/24为例)
首先理解ACL 2000的含义:
rule 1:允许源IP地址为192.168.1.1的报文
rule 2:允许源IP地址为192.168.1.2的报文
rule 3:允许源IP地址为192.168.1.2的报文
rule 4:拒绝其他所有IP地址的报文
ACL怎么配?
配置需求:
在Router上部署基本ACL后,ACL将试图穿越Router的源地址为192.168.1.0/24网段的数据包过滤掉,并放行其他流量,从而禁止192.168.1.0/24网段的用户访问Router右侧的服务器网络。
在Router上创建基本ACL,禁止192.168.1.0/24网段访问服务器网络:
[Router] acl 2000
[Router-acl-basic-2000] rule deny source 192.168.1.0 0.0.0.255
[Router-acl-basic-2000] rule permit source any
由于从接口GE0/0/1进入Router,所以在接口GE0/0/1的入方向配置流量过滤:
[Router] interface GigabitEthernet 0/0/1
[Router-GigabitEthernet0/0/1] traffic-filter inbound acl 2000
[Router-GigabitEthernet0/0/1] quit