携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第31天,点击查看活动详情
访问控制列表 (ACL)
什么是访问控制列表
访问控制列表 (ACL) 包含授予或拒绝对某些数字环境的访问的规则。有两种类型的 ACL:
- 文件系统 ACL━过滤对文件和/或目录的访问。文件系统 ACL 告诉操作系统哪些用户可以访问系统,以及允许用户哪些权限。
- 网络 ACL━筛选对网络的访问。网络 ACL 告诉路由器和交换机哪种类型的流量可以访问网络,以及允许哪些活动。
最初,ACL是实现防火墙保护的唯一途径。今天,有许多类型的防火墙和 ACL 的替代品。但是,组织继续将 ACL 与虚拟专用网络 (VPN) 等技术结合使用,这些技术指定应通过 VPN 隧道加密和传输哪些流量。
使用 ACL 的原因:
- 交通流控制
- 限制网络流量,以获得更好的网络性能
- 网络访问的安全级别,指定用户可以访问服务器/网络/服务的哪些区域,哪些区域不能访问
- 对出入系统的流量进行精细监控
ACL 的工作原理
文件系统 ACL 是一个表,用于通知计算机操作系统用户对系统对象(包括单个文件或文件目录)的访问权限。每个对象都有一个安全属性,用于将其连接到其访问控制列表。该列表为具有系统访问权限的每个用户都有一个条目。
典型的特权包括读取目录中的单个文件(或所有文件)、执行文件或写入一个或多个文件的权限。例如,使用ACL的操作系统包括Microsoft Windows NT/2000,Novell的Netware,Digital的OpenVMS和基于UNIX的系统。
当用户在基于 ACL 的安全模型中请求对象时,操作系统将研究 ACL 中的相关条目,并查看请求的操作是否允许。
网络 ACL 安装在路由器或交换机中,充当流量筛选器。每个网络 ACL 都包含预定义的规则,这些规则控制允许或拒绝哪些数据包或路由更新访问网络。
具有 ACL 的路由器和交换机的工作方式类似于数据包筛选器,它们根据筛选条件传输或拒绝数据包。作为第 3 层设备,数据包过滤路由器使用规则来查看是应允许还是拒绝流量访问。它根据源和目标 IP 地址、目标端口和源端口以及数据包的官方过程来决定这一点。
访问控制列表的类型
访问控制列表可以针对两个主要类别进行处理:
标准 ACL仅使用源 IP 地址开发的访问列表。这些访问控制列表允许或阻止整个协议套件。它们不区分 UDP、TCP 和 HTTPS 等 IP 流量。它们使用数字 1-99 或 1300-1999,以便路由器可以将该地址识别为源 IP 地址。
扩展 ACL一种广泛使用的访问列表,因为它可以区分 IP 流量。它使用源和目标 IP 地址以及端口号来理解 IP 流量。您还可以指定应允许或拒绝哪些 IP 流量。他们使用数字100-199和2000-2699。
Linux ACL vs. Windows ACL
Linux提供了进行内核修改的灵活性,这是Windows无法完成的。但是,由于您可以对 Linux 进行内核修改,因此您可能需要专业知识来维护生产环境。
Windows提供了稳定平台的优势,但它不如Linux灵活。在应用程序集成方面,Windows比Linux更容易。
用户可以在 Windows 框中设置访问控制机制,而无需添加软件。
在补丁方面,微软是发布Windows补丁的唯一来源。使用Linux,您可以选择等到商业Linux提供商发布补丁,也可以选择开源实体进行补丁。
ACL 最佳实践
配置 ACL 时,应遵循一些最佳做法,以确保安全性严格并阻止可疑流量:
1. ACL 在每个接口上都强制执行,几乎在所有安全或路由设备中。这是合适的,因为对于面向外部的接口和构成园区网络的接口,您不能使用相同的规则。但是,接口是相似的,您不希望某些接口受 ACL 保护,而不希望某些接口公开。
在所有接口上使用 ACL 对于入站 ACL 至关重要,特别是决定哪个地址可以将数据传输到网络的规则。这些是产生重大影响的规则。
2. ACL 按顺序排列 在几乎所有情况下,执行 ACL 的引擎从顶部开始,在列表中向下移动。这对于确定 ACL 将如何处理特定数据流具有重要意义。
组织采用 ACL 的一个原因是,与有状态防火墙相比,它们的计算开销较低,并且它们以高速工作。当您尝试为快速网络接口实现安全性时,这一点至关重要。但是,数据包在系统中保留的时间越长,同时根据 ACL 中的规则检查数据包,性能就越慢。
诀窍是将您期望触发的规则放在ACL的顶部。从一般到具体,同时确保规则在逻辑上分组。您应该知道,每个数据包都将由它触发的初始规则执行操作,当您打算通过一个规则阻止数据包时,您最终可能会通过另一个规则传递数据包。考虑您希望事件链如何发生,尤其是在添加新规则时。
3. 记录您的工作添加 ACL 规则时,请记录添加 ACL 规则的原因、要执行的操作以及添加时间。
您不需要为每个规则添加一条评论。您可以为规则块进行一次注释,为单个规则进行复杂的解释,或者同时使用这两种方法。
开发人员应确保记录当前规则,因此无需猜测为什么存在规则。
RBAC vs ACL
开发人员可以使用基于角色的访问列表 (RBAC) 系统在粒度级别控制安全性。RBAC 不是强调用户的标识并确定是否应允许他们查看应用程序中的某些内容,而是根据用户在组织中的角色来管理安全性。
例如,RBAC不会允许纽约的建筑师约翰·史密斯(John Smith),而是允许美国建筑师担任一个角色。John Smith 可能是具有该角色的众多用户之一。因此,RBAC 保证只有特定用户才能访问敏感信息,因为它根据角色提供所有批准。
RBAC 通常被认为是业务应用程序的首选方法。在管理开销和安全性方面,RBAC 比 ACL 更有效。ACL 最适用于在单个用户级别应用安全性。可以使用 RBAC 为管理员监视的公司范围的安全系统提供服务。例如,ACL 可以提供对某个文件的写入访问权限,但它不能定义用户如何修改该文件。