【问题标题】:AWS network ACL: why do I need to allow outbound port 80 to be able to browse Internet?AWS 网络 ACL:为什么我需要允许出站端口 80 才能浏览 Internet?
【发布时间】:2017-11-23 20:36:58
【问题描述】:

我对 AWS 和网络非常陌生。我一直在玩网络ACL。我意识到,如果我不允许网络 ACL 上的出站端口 443 (HTTPS),我将无法使用浏览器在与此 ACL 关联的子网。

同样,如果我不允许出站端口 80,我将无法访问http://www.cnn.com

这让我很困惑。当我允许 ACL 上的端口 80 出站时,我是允许 EC2 从我的 EC2 上的临时端口与 CNN 服务器上的 端口 80 交谈,还是允许 EC2 发起连接来自 EC2 上的端口 80

【问题讨论】:

  • 您根本不应该有出站端口规则。它们在安全性方面没有增加任何东西。离题。
  • 但这就是我要说的:如果我不允许出站端口 80,我将无法从该 EC2 内浏览 Internet。但是,很明显,下一个问题是:我需要从我的网络服务器中浏览互联网吗?我认为我需要下载补丁等。对吗?
  • 但这就是所说的。您不应该有出站规则。这意味着你不应该禁止它。您根本不应该有关于出站端口的规则。全部允许。
  • 对于这个论坛周围的所有好人:我的问题不是一页长的问题,它很短。如果您不想阅读我的问题,请不要仅仅剪切和粘贴一大段 AWS 文档。我不需要那个。你在浪费你和我的时间。非常感谢!

标签: amazon-web-services amazon-ec2 acl


【解决方案1】:

您不必添加任何规则。默认网络 ACL 配置为允许所有流量流入和流出与其关联的子网。每个网络 ACL 还包括一个规则编号为星号的规则。此规则确保如果一个数据包不匹配任何其他编号规则,它就会被拒绝。您不能修改或删除此规则。

规则允许所有 IPv6 流量流入和流出您的子网。我们还添加了规则编号为星号(Catch All)的规则,以确保如果数据包与任何其他已定义的编号规则不匹配,则该数据包将被拒绝。

网络 ACL 具有单独的入站和出站规则(无状态),每个规则都可以允许或拒绝流量。

出站规则允许从 子网 到 Internet 的出站流量。换句话说,它是将流量流与 ACL 列表中的定义的规则匹配并应用它(允许/拒绝)。

如果您的私有实例不应被 Internet 上的公共用户访问,从安全角度来看,最佳做法是将这些实例放置在 私有子网 中并在 私有子网 中使用 NAT 实例strong>公有子网,让所有流量都经过这个 NAT 实例进行补丁更新并获得公有访问权限。

欲了解更多信息,请查看Amazon Docs

【讨论】:

  • 谢谢,但您没有解决我的问题。您基本上只是在此处复制并粘贴标准文档。
  • 我复制了与您的问题相关的部分。请再读一遍,让我知道缺少什么以澄清更多
  • 您是否检查过此“如果您有私有实例不应被 Internet 中的公共用户访问,从安全角度来看,将这些实例放在私有子网中并使用 NAT 实例是最佳实践在公有子网中,并使所有流量都通过此 NAT 实例以进行补丁更新并获得公共访问权限。”
  • EC2 在公共子网上。它旨在用作 Web 服务器。
【解决方案2】:

使用实例级别的安全组来获得实例级别的安全性。与安全组不同,ACL 是无状态的并且在子网级别工作,即如果您希望您的实例通过端口 80(http) 进行通信,那么您必须添加一个入站和允许端口 80 的出站规则。

【讨论】:

  • 感谢您的回复。但同样,您只是在重复 AWS 文档,甚至没有费心阅读我的具体问题。我不需要有人向我阅读 AWS 文档。我可以自己读。我希望有人会费心阅读我的具体问题并回答。
  • 好的,当您在端口 80 上允许出站规则时,我明白了,您允许在端口 80 上连接到其他 Web 服务器并侦听临时端口。
  • 非常感谢!所以我允许连接到他们的端口 80,而我的端口可以是任何临时端口,对吧?
  • 另外,当我的 Chrome 浏览器与 CNN 的端口 80 通信时,它在我的机器上使用什么临时端口?任何端口,还是80端口?
  • 完成了。全清。再次感谢您花时间提供帮助!新问题:限制其他服务器我的机器可以与之通信的端口有什么安全优势?
猜你喜欢
  • 1970-01-01
  • 2010-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多