网络访问控制列表 (ACL)是一个可选安全层,可作为防火墙,以控制进出子网的数据流。您可以设置网络 ACL,使其规则与您的安全组相似,以便为您的 VPC 添加额外安全层。
以下是您需要了解的有关网络 ACL 的基本信息:
您可以创建新的网络ACL规则,并关联到指定子网。当您在网络 ACL 中添加或删除规则时,更改也会自动应用到与其相关联的子网。 以下为部分网络 ACL 规则:
下表展示了一个自定义网络 ACL 示例。其中包括允许 HTTP 和 HTTPS 数据流进入的规则(入站规则 100 和 110)。相应的出站规则,以允许响应入站数据流(出站规则 120,适用于临时端口 49152-65535) 网络 ACL 还包括允许 SSH 和 RDP 数据流进入子网的入站规则。出站规则 120 允许离开子网的响应。 网络 ACL 出站规则(100 和 110)允许离开子网的 HTTP 和 HTTPS 数据流。存在相应的入站规则,以允许响应出站数据流(入站规则 140,适用于临时端口 49152-65535)。
Inbound | |||||
---|---|---|---|---|---|
Rule# | Source | Protocol | Port Range | Allow/Deny | Comments |
100 | 0.0.0.0/0 | TCP | 80 | ALLOW | 允许来自任何地方的入站 HTTP 数据流 |
110 | 0.0.0.0/0 | TCP | 443 | ALLOW | 允许来自任何地方的入站 HTTP 数据流 |
120 | 192.0.2.0/24 | TCP | 22 | ALLOW | 允许来自您的办公网络的公有 IP 地址范围内的入站 SSH 数据流(通过 Internet 网关)。 |
140 | 0.0.0.0/0 | TCP | 32768-61000 | ALLOW | 允许从源于子网的请求返回的入站数据流 |
150 | 0.0.0.0/0 | UDP | 32768-61000 | ALLOW | 允许从源于子网的请求返回的入站数据流 |
32766 | 0.0.0.0/0 | All | All | DENY | 拒绝所有尚未经前置规则(不可修改)处理的入站数据流。 |
Outbound | |||||
Rule# | Source | Protocol | Port Range | Allow/Deny | Comments |
100 | 0.0.0.0/0 | TCP | 80 | ALLOW | 允许从子网到 Internet 的出站 HTTP 数据流。 |
110 | 0.0.0.0/0 | TCP | 443 | ALLOW | 允许从子网到 Internet 的出站 HTTPS 数据流。 |
120 | 192.0.2.0/24 | TCP | 22 | ALLOW | 允许对 Internet 客户端进行出站响应(例如,向访问子网中 Web 服务器的人员开放网页)。 |
32766 | 0.0.0.0/0 | All | All | DENY | 拒绝所有尚未经前置规则(不可修改)处理的出站数据流。 |
随着数据包流向子网,我们会根据与子网关联的 ACL 的进入规则评估数据包(从规则列表的顶端开始向下移动)。 信息包被指定发往 SSL 端口 (443)。数据包不匹配第一项评估规则(规则 100)。它匹配第二条规则 (110),即允许数据包进入子网。如果数据包的目的地已经指定为端口 139 (NetBIOS),则最初两项规则可能无法匹配,但是“*”规则最终可能会拒绝这个数据包。 在您需要开放一系列端口、同时在此部分端口内您想拒绝部分窗口,您可能希望添加一项拒绝规则。您只需确保将拒绝规则放在表的较前端,先于一系列的放开端口的规则。
重要提示: 如果您的主机是作为SLB的后端Real sever,而且主机所在子网有一个网络 ACL,并在其中针对源为 0.0.0.0/0 的所有流量添加了 DENY 规则,那么您的负载均衡器将无法对这些实例执行运行状况检查。要确保可执行健康检查,请为已连接到您的负载均衡器的每个子网添加入站 ALLOW 规则:允许监控检查流量访问您的后端服务器;另外为您的子网添加一个适用于临时端口 1024 至 65535 的出站 ALLOW 规则。
上一个部分中的网络 ACL 实例使用了临时端口范围 49152-65535。但是,您可能希望为网络 ACL 设置不同的范围。此部分将为您解释原因。 发起请求的客户端会选择临时端口范围。根据客户端的操作系统不同,范围也随之更改。许多 Linux 内核(包括 KSC Linux 内核)使用端口 32768-61000。生成自 Sever Load Balancing 的请求使用端口 1024-65535。Windows 操作系统通过 Windows Server 2003 使用端口 1025-5000。Windows Server 2008 使用端口 49152-65535。因此,如果一项来自 Internet 上的 Windows XP 客户端的请求到达您的 VPC 的 Web 服务器,则您的网络 ACL 必须有相应的出站规则,以启用目标为端口 1025-5000 的数据流。 实际上,为涵盖不同客户端类型可能启动的进入到您 VPC 中的公有实例的数据流,您需要开放临时端口 1024-65535。但是,您也可以在 ACL 中添加规则以拒绝任何在此范围内的来自恶意端口的数据流。您只需确保将拒绝规则放在表的较前端,先于允许一系列临时端口数据流的规则。