AWS - VPC & Networking Basic Information

支持 HackTricks

AWS 网络概述

一个 VPC 包含一个 网络 CIDR,例如 10.0.0.0/16(带有其 路由表网络 ACL)。

这个 VPC 网络被划分为 子网,所以一个 子网 直接 关联VPC路由表网络 ACL

然后,附加到服务(如 EC2 实例)的 网络接口 连接 到带有 安全组子网

因此,一个 安全组 将限制使用它的网络 接口 的暴露端口,独立于子网。而 网络 ACL限制 整个网络的暴露端口。

此外,为了 访问互联网,有一些有趣的配置需要检查:

  • 一个 子网 可以 自动分配公共 IPv4 地址

  • 在自动分配 IPv4 地址的网络中创建的 实例 可以获得一个

  • 一个 互联网网关 需要 附加VPC

  • 你也可以使用 仅出站互联网网关

  • 你也可以在 私有子网 中有一个 NAT 网关,这样可以从该私有子网 连接到外部服务,但无法从外部访问它们。

  • NAT 网关可以是 公共(访问互联网)或 私有(访问其他 VPC)

VPC

Amazon 虚拟私有云(Amazon VPC)使你能够将 AWS 资源启动到你定义的虚拟网络中。这个虚拟网络将有多个子网、互联网网关以访问互联网、ACL、安全组、IP...

子网

子网有助于实施更高水平的安全性。相似资源的逻辑分组 也有助于你在整个基础设施中保持 易于管理

  • 有效的 CIDR 从 /16 子网掩码到 /28 子网掩码。

  • 一个子网不能同时位于不同的可用区。

  • AWS 保留每个子网的前三个主机 IP 地址内部 AWS 使用:第一个主机地址用于 VPC 路由器。第二个地址保留给 AWS DNS,第三个地址保留供将来使用。

  • 具有 直接访问互联网 的子网称为 公共子网,而私有子网则没有。

路由表

路由表决定了 VPC 内子网的流量路由。它们决定了哪些网络流量被转发到互联网或 VPN 连接。你通常会找到对以下内容的访问:

  • 本地 VPC

  • NAT

  • 互联网网关 / 仅出站互联网网关(需要为 VPC 提供访问互联网的权限)。

  • 为了使子网公开,你需要 创建附加 一个 互联网网关 到你的 VPC。

  • VPC 端点(从私有网络访问 S3)

在以下图片中,你可以查看默认公共网络和私有网络的区别:

ACLs

网络访问控制列表 (ACLs):网络 ACL 是控制子网进出网络流量的防火墙规则。它们可以用于允许或拒绝特定 IP 地址或范围的流量。

  • 最常见的是使用安全组来允许/拒绝访问,但这是唯一完全切断已建立的反向 shell 的方法。修改安全组中的规则不会停止已建立的连接

  • 然而,这适用于整个子网,在禁止某些内容时要小心,因为可能会干扰所需的功能

安全组

安全组是一个虚拟 防火墙,控制 VPC 中 实例 的入站和出站网络 流量。关系 1 SG 到 M 实例(通常是 1 对 1)。 通常用于在实例中打开危险端口,例如端口 22:

弹性 IP 地址

一个 弹性 IP 地址 是一个 静态 IPv4 地址,设计用于动态云计算。一个弹性 IP 地址分配给你的 AWS 账户,并且是你的,直到你释放它。通过使用弹性 IP 地址,你可以通过快速重新映射地址到你账户中的另一个实例来掩盖实例或软件的故障。

子网之间的连接

默认情况下,所有子网都 自动分配公共 IP 地址关闭,但可以打开。

路由表中的本地路由使 VPC 子网之间的通信成为可能。

如果你 连接一个子网到另一个子网,你不能访问连接到另一个子网的子网,你需要直接与它们创建连接。这也适用于互联网网关。你不能通过子网连接访问互联网,你需要将互联网网关分配给你的子网。

VPC 对等连接

