网络访问控制列表 (Access Control List,ACL)是一个子网级别无状态的可选安全层,可以精确到协议和端口粒度,可作为防火墙,以控制进出子网的数据流。您可以设置网络 ACL,使其规则与您的安全组相似,以便为您的 VPC 添加额外安全层。 ACL 无状态的特性,即使设置入站规则允许某些访问,如果没有设置相应的出站规则也会导致无法响应访问。
以下是您需要了解的有关网络 ACL 的基本信息:
您可以创建新的网络ACL规则,并绑定到指定子网。当您在网络 ACL 中添加或删除规则时,更改也会自动应用到与其绑定的子网。
网络 ACL 规则有如下部分组成:
用户可以为具有相同网络流量控制的子网绑定同一个网络 ACL,通过设置出站和入站允许/拒绝规则,对进出子网的流量进行精确控制。例如,您在金山云私有网关内托管多层 Web 应用,创建了不同子网分别部署 Web 层、逻辑层和数据层服务,通过网络 ACL 您可以控制这三个子网之间的访问:Web 层子网和数据库层子网无法相互访问,只有逻辑层可以访问 Web 层和数据层子网。
下表展示了一个自定义网络 ACL 示例。其中包括允许 HTTP 和 HTTPS 数据流进入的规则(入站规则 100 和 110)。相应的出站规则,以允许响应入站数据流(出站规则 120,适用于临时端口 49152-65535)
,网络 ACL 还包括允许 SSH 和 RDP 数据流进入子网的入站规则。出站规则 120 允许离开子网的响应。
网络 ACL 出站规则(100 和 110)允许离开子网的 HTTP 和 HTTPS 数据流。存在相应的入站规则,以允许响应出站数据流(入站规则 140,适用于临时端口 49152-65535)。
入站规则
优先级 | 源IP | 协议 | 端口范围 | 允许/拒绝 | 备注 |
---|---|---|---|---|---|
100 | 0.0.0.0/0 | TCP | 80 | 允许 | 允许来自任何地方的入站 HTTP 数据流 |
110 | 0.0.0.0/0 | TCP | 443 | 允许 | 允许来自任何地方的入站 HTTP 数据流 |
120 | 192.0.2.0/24 | TCP | 49152-65535 | 允许 | 允许来自您的办公网络的公有 IP 地址范围内的入站 SSH 数据流(通过 Internet 网关)。 |
140 | 0.0.0.0/0 | TCP | 49152-65535 | 允许 | 允许从源于子网的请求返回的入站数据流 |
150 | 0.0.0.0/0 | UDP | 49152-65535 | 允许 | 允许从源于子网的请求返回的入站数据流 |
32766 | 0.0.0.0/0 | IP | IP | 拒绝 | 拒绝所有尚未经前置规则(不可修改)处理的入站数据流。 |
出站规则
优先级 | 目标IP | 协议 | 端口范围 | 允许/拒绝 | 备注 |
---|---|---|---|---|---|
100 | 0.0.0.0/0 | TCP | 80 | 允许 | 允许从子网到 Internet 的出站 HTTP 数据流。 |
110 | 0.0.0.0/0 | TCP | 443 | 允许 | 允许从子网到 Internet 的出站 HTTPS 数据流。 |
120 | 192.0.2.0/24 | TCP | 1024-65535 | 允许 | 允许对 Internet 客户端进行出站响应(例如,向访问子网中 Web 服务器的人员开放网页)。 |
32766 | 0.0.0.0/0 | IP | IP | 拒绝 | 拒绝所有尚未经前置规则(不可修改)处理的出站数据流。 |
随着数据包流向子网,我们会根据与子网关联的 ACL 的进入规则评估数据包(从规则列表的顶端开始向下移动)。 信息包被指定发往 SSL 端口 (443)。数据包不匹配第一项评估规则(规则 100)。它匹配第二条规则 (110),即允许数据包进入子网。如果数据包的目的地已经指定为端口 139 (NetBIOS),则最初两项规则可能无法匹配,但是“*”规则最终可能会拒绝这个数据包。
在您需要开放一系列端口、同时在此部分端口内您想拒绝部分数据,您需要添加一项拒绝规则,并确保将拒绝规则的优先级设置为大于放开一系列端口规则的优先级,即拒绝规则的优先级数值小于放开一系列端口的数值。
临时端口是客户端发起请求时配置的端口,设置网络 ACL 出站规则时需注意这点。由于网络 ACL 无状态的特性,即使设置入站规则允许某些访问,如果没有设置相应的出站规则会导致无法响应访问。
某客户端向 VPC 内某子网中主机发起请求,该子网关联了网络 ACL。客户端默认配置的端口属于临时端口范围。如果网络 ACL 出站规则中没有设置允许对应临时端口的流量,那么客户端的请求将无法返回。根据客户端的操作系统不同,临时端口范围也随之不同。
实际上,为涵盖不同客户端类型可能进入到您 VPC 中的公有实例的数据流,您需要开放临时端口 1024-65535。但是,您也可以在 ACL 中添加规则以拒绝任何在此范围内的来自恶意端口的数据流。您只需确保拒绝规则的优先级大于允许一系列临时端口数据流的规则。
安全组 | 网络ACL |
---|---|
云服务器实例级别的流量控制(第一层防御) | 子网级别的流量控制(第二层防御) |
只支持允许规则 | 支持允许与拒绝规则 |
对VPC内的云服务器, 出站流量默认允许,入站流量拒绝,直至添加规则为止 | 每个自定义网络 ACL 默认出入都放行,直至添加规则为止。 |
有状态:返回数据流会被自动允许,不受任何规则的影响 | 无状态:返回数据流必须被规则明确允许 |
在决定是否允许数据流前评估所有规则 | 在决定是否允许数据流时按照数字顺序处理所有规则 |
只有在启动 KEC 实例的同时指定安全组、或稍后将安全组与实例关联的情况下,操作才会被应用到实例 | 自动应用到关联子网内的所有 KEC 实例(备份防御层,因此您便不需要依靠别人为您指定安全组) |
登录 金山云控制台 依次点击【网络】–【虚拟私有网络】–【ACL】,进入 ACL 页面。
点击【新建】按钮,在新建 ACL 页面中输入名称、选择所属的私有网络,点击确定完成。
登录 金山云控制台 依次点击【网络】–【虚拟私有网络】–【ACL】,进入ACL页面。
在顶部选择地域及虚拟私有网络,即可查看属于此私有网络的网络 ACL 列表。
登录 金山云控制台 依次点击【网络】–【虚拟私有网络】–【ACL】,进入ACL页面。
在列表中选中要编辑的网络 ACL 的 名称,点击上方的【编辑入站规则】按钮或者点击下方【入站规则】选项卡,然后点击【编辑入站规则】按钮,进入入站规则页面。
4)输入新增入站协议的优先级、协议、行为、端口范围、源IP,点击【确定】按钮,提示“编辑ACL入站规则成功”,跳回 ACL 页面。
注:出站规则的编辑方式与入站规则类似,只是在编辑出站协议时,源IP改变为目的IP。
登录 金山云控制台 依次点击【网络】–【虚拟私有网络】–【ACL】,进入ACL页面。
在列表中选中要删除入站规则的网络 ACL 的 名称,点击下方【入站规则】选项卡,在下方显示的入站规则列表中,选中需要删除的入站规则,点击上方的【删除】按钮
注:删除出站规则与删除入站规则操作类似,只需在步骤2) 改为选择 【出站规则】 选项卡即可。
登录 金山云控制台 依次点击【网络】–【虚拟私有网络】–【ACL】,进入ACL页面。
选中需要绑定子网的 ACL 的 名称,在下方的页面选择【子网信息】选项,下方展示该 ACL 已绑定的子网信息,点击【绑定子网】按钮,进入绑定子网页面。
注:一个子网只能绑定一个 ACL ,一个 ACL 可以绑定多个子网。
登录 金山云控制台 依次点击【网络】–【虚拟私有网络】–【ACL】,进入ACL页面。
选中需要解绑子网的 ACL 的 名称,在下方的页面选择【子网信息】选项,下方展示该 ACL 已绑定的子网信息,选中需要解绑的子网,点击【解绑】按钮
登录 金山云控制台 依次点击【网络】–【虚拟私有网络】–【ACL】,进入ACL页面。
选中需要删除的 ACL 的 名称,点击上方的【删除】按钮
注:在删除网络 ACL 前,需要先解绑与 ACL 绑定的子网,否则系统会提示“请先解绑ACL关联的子网,再删除ACL”的信息。
文档内容是否对您有帮助?
评价建议不能为空
非常感谢您的反馈,我们会继续努力做到更好!