# 网络ACL配置示例
网络ACL可以控制流入/流出子网的流量，当网络ACL和安全组同时存在时，流量先匹配网络ACL规则，然后匹配安全组规则。您可以灵活调整安全组的规则，并使用网络ACL作为子网的额外防护。以下为您提供了典型的网络ACL应用示例。
- [拒绝外部访问子网内实例的指定端口]
- [拒绝外部指定IP地址访问子网内实例]
- [允许外网访问子网内实例的指定端口]
- [允许外网访问子网内的指定实例]
![](https://support.huaweicloud.com/usermanual-vpc/public_sys-resources/note_3.0-zh-cn.png)
**如果您的网络ACL规则配置完成后不生效，请您[提交工单](https://support.huaweicloud.com/usermanual-ticket/zh-cn_topic_0127038618.html)联系客服处理。**
#### 使用须知
在配置规则之前，请您先了解以下信息：
- 在网络ACL中，存在如[表1]所示的默认规则。**当网络ACL中没有其他允许流量出入的自定义规则时，则匹配默认规则，拒绝任何流量流入或流出子网。**
   表1网络ACL默认规则说明 
  | 方向    | 生效顺序 | 策略   | 协议  | 源地址        | 源端口范围 | 目的地址       | 目的端口范围 |
  |:---|:---|:---|:---|:---|:---|:---|:---|
  | 入方向   | \*    | 拒绝  | 全部  | 0.0.0.0/0 | 全部   | 0.0.0.0/0  | 全部       |
  | 出方向 | \*       | 拒绝 | 全部 | 0.0.0.0/0  | 全部   | 0.0.0.0/0 | 全部     |
     
  
- **您无需单独添加放通响应流量的规则，因为网络ACL是有状态的，允许响应流量流入/流出子网，不受规则限制。**
 
关于网络ACL规则的更多工作原理，请参见[网络ACL及规则的工作原理](https://support.huaweicloud.com/usermanual-vpc/acl_0001.html#acl_0001__section1952742625114)。
 #### 拒绝外部访问子网内实例的指定端口
在本示例中，防止勒索病毒Wanna Cry对实例的攻击，因此隔离具有漏洞的应用端口，例如TCP 445端口。您可以为子网关联网络ACL，并添加对应入方向规则，如[表2]所示，其中目的地址10.0.0.0/24为需要防护的子网网段。
1. 网络ACL默认规则拒绝任何流量流入子网，因此需要先添加自定义规则02，放通入方向流量。
2. 添加自定义规则01，拒绝所有外部请求访问子网内实例的TCP 445端口。此时拒绝规则必须早于允许规则生效，因此需要将拒绝的规则插入到允许规则的前面，具体操作请参见[添加网络ACL规则（自定义生效顺序）](https://support.huaweicloud.com/usermanual-vpc/zh-cn_topic_0051746702.html#zh-cn_topic_0051746702__section57145188185621)。
 表2拒绝外部访问子网内实例的指定端口 
| 方向    | 生效顺序 | 类型    | 策略 | 协议 | 源地址       | 源端口范围 | 目的地址        | 目的端口范围 | 规则说明   |
|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|
| 入方向 | 1    | IPv4  | 拒绝 | TCP | 0.0.0.0/0 | 全部    | 10.0.0.0/24  | 445        | 自定义规则01  |
| 入方向    | 2   | IPv4 | 允许   | 全部  | 0.0.0.0/0 | 全部      | 10.0.0.0/24 | 全部        | 自定义规则02 |
| 入方向    | \*  | -- | 拒绝  | 全部 | 0.0.0.0/0 | 全部     | 0.0.0.0/0     | 全部       | 默认规则    |
   
 #### 拒绝外部指定IP地址访问子网内实例
本示例中，需要拦截异常IP访问子网内实例，例如拒绝来自IP地址（10.1.1.12/32）的流量流入子网，您可以为子网关联网络ACL，并添加对应入方向规则，如[表3]所示，其中目的地址10.5.0.0/24为需要防护的子网网段。
1. 网络ACL默认规则拒绝任何流量流入子网，因此需要先添加自定义规则02，放通入方向流量。
2. 添加自定义规则01，拒绝来自外部IP地址（10.1.1.12/32）的流量流入子网。此时拒绝规则必须早于允许规则生效，因此需要将拒绝的规则插入到允许规则的前面，具体操作请参见[添加网络ACL规则（自定义生效顺序）](https://support.huaweicloud.com/usermanual-vpc/zh-cn_topic_0051746702.html#zh-cn_topic_0051746702__section57145188185621)。
 表3拒绝外部指定IP地址访问子网内实例 
| 方向 | 生效顺序 | 类型     | 策略   | 协议   | 源地址           | 源端口范围 | 目的地址         | 目的端口范围 | 规则说明     |
|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|
| 入方向  | 1      | IPv4 | 拒绝 | TCP | 10.1.1.12/32 | 全部  | 10.5.0.0/24   | 全部      | 自定义规则01 |
| 入方向  | 2      | IPv4 | 允许    | 全部 | 0.0.0.0/0    | 全部   | 10.5.0.0/24 | 全部    | 自定义规则02  |
| 入方向 | \*   | --   | 拒绝 | 全部 | 0.0.0.0/0     | 全部    | 0.0.0.0/0    | 全部      | 默认规则     |
   
 #### 允许外网访问子网内实例的指定端口
本示例中，在子网内的多台实例上搭建了可供外网访问的网站，实例作为Web服务器，需要放通入方向的HTTP(80)和HTTPS(443)端口。当子网关联了网络ACL时，需要同时在网络ACL和安全组添加对应的规则。
1. 在网络ACL中，添加如[表4]所示的规则。
   - 添加定义规则01，允许任意IP地址通过HTTP协议，访问子网内实例的80端口。
   
   - 添加定义规则02，允许任意IP地址通过HTTPS协议，访问子网内实例的443端口。
   
   
   **其中10.8.0.0/24为需要防护的子网网段，目的地址配置为子网网段可以防护子网内的所有实例。**
    表4网络ACL规则（允许外部访问子网内实例的指定端口） 
   | 方向    | 生效顺序 | 类型  | 策略    | 协议    | 源地址         | 源端口范围  | 目的地址        | 目的端口范围 | 规则说明       |
   |:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|
   | 入方向   | 1     | IPv4 | 允许    | TCP   | 0.0.0.0/0  | 全部    | 10.8.0.0/24  | 80     | 自定义规则01 |
   | 入方向 | 2    | IPv4 | 允许   | TCP | 0.0.0.0/0 | 全部  | 10.8.0.0/24 | 443   | 自定义规则02    |
   | 入方向 | \*    | --   | 拒绝 | 全部     | 0.0.0.0/0     | 全部   | 0.0.0.0/0    | 全部      | 默认规则    |
   | 出方向  | \*    | --     | 拒绝 | 全部    | 0.0.0.0/0    | 全部 | 0.0.0.0/0    | 全部     | 默认规则        |
      
   
2. 在安全组中，添加如[表5]所示的规则，**需要确保所有实例关联的安全组均完成配置。**
   - 入方向规则01：允许任意IP地址通过HTTP协议，访问实例的80端口。
   
   - 入方向规则02：允许任意IP地址通过HTTPS协议，访问实例的443端口。
   
   - 出方向规则03：允许任何流量从安全组内实例流出。 安全组的出方向规则设置比较宽松，本示例中出方向通过网络ACL默认规则防护，仅允许入站流量的响应流量出站，会拦截其他流量出站。
     
   
   
    表5安全组规则（允许外部访问子网内实例的指定端口） 
   | 方向   | 生效顺序 | 策略    | 类型    | 协议端口          | 源地址/目的地址          | 规则说明  |
   |:---|:---|:---|:---|:---|:---|:---|
   | 入方向 | 1     | 允许   | IPv4 | 自定义TCP: 80    | IP地址：0.0.0.0/0   | 规则01 |
   | 入方向 | 1     | 允许 | IPv4 | 自定义TCP: 443 | IP地址：0.0.0.0/0 | 规则02 |
   | 出方向  | 1      | 允许      | IPv4  | 全部              | IP地址：0.0.0.0/0   | 规则03    |
      
   
 
 #### 允许外网访问子网内的指定实例
本示例中，子网Subnet-A内的实例ECS-01绑定了EIP，并作为Web服务器对外网提供访问服务。此时需要放通ECS-01的HTTP(80)和HTTPS(443)端口，确保外网流量可访问ECS-01。其中，Subnet-A的子网网段为10.10.0.0/24，ECS-01的私有IP地址为10.10.0.25，绑定的EIP为12.12.11.xx。
由于仅允许公网流量访问ECS-01，则目的地址需要精准指向ECS-01。根据网络ACL规则的生效机制，此处建议您将规则目的地址配置为ECS-01的私有IP地址，如[表6]所示。若将规则目的地址配置为ECS-01绑定的EIP，则网络ACL无法生效，如[表7]所示。
 表6正确的网络ACL规则（目的地址为ECS私有IP地址） 
| 方向  | 生效顺序 | 类型  | 策略 | 协议  | 源地址       | 源端口范围 | 目的地址                | 目的端口范围 | 规则说明     |
|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|
| 入方向 | 1    | IPv4 | 允许   | TCP | 0.0.0.0/0 | 全部   | **10.10.0.25 /32** | 80       | 自定义规则01  |
| 入方向  | 2    | IPv4  | 允许  | TCP  | 0.0.0.0/0  | 全部     | **10.10.0.25 /32**   | 443     | 自定义规则02 |
| 入方向 | \*  | --  | 拒绝   | 全部    | 0.0.0.0/0   | 全部   | 0.0.0.0/0            | 全部       | 默认规则   |
| 出方向 | \* | --  | 拒绝 | 全部  | 0.0.0.0/0   | 全部   | 0.0.0.0/0         | 全部       | 默认规则      |
   
 表7错误的网络ACL规则（目的地址为EIP） 
| 方向 | 生效顺序 | 类型   | 策略 | 协议 | 源地址          | 源端口范围 | 目的地址             | 目的端口范围 | 规则说明       |
|:---|:---|:---|:---|:---|:---|:---|:---|:---|:---|
| 入方向 | 1    | IPv4 | 允许 | TCP  | 0.0.0.0/0 | 全部       | **12.12.11.xx /32** | 80     | 自定义规则01 |
| 入方向 | 2  | IPv4 | 允许 | TCP | 0.0.0.0/0  | 全部      | **12.12.11.xx /32** | 443      | 自定义规则02  |
   