VPC 对等连接允许你 连接两个或多个 VPC,使用 IPV4 或 IPV6,就像它们是同一个网络的一部分。

一旦建立了对等连接,一个 VPC 中的资源可以访问另一个 VPC 中的资源。VPC 之间的连接通过现有的 AWS 网络基础设施实现,因此它具有高可用性且没有带宽瓶颈。由于 对等连接像是同一个网络的一部分,在使用 CIDR 块范围时有一些限制。 如果你有 重叠或重复的 CIDR 范围,那么 你将无法对等连接 VPC。 每个 AWS VPC 将 只与其对等连接通信。例如,如果你有一个 VPC 1 和 VPC 2 之间的对等连接,以及另一个 VPC 2 和 VPC 3 之间的连接,如图所示,那么 VPC 1 和 2 可以直接通信,VPC 2 和 VPC 3 也可以,但 VPC 1 和 VPC 3 不能。你不能通过一个 VPC 路由到另一个 VPC。

VPC 流日志

在你的 VPC 中,你可能有数百甚至数千个资源在不同的公共和私有子网之间以及通过 VPC 对等连接在不同的 VPC 之间通信。VPC 流日志允许你捕获在 VPC 中资源的网络接口之间流动的 IP 流量信息

与 S3 访问日志和 CloudFront 访问日志不同,VPC 流日志生成的日志数据不会存储在 S3 中。相反,捕获的日志数据会发送到 CloudWatch 日志

限制:

  • 如果你运行一个 VPC 对等连接,那么你只能看到同一账户内的对等 VPC 的流日志。

  • 如果你仍在 EC2-Classic 环境中运行资源,那么你无法从它们的接口检索信息

  • 一旦创建了 VPC 流日志,就无法更改。要更改 VPC 流日志配置,你需要删除它然后重新创建一个新的。

  • 以下流量不会被日志监控和捕获。VPC 内的 DHCP 流量,实例发往 Amazon DNS 服务器的流量。

  • 任何发往 VPC 默认路由器 IP 地址的流量,以及发往和来自以下地址的流量,169.254.169.254 用于获取实例元数据,169.254.169.123 用于 Amazon 时间同步服务。

  • 与 Windows 实例的 Amazon Windows 激活许可证相关的流量

  • 网络负载均衡器接口和端点网络接口之间的流量

对于每个将数据发布到 CloudWatch 日志组的网络接口,它将使用不同的日志流。在每个这些流中,将有显示日志条目内容的流日志事件数据。每个这些 日志在大约 10 到 15 分钟的窗口内捕获数据

VPN

基本 AWS VPN 组件

  1. 客户网关

  • 客户网关是你在 AWS 中创建的资源,用于表示你 VPN 连接的一侧。

  • 它本质上是你站点到站点 VPN 连接一侧的物理设备或软件应用程序。

  • 你向 AWS 提供路由信息和网络设备(如路由器或防火墙)的公共 IP 地址以创建客户网关。

  • 它作为设置 VPN 连接的参考点,不会产生额外费用。

  1. 虚拟私有网关

  • 虚拟私有网关 (VPG) 是站点到站点 VPN 连接中 Amazon 一侧的 VPN 集中器。

  • 它附加到你的 VPC,并作为你的 VPN 连接的目标。

  • VPG 是 AWS 侧的 VPN 连接端点。

  • 它处理你的 VPC 和本地网络之间的安全通信。

  1. 站点到站点 VPN 连接

  • 站点到站点 VPN 连接通过安全的 IPsec VPN 隧道连接你的本地网络到 VPC。

  • 这种类型的连接需要客户网关和虚拟私有网关。

  • 它用于你的数据中心或网络与 AWS 环境之间的安全、稳定和一致的通信。

  • 通常用于常规、长期连接,并根据通过连接传输的数据量收费。

  1. 客户端 VPN 端点

  • 客户端 VPN 端点是你在 AWS 中创建的资源,用于启用和管理客户端 VPN 会话。

  • 它用于允许单个设备(如笔记本电脑、智能手机等)安全连接到 AWS 资源或你的本地网络。

  • 它与站点到站点 VPN 不同,设计用于单个客户端而不是连接整个网络。

  • 使用客户端 VPN,每个客户端设备使用 VPN 客户端软件建立安全连接。

