我只是一个涉足在 AWS 中建立网络的低级(软件)开发人员,并且无法理解无状态防火墙或网络 ACL 的基础知识,因为它们也被称为。简而言之,允许 TCP 响应的规则似乎非常宽松,导致安全漏洞大到足以使端口过滤通常无效?
假设我的网络中有两个子网 A 和 B。遵循最小特权原则,我希望将子网之间的流量限制在绝对必要的范围内,这是通过子网之间的无状态防火墙(也称为 AWS VPC 中的 NACL)实现的(作为顶部的额外安全层有状态的安全组)。我知道 A 中的主机必须能够通过 TCP 端口 9000 连接到 B 中的主机。
这意味着需要允许端口 9000 上从 A 到 B 的 TCP 流量。为了让 B 中的主机做出响应,我们还需要在所有 >=1024 的端口上允许从 B 到 A 的流量(因为我知道网络中的设备使用 1024 及以上的临时端口)。
这两个规则现在允许 B 中的任何主机在任何 >=1024 的端口上连接到 A,只要为 TCP 请求选择的临时响应端口是 9000(允许 A 响应)。给定足够的连接尝试(即垃圾邮件连接,直到操作系统随机选择临时端口 9000)或控制较低级别的 TCP 功能,B 中的主机最终将能够在任何 >=1024 的端口上向 A 发出任何 TCP 请求。
我错过了什么吗?允许单个端口上的连接在一个方向上的返回流量导致几乎任何端口上的相反方向的连接都可能产生这种有点灾难性的后果,这似乎几乎使 ACL 中的端口过滤器的整个点无效。
我希望有更多专业知识的人在这里提供一些见解!谢谢。