私有网络

产品文档

私有网络

ACL

基本概念

网络访问控制列表(Access Control List,ACL)是一个子网级别无状态的可选安全层,用于控制进出子网的数据流,可以精确到协议和端口粒度,可用作防火墙来控制进出一个或多个子网的流量。没有网络ACL的保护或者没有配置访问控制策略,会导致子网中的服务器所有网络端口更容易在互联网上遭受攻击甚至导致被入侵。

网络ACL可用于对跨子网的东西向访问流量或者进出互联网的南北向访问流量进行过滤。具有相同网络流量控制的子网可以关联同一个网络 ACL,通过设置出站和入站允许规则,对进出子网的流量进行精确控制。

ACL规则

网络ACL规则用于控制相关联子网的入站、出站流量。没有任何其他规则的情况下,新建的网络ACL将拒绝所有入口和出口流量( All Drop)。

网络ACL分为入站规则和出站规则,其中入站规则用于过滤从互联网或其他子网访问当前子网的流量;出站规则用于从当前子网访问互联网或其他子网的流量。

对于网络ACL的每条规则,您需要指定以下几项内容:

参数 解释
优先级 输入1 - 32768的正整数,优先级数字越小优先级越高,数字越大优先级越低
类型 该规则适用的应用类型,例如HTTP、FTP、ICMPv6或自定义TCP等
协议 该规则适用的传输层协议,例如 TCP、UDP、ICMP、ICMPv6等
端口 该规则适用的端口范围,可以输入单个端口(如80)或一定的端口范围(如32768-65535)
IP地址 该规则适用的源或目的IP地址,可以输入单个IP地址或IP地址段,其中:单个IP地址,IPv4用点分十进制表示法,例如192.168.0.0,IPv6用冒分十六进制表示法:AD80::ABAA:0000:00C2:0002,IP地址段,用CIDR表示法IPv4如192.168.0.0/16,IPv6如2002::/64
策略 允许或拒绝

ACL规则匹配顺序

网络ACL规则会按照您创建时设置的优先级进行匹配,优先级数字小的级别高,数字大的级别低。一旦匹配立即执行。如果没有一条规则匹配到,该访问将被拒绝。

我们建议您如果需要将网络ACL规则应用于两个不同的子网时为每个子网设置单独的优先级区间。如您创建了两个子网192.168.1.0/24 和192.168.200.0/24 ,那么您可以将应用于子网192.168.1.0/24的网络ACL优先级设置在1000 - 1999之间,将子网192.168.200.0/24的网络ACL规则设置在2000 - 2999 之间。

按照以上方法设置可以保证您在调整针对某一子网的网络ACL规则时不会影响针对其他子网的规则。

我们建议您从创建规则编号为 1000的倍数的规则开始,方便您在需要时插入新的规则。

临时端口

临时端口是客户端发起请求时配置的端口,设置网络ACL规则时需注意这点。由于网络ACL无状态的特性,即使设置入站规则允许某些访问,如果没有设置临时端口的出站规则会导致无法响应访问。

发起请求的客户端会选择临时端口范围,根据客户端的操作系统不同,范围也随之更改。

  • 许多 Linux 内核使用端口 32768-61000
  • Windows Server 2003 使用端口 1025-5000
  • Windows Server 2008 使用端口 49152-65535

因此,如果一项来自 Internet 上的 Windows XP 客户端的请求到达您的 VPC 的 Web 服务器,则您的网络 ACL 必须有相应的出站规则,即配置端口范围为 1025-5000 的出站规则。 实际上,为涵盖不同客户端类型可能启动的进入到您 VPC 中的公有实例的数据流,您需要开放临时端口 1024-65535。您也可以在 ACL 中添加规则以拒绝任何在此范围内的来自恶意端口的数据流。您只需确保将拒绝规则放在更高的优先级。

关于临时端口的具体规则请见:https://en.wikipedia.org/wiki/Ephemeral_port

使用约束

在设置网络ACL规则的时候,请特别注意以下限制:

  • 网络ACL规则是无状态的,即使设置入站规则允许指定的IP地址访问,如果没有设置相应的出站规则会导致无法响应访问,具体说明请见临时端口部分。
  • 一个网络ACL可以绑定多个子网、一个子网只能绑定一个网络ACL。

网络ACL与安全组对比:

网络ACL 安全组
无状态 有状态
在子网级别生效 在实例级别生效
支持允许规则和拒绝规则 支持允许规则
自动应用到子网内的所有实例 只有在启动实例的同时指定安全组,安全组规则才应用到实例上
更新时间:2020-10-14 09:54:06