网络ACL可以控制流入/流出子网的流量,当网络ACL和安全组同时存在时,流量先匹配网络ACL规则,然后匹配安全组规则。您可以灵活调整安全组的规则,并使用网络ACL作为子网的额外防护。以下为您提供了典型的网络ACL应用示例。
使用须知
在配置规则之前,请您先了解以下信息:
在网络ACL中,存在如下表所示的默认规则。当网络ACL中没有其他允许流量出入的自定义规则时,则匹配默认规则,拒绝任何流量流入或流出子网。
方向 | 生效顺序 | 策略 | 协议 | 源地址 | 源端口范围 | 目的地址 | 目的端口范围 |
---|---|---|---|---|---|---|---|
入方向 | * | 拒绝 | 全部 | 0.0.0.0/0 | 全部 | 0.0.0.0/0 | 全部 |
出方向 | * | 拒绝 | 全部 | 0.0.0.0/0 | 全部 | 0.0.0.0/0 | 全部 |
您无需单独添加放通响应流量的规则,因为网络ACL是有状态的,允许响应流量流入/流出子网,不受规则限制。
拒绝外部访问子网内实例的指定端口
在本示例中,防止勒索病毒Wanna Cry对实例的攻击,因此隔离具有漏洞的应用端口,例如TCP 445端口。您可以为子网关联网络ACL,并添加对应入方向规则,如下表所示,其中目的地址10.0.0.0/24为需要防护的子网网段。
方向 | 生效顺序 | 类型 | 策略 | 协议 | 源地址 | 源端口范围 | 目的地址 | 目的端口范围 | 规则说明 |
---|---|---|---|---|---|---|---|---|---|
入方向 | 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 | 全部 | 默认规则 |
- 网络ACL默认规则拒绝任何流量流入子网,因此需要先添加自定义规则02,放通入方向流量。
- 添加自定义规则01,拒绝所有外部请求访问子网内实例的TCP 445端口。此时拒绝规则必须早于允许规则生效,因此需要将拒绝的规则插入到允许规则的前面。
拒绝外部指定IP地址访问子网内实例
本示例中,需要拦截异常IP访问子网内实例,例如拒绝来自IP地址(10.1.1.12/32)的流量流入子网,您可以为子网关联网络ACL,并添加对应入方向规则,如下表所示,其中目的地址10.5.0.0/24为需要防护的子网网段。
方向 | 生效顺序 | 类型 | 策略 | 协议 | 源地址 | 源端口范围 | 目的地址 | 目的端口范围 | 规则说明 |
---|---|---|---|---|---|---|---|---|---|
入方向 | 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 | 全部 | 默认规则 |
网络ACL默认规则拒绝任何流量流入子网,因此需要先添加自定义规则02,放通入方向流量。
添加自定义规则01,拒绝来自外部IP地址(10.1.1.12/32)的流量流入子网。此时拒绝规则必须早于允许规则生效,因此需要将拒绝的规则插入到允许规则的前面。
允许外部访问子网内实例的指定端口
本示例中,在子网内的实例上搭建了可供外部访问的网站,实例作为Web服务器,需要放通入方向的HTTP(80)和HTTPS(443)端口。当子网关联了网络ACL时,需要同时在网络ACL和安全组添加对应的规则。
在网络ACL中,添加如下表所示的规则:
- 添加定义规则01,允许任意IP地址通过HTTP协议,访问子网内实例的80端口。
- 添加定义规则02,允许任意IP地址通过HTTPS协议,访问子网内实例的443端口。
其中目的地址10.8.0.0/24为需要防护的子网网段。
方向 | 生效顺序 | 类型 | 策略 | 协议 | 源地址 | 源端口范围 | 目的地址 | 目的端口范围 | 规则说明 |
---|---|---|---|---|---|---|---|---|---|
入方向 | 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 | 全部 | 默认规则 |
在安全组中,添加如下表所示的规则:
- 入方向规则01:允许任意IP地址通过HTTP协议,访问实例的80端口。
- 入方向规则02:允许任意IP地址通过HTTPS协议,访问实例的443端口。
- 出方向规则03:允许任何流量从安全组内实例流出。
安全组的出方向规则设置比较宽松,本示例中出方向通过网络ACL默认规则防护,仅允许入站流量的响应流量出站,会拦截其他流量出站。
方向 | 优先级 | 策略 | 类型 | 协议端口 | 源地址/目的地址 | 规则说明 |
---|---|---|---|---|---|---|
入方向 | 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 |