站点到站点 VPN

将你的本地网络连接到你的 VPC。

  • VPN 连接:你的本地设备和你的 VPC 之间的安全连接。

  • VPN 隧道:一个加密的链接,数据可以从客户网络传输到或从 AWS。

每个 VPN 连接包括两个 VPN 隧道,你可以同时使用它们以实现高可用性。

  • 客户网关:一个 AWS 资源,向 AWS 提供关于你的客户网关设备的信息。

  • 客户网关设备:站点到站点 VPN 连接一侧的物理设备或软件应用程序。

  • 虚拟私有网关:站点到站点 VPN 连接中 Amazon 一侧的 VPN 集中器。你使用虚拟私有网关或传输网关作为站点到站点 VPN 连接的 Amazon 侧网关。

  • 传输网关:一个传输枢纽,可用于互连你的 VPC 和本地网络。你使用传输网关或虚拟私有网关作为站点到站点 VPN 连接的 Amazon 侧网关。

限制

  • 虚拟私有网关上的 VPN 连接不支持 IPv6 流量。

  • AWS VPN 连接不支持路径 MTU 发现。

此外,在使用站点到站点 VPN 时,请考虑以下事项。

  • 在将你的 VPC 连接到一个共同的本地网络时,我们建议你使用不重叠的 CIDR 块。

客户端 VPN

从你的机器连接到你的 VPC

概念

  • 客户端 VPN 端点:你创建和配置的资源,用于启用和管理客户端 VPN 会话。它是所有客户端 VPN 会话终止的资源。

  • 目标网络:目标网络是你与客户端 VPN 端点关联的网络。VPC 的一个子网是目标网络。将子网与客户端 VPN 端点关联使你能够建立 VPN 会话。你可以为高可用性将多个子网与客户端 VPN 端点关联。所有子网必须来自同一个 VPC。每个子网必须属于不同的可用区。

  • 路由:每个客户端 VPN 端点都有一个路由表,描述了可用的目标网络路由。路由表中的每个路由指定了流量到特定资源或网络的路径。

  • 授权规则:授权规则 限制可以访问网络的用户。对于指定的网络,你配置允许访问的 Active Directory 或身份提供商 (IdP) 组。只有属于该组的用户可以访问指定的网络。默认情况下,没有授权规则,你必须配置授权规则以使用户能够访问资源和网络。

  • 客户端:连接到客户端 VPN 端点以建立 VPN 会话的最终用户。最终用户需要下载 OpenVPN 客户端并使用你创建的客户端 VPN 配置文件来建立 VPN 会话。

  • 客户端 CIDR 范围:用于分配客户端 IP 地址的 IP 地址范围。每个连接到客户端 VPN 端点的连接都会从客户端 CIDR 范围分配一个唯一的 IP 地址。你选择客户端 CIDR 范围,例如 10.2.0.0/16

  • 客户端 VPN 端口:AWS 客户端 VPN 支持端口 443 和 1194 的 TCP 和 UDP。默认是端口 443。

  • 客户端 VPN 网络接口:当你将子网与客户端 VPN 端点关联时,我们会在该子网中创建客户端 VPN 网络接口。从客户端 VPN 端点发送到 VPC 的流量通过客户端 VPN 网络接口发送。然后应用源网络地址转换 (SNAT),将客户端 CIDR 范围的源 IP 地址转换为客户端 VPN 网络接口 IP 地址。

  • 连接日志:你可以为客户端 VPN 端点启用连接日志记录,以记录连接事件。你可以使用这些信息进行取证分析、分析客户端 VPN 端点

Last updated