设置NACL规则

问题描述

我是AWS的新手,并且一直在尝试NACL规则。我经历了Amazon VPC NACL default rules evaluation order,以了解NACL规则的工作原理。

我已经在带有某些弹性IP的公共子网中创建了一个测试EC2实例(使用Nginx)。我已将EC2添加认安全组,该组允许所有端口上的所有流量。我最初将NACL配置为阻止所有流量。之所以能正常工作,是因为我无法通过SSH或HTTPS实例访问我的实例。我的目标是让0.0.0.0/0 HTTP端口80进入我的实例。

了解到NACL是无状态的,因此我在所有TCP端口上添加了与 0.0.0.0/0之间的通信效果很好。

现在,我想将入站和出站限制为端口80。但是,使用此功能,我无法访问测试的Nginx页面

This doesn't work

我注意到,如果我更改出站规则以允许所有端口,则可以访问Nginx页面。我不确定为什么会这样。

这是新的配置:

enter image description here

我是否还需要添加临时端口? https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html#nacl-ephemeral-ports

解决方法

是的。您需要打开临时端口1024-65535(假设正在使用Linux服务器)

您的服务器将在80时收到请求,但会通过短暂的请求之一发送响应。暂时端口的出站阻塞正在阻塞响应。因此,您也无需在出站上打开80即可使Web服务器正常工作。

如果您的Web服务器发出HTTP请求,则仅需要端口80出站。