ACL:是什么?目的?使用场景?

ACL简介

定义

访问控制列表ACL(Access Control List)是由一条或多条规则组成的集合。所谓规则,是指描述报文匹配条件的判断语句,这些条件可以是报文的源地址、目的地址、端口号等。

ACL本质上是一种报文过滤器,规则是过滤器的滤芯。设备基于这些规则进行报文匹配,可以过滤出特定的报文,并根据应用ACL的业务模块的处理策略来允许或阻止该报文通过。

ACL结构图

ACL匹配机制

ACL在匹配报文时遵循“一旦命中即停止匹配”的原则。其实,这句话就是对ACL匹配机制的一个高度的概括。

当然,ACL匹配过程中,还存在很多细节。比如,ACL不存在系统会怎么处理?ACL存在但规则不存在系统会怎么处理?为了对整个ACL匹配过程展开详细的介绍,小编画了一张ACL匹配流程图,相信对大家理解ACL匹配机制能有所帮助。

ACL匹配机制

从整个ACL匹配流程可以看出,报文与ACL规则匹配后,会产生两种匹配结果:匹配”和“不匹配”

  • 匹配(命中规则):指存在ACL,且在ACL中查找到了符合匹配条件的规则。不论匹配的动作是“permit”还是“deny”,都称为“匹配”,而不是只是匹配上permit规则才算“匹配”。
  • 不匹配(未命中规则):指不存在ACL,或ACL中无规则,再或者在ACL中遍历了所有规则都没有找到符合匹配条件的规则。切记以上三种情况,都叫做“不匹配”。

无论报文匹配ACL的结果是“不匹配”、“允许”还是“拒绝”,该报文最终是被允许通过还是拒绝通过,实际是由应用ACL的各个业务模块来决定的。

不同的业务模块,对命中和未命中规则报文的处理方式也各不相同。例如,在Telnet模块中应用ACL,只要报文命中了permit规则,就允许通过;而在流策略中应用ACL,如果报文命中了permit规则,但流行为动作配置的是deny,该报文会被拒绝通过。

ACL目的

随着网络的飞速发展,网络安全和网络服务质量QoS(Quality of Service)问题日益突出。

  • 企业重要服务器资源被随意访问,企业机密信息容易泄露,造成安全隐患。

  • Internet病毒肆意侵略企业内网,内网环境的安全性堪忧。

  • 网络带宽被各类业务随意挤占,服务质量要求最高的语音、视频业务的带宽得不到保障,造成用户体验差。

以上种种问题,都对正常的网络通信造成了很大的影响。因此,提高网络安全性服务质量迫在眉睫。ACL就在这种情况下应运而生了。

通过ACL可以实现对网络中报文流的精确识别和控制,达到控制网络访问行为、防止网络攻击和提高网络带宽利用率的目的,从而切实保障网络环境的安全性和网络服务质量的可靠性。

ACL的使用场景 

ACL可以应用于诸多业务模块,其中最基本的ACL应用,就是在简化流策略/流策略中应用ACL,使设备能够基于全局、VLAN或接口下发ACL,实现对转发报文的过滤。

此外,ACL还可以应用在Telnet、FTP、路由等模块。

ACL应用的业务模块非常多,但主要分为以下四类:

业务分类

                                                               应用场景

涉及业务模块

登录控制

对登录权限进行控制,允许合法用户登录,拒绝非法用户登录,从而有效防止未经授权用户的非法接入,保证网络安全性。

例如,一般情况下交换机只允许管理员登录,非管理员用户不允许随意登录。这时就可以在Telnet中应用ACL,并在ACL中定义哪些主机可以登录,哪些主机不能。

Telnet、SNMP、FTP、TFTP、SFTP、HTTP

对转发的报文进行过滤

对转发的报文进行过滤,从而使交换机能够进一步对过滤出的报文进行丢弃、修改优先级、重定向、IPSEC保护等处理。

例如,可以利用ACL,降低P2P下载、网络视频等消耗大量带宽的数据流的服务等级,在网络拥塞时优先丢弃这类流量,减少它们对其他重要流量的影响。

