AWS Web 服务器上的临时端口 NACL 规则

Ephemeral ports on AWS Web server NACL Rule

我是 AWS 新手,一直在试验 NACL 规则。我通过 了解 NACL 规则的工作原理。

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

了解 NACL 是无状态的,我在所有 TCP 端口上添加了通信 to/from 0.0.0.0/0。这很好用。

现在,我想到了将入站和出站限制到端口 80。但是,使用这个,我无法访问测试 NGINX 页面。

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

这是新配置:

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

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

您的服务器将在 80(或 443)上接收请求,但通过其中一个临时发送响应。阻止临时端口的出站就是阻止该响应。

您的网络服务器无需在出站上打开 80(或 443)即可工作。如果您的 Web 服务器需要向另一台 Web 服务器发出 HTTP 请求,您的 Web 服务器只需要打开出站端口 80(或 443)——这很可能需要这样做;呼叫第三方 API.