为什么删除入站安全组规则后,EC2 实例仍继续响应 ping 请求?

为什么删除入站安全组规则后,EC2 实例仍继续响应 ping 请求?

在使用 AWS 控制台时,我尝试了以下操作

  1. 在具有默认安全组和默认子网的默认 VPC 中启动 EC2 实例(启用公共 IP)。
  2. EC2 在具有公共 IP 的默认子网中启动。
  3. 使用公共 IP 从命令提示符 ping EC2 实例。
  4. 请求超时。
  5. 注意到默认安全组入站规则仅允许来自安全组内源的流量。
  6. 修改了安全组入站规则并允许来自任何地方的流量(0.0.0.0/0)
  7. 再次使用公共 IP 对 EC2 实例进行 ping 操作。
  8. 收到服务器响应。到目前为止一切正常。
  9. 来自 EC2 主机的 ping 回复继续显示在控制台中。
  10. 我删除了入站安全组规则。现在安全组没有入站规则。
  11. 在终端上,来自EC2实例的回复继续显示。

我的问题是 - 即使安全组的入站规则已被删除,为什么我仍会看到来自主机(EC2 实例)的回复?

对入站安全组规则的更改不会立即生效吗?为什么主机(EC2 实例)在没有入站安全组规则的情况下继续响应?

答案1

此更改立即生效,但安全组规则控制建立新的流量流(对于使用端口号的协议,通过源地址和目标地址、协议以及端口号来标识)。

根据具体规则,网络可能会主动跟踪流量,也可能不会,但 ICMP 流量始终会受到跟踪。一旦建立了跟踪的流量,该流量就不再需要匹配规则,因为网络已为该流量创建了状态表条目,该条目将一直存在,直到网络将其删除(无论是由于不活动超时还是由于 TCP 等面向连接的协议的关闭/重置)。

删除允许创建流的规则不会中断跟踪的流。

停止 ping 并重新启动。如果它继续工作,请停止它并等待几秒钟再重新启动它。您应该发现,在删除规则后不久,再次尝试 ping 目标实例会导致超时。

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html#security-group-connection-tracking

相关内容