QoS流策略、NAT、IPSEC

对上送CPU处理的报文进行过滤

对上送CPU的报文进行必要的限制,可以避免CPU处理过多的协议报文造成占用率过高、性能下降。

例如,发现某用户向交换机发送大量的ARP攻击报文,造成交换机CPU繁忙,引发系统中断。这时就可以在本机防攻击策略的黑名单中应用ACL,将该用户加入黑名单,使CPU丢弃该用户发送的报文。

黑名单、白名单、用户自定义流

路由过滤

ACL可以应用在各种动态路由协议中,对路由协议发布和接收的路由信息进行过滤。

例如,可以将ACL和路由策略配合使用,禁止交换机将某网段路由发给邻居路由器。

BGP、IS-IS、OSPF、OSPFv3、RIP、RIPng、组播协议

 ACL应用案例

1使用基本ACL限制Telnet登录权限

为了保障远程维护网络设备的安全性,现要求只有管理员(源地址是10.1.1.1/32)才能telnet登录交换机,其他人不允许登录。

要实现这个需求,一定是在Telnet模块中应用ACL。那么该如何配置ACL规则呢?大家是不是认为应该先配置一条permit规则允许10.1.1.1/32登录,然后再配置多条deny规则拒绝其他地址登录呢?其实大可不必。

查阅Telnet模块的报文处理机制参照表,当ACL中存在规则的情况下,如果报文匹配上permit规则,则该地址允许登录设备;如果未匹配上规则,该地址被拒绝登录设备。

业务模块

匹配上了permit规则

匹配上了deny规则

ACL中配置了规则,但未匹配上任何规则

ACL中没有配置规则

ACL未创建

Telnet

permit(允许登录)

deny(拒绝登录)

deny(拒绝登录)

permit(允许登录)

permit(允许登录)

因此,我们仅需配置一条允许10.1.1.1/32地址通过的permit规则即可,10.1.1.1/32以外的地址的报文因匹配不上任何规则会被拒绝登录。

2使用基本ACL限制FTP访问权限示例

组网需求

如图所示,Switch作为FTP服务器,对网络中的不同用户开放不同的访问权限:

  • 子网1(172.16.105.0/24)的所有用户在任意时间都可以访问FTP服务器。
  • 子网2(172.16.107.0/24)的所有用户只能在某一个时间范围内访问FTP服务器。
  • 其他用户不可以访问FTP服务器。

已知Switch与各个子网之间路由可达,要求在Switch上进行配置,实现FTP服务器对客户端访问权限的设置。

使用基本ACL限制FTP访问权限组网图 

配置思路

采用如下的思路在Switch上进行配置:

  1. 配置时间段和ACL,使设备可以基于时间的ACL,对网络中不同用户的报文进行过滤,从而控制不同用户的FTP访问权限。
  2. 配置FTP基本功能。
  3. 在FTP模块中应用ACL,使ACL生效。

Consul Access Control(ACLS)

Consul使用Access Control Lists (ACLs)来保护UI、API、CLI、服务间通信和agent间通信。ACL的核心是将规则分组到策略中,然后将一个或多个策略与一个Token关联起来。

Consul ACL可以用来控制数据和接口的访问。

应用:consul配置acl:允许注册和访问所有节点,并读取任何服务

参考链接:

https://docs.spring.io/spring-security/site/docs/current/reference/htmlsingle/#domain-acls

https://learn.hashicorp.com/consul/security-networking/production-acls

https://forum.huawei.com/enterprise/zh/thread-336589.html

https://support.huawei.com/enterprise/zh/doc/EDOC1100038902/9aca1495

https://juejin.im/post/5d3ffce56fb9a06af7121025

https://support.huawei.com/enterprise/zh/doc/EDOC1100116596/bcfa479c

https://muka.app/?p=336

https://www.consul.io/api/acl/acl.html

发布了398 篇原创文章 · 获赞 1301 · 访问量 167万+

猜你喜欢

转载自blog.csdn.net/fly910905/article/details/104112425