AWS - VPC & Networking Basic Information
Last updated
Last updated
学习和实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习和实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)
一个 VPC 包含一个 网络 CIDR,例如 10.0.0.0/16(带有其 路由表 和 网络 ACL)。
这个 VPC 网络被划分为 子网络,因此 子网络 与 VPC、路由表 和 网络 ACL 直接 相关。
然后,附加到服务(如 EC2 实例)的 网络接口 与 子网络 通过 安全组 连接。
因此,安全组 将限制使用它的网络 接口 的暴露端口,独立于子网络。而 网络 ACL 将 限制 暴露端口到 整个网络。
此外,为了 访问互联网,有一些有趣的配置需要检查:
子网络 可以 自动分配公共 IPv4 地址
在网络中创建的 实例 如果 自动分配 IPv4 地址,可以获得一个
需要将 Internet gateway 附加 到 VPC
你还可以使用 仅出站互联网网关
你还可以在 私有子网 中拥有一个 NAT 网关,这样可以从该私有子网 连接到外部服务,但 无法从外部访问它们。
NAT 网关可以是 公共的(访问互联网)或 私有的(访问其他 VPC)
亚马逊 虚拟私有云(Amazon VPC)使您能够 在您定义的虚拟网络中启动 AWS 资源。这个虚拟网络将有多个子网、访问互联网的 Internet Gateways、ACL、安全组、IP...
子网有助于加强更高水平的安全性。相似资源的逻辑分组 也有助于您在基础设施中保持 管理的便利性。
有效的 CIDR 范围从 /16 网络掩码到 /28 网络掩码。
一个子网不能同时位于不同的可用区。
AWS 为每个子网保留前三个主机 IP 地址 用于 内部 AWS 使用:第一个主机地址用于 VPC 路由器。第二个地址保留给 AWS DNS,第三个地址保留供将来使用。
具有 直接访问互联网 的子网称为 公共子网,而私有子网则没有。
路由表确定 VPC 中子网的流量路由。它们确定哪些网络流量被转发到互联网或 VPN 连接。您通常会找到对以下内容的访问:
本地 VPC
NAT
Internet Gateways / 仅出站互联网网关(需要为 VPC 提供互联网访问)。
为了使子网公开,您需要 创建 并 附加 一个 Internet gateway 到您的 VPC。
VPC 端点(从私有网络访问 S3)
在以下图像中,您可以检查默认公共网络和私有网络之间的差异:
网络访问控制列表(ACLs):网络 ACL 是控制子网进出网络流量的防火墙规则。它们可以用于允许或拒绝特定 IP 地址或范围的流量。
通常使用安全组来允许/拒绝访问,但这是完全切断已建立反向 shell 的唯一方法。安全组中的修改规则不会停止已经建立的连接。
然而,这适用于整个子网络,禁止某些内容时要小心,因为可能会干扰所需的功能。
安全组是一个虚拟 防火墙,控制 VPC 中实例的入站和出站网络 流量。关系 1 SG 对 M 实例(通常是 1 对 1)。 通常用于在实例中打开危险端口,例如端口 22:
一个 弹性 IP 地址 是一个 静态 IPv4 地址,旨在用于动态云计算。弹性 IP 地址分配给您的 AWS 账户,并且在您释放之前属于您。通过使用弹性 IP 地址,您可以通过快速重新映射地址到您账户中的另一个实例来掩盖实例或软件的故障。
默认情况下,所有子网的 自动分配公共 IP 地址已关闭,但可以打开。
路由表中的本地路由使 VPC 子网之间的通信成为可能。
如果您 连接一个子网与另一个子网,您无法访问与其他子网连接的子网,您需要直接与它们创建连接。这也适用于互联网网关。您不能通过子网连接访问互联网,您需要将互联网网关分配给您的子网。
VPC 对等连接允许您 将两个或多个 VPC 连接在一起,使用 IPV4 或 IPV6,就像它们是同一网络的一部分。
一旦建立对等连接,一个 VPC 中的资源可以访问另一个 VPC 中的资源。VPC 之间的连接通过现有的 AWS 网络基础设施实现,因此它具有高可用性且没有带宽瓶颈。由于 对等连接的操作就像它们是同一网络的一部分,因此在使用 CIDR 块范围时有一些限制。 如果您有 重叠或重复的 CIDR 范围,则 无法将 VPC 对等连接在一起。 每个 AWS VPC 仅与其对等连接进行通信。例如,如果您在 VPC 1 和 VPC 2 之间有一个对等连接,并且在 VPC 2 和 VPC 3 之间有另一个连接,如所示,则 VPC 1 和 VPC 2 可以直接相互通信,VPC 2 和 VPC 3 也可以,但 VPC 1 和 VPC 3 不能。您不能通过一个 VPC 路由到另一个 VPC。
在您的 VPC 中,您可能会有数百或数千个资源在不同的公共和私有子网之间以及通过 VPC 对等连接在不同的 VPC 之间进行通信。VPC 流日志允许您捕获在 VPC 内资源的网络接口之间流动的 IP 流量信息。
与 S3 访问日志和 CloudFront 访问日志不同,VPC 流日志生成的日志数据不会存储在 S3 中。相反,捕获的日志数据会发送到 CloudWatch 日志。
限制:
如果您正在运行 VPC 对等连接,则只能查看同一账户内对等 VPC 的流日志。
如果您仍在 EC2-Classic 环境中运行资源,则无法从其接口检索信息。
一旦创建了 VPC 流日志,就无法更改。要更改 VPC 流日志配置,您需要删除它,然后重新创建一个新的。
以下流量不受监控和捕获。VPC 内的 DHCP 流量,目标为亚马逊 DNS 服务器的实例流量。
任何目标为 VPC 默认路由器的 IP 地址的流量,以及与以下地址的流量,169.254.169.254(用于收集实例元数据)和 169.254.169.123(用于亚马逊时间同步服务)。
与 Windows 实例的亚马逊 Windows 激活许可证相关的流量。
网络负载均衡器接口与端点网络接口之间的流量。
对于每个向 CloudWatch 日志组发布数据的网络接口,它将使用不同的日志流。在每个这些流中,将有流日志事件数据,显示日志条目的内容。每个这些 日志在大约 10 到 15 分钟的窗口期间捕获数据。
客户网关:
客户网关是您在 AWS 中创建的资源,用于表示您一侧的 VPN 连接。
它本质上是您一侧的站点到站点 VPN 连接上的物理设备或软件应用程序。
您提供路由信息和网络设备的公共 IP 地址(例如路由器或防火墙)给 AWS,以创建客户网关。
它作为设置 VPN 连接的参考点,不会产生额外费用。
虚拟私有网关:
虚拟私有网关(VPG)是站点到站点 VPN 连接的亚马逊一侧的 VPN 集中器。
它附加到您的 VPC,并作为您的 VPN 连接的目标。
VPG 是 VPN 连接的 AWS 侧端点。
它处理 VPC 与您的本地网络之间的安全通信。
站点到站点 VPN 连接:
站点到站点 VPN 连接通过安全的 IPsec VPN 隧道将您的本地网络连接到 VPC。
这种类型的连接需要客户网关和虚拟私有网关。
它用于在您的数据中心或网络与 AWS 环境之间进行安全、稳定和一致的通信。
通常用于常规、长期连接,并根据通过连接传输的数据量计费。
客户端 VPN 端点:
客户端 VPN 端点是您在 AWS 中创建的资源,用于启用和管理客户端 VPN 会话。
它用于允许单个设备(如笔记本电脑、智能手机等)安全连接到 AWS 资源或您的本地网络。
它与站点到站点 VPN 的不同之处在于,它是为单个客户端设计的,而不是连接整个网络。
使用客户端 VPN,每个客户端设备使用 VPN 客户端软件建立安全连接。
将您的本地网络与您的 VPC 连接。
VPN 连接:您本地设备与您的 VPC 之间的安全连接。
VPN 隧道:一个加密链接,数据可以从客户网络传输到 AWS 或从 AWS 传输。
每个 VPN 连接包括两个 VPN 隧道,您可以同时使用它们以实现高可用性。
客户网关:一个 AWS 资源,向 AWS 提供有关您的客户网关设备的信息。
客户网关设备:您一侧的站点到站点 VPN 连接上的物理设备或软件应用程序。
虚拟私有网关:站点到站点 VPN 连接的亚马逊一侧的 VPN 集中器。您使用虚拟私有网关或传输网关作为站点到站点 VPN 连接的亚马逊一侧的网关。
传输网关:一个传输中心,可用于互连您的 VPC 和本地网络。您使用传输网关或虚拟私有网关作为站点到站点 VPN 连接的亚马逊一侧的网关。
虚拟私有网关上的 VPN 连接不支持 IPv6 流量。
AWS VPN 连接不支持路径 MTU 发现。
此外,在使用站点到站点 VPN 时,请考虑以下事项。
当将您的 VPC 连接到公共本地网络时,我们建议您为您的网络使用不重叠的 CIDR 块。
从您的机器连接到您的 VPC
客户端 VPN 端点:您创建和配置的资源,以启用和管理客户端 VPN 会话。它是所有客户端 VPN 会话终止的资源。
目标网络:目标网络是您与客户端 VPN 端点关联的网络。VPC 的子网是目标网络。将子网与客户端 VPN 端点关联使您能够建立 VPN 会话。您可以将多个子网与客户端 VPN 端点关联以实现高可用性。所有子网必须来自同一 VPC。每个子网必须属于不同的可用区。
路由:每个客户端 VPN 端点都有一个路由表,描述可用的目标网络路由。路由表中的每条路由指定特定资源或网络的流量路径。
授权规则:授权规则 限制可以访问网络的用户。对于指定的网络,您配置允许访问的活动目录或身份提供者(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 端点的使用情况或调试连接问题。
自助服务门户:您可以为客户端 VPN 端点启用自助服务门户。客户端可以使用其凭据登录基于 Web 的门户,并下载最新版本的客户端 VPN 端点配置文件,或最新版本的 AWS 提供的客户端。
客户端 CIDR 范围不能与关联子网所在 VPC 的本地 CIDR 重叠,也不能与手动添加到客户端 VPN 端点路由表的任何路由重叠。
客户端 CIDR 范围的块大小必须至少为 /22,且 不得大于 /12。
客户端 CIDR 范围中的 一部分地址 用于 支持客户端 VPN 端点的可用性 模型,不能分配给客户端。因此,我们建议您 分配一个包含所需的最大并发连接数的两倍 IP 地址的 CIDR 块,以支持您计划在客户端 VPN 端点上支持的最大并发连接数。
创建客户端 VPN 端点后,客户端 CIDR 范围不能更改。
与客户端 VPN 端点关联的 子网 必须在同一 VPC 中。
您 不能将来自同一可用区的多个子网与客户端 VPN 端点关联。
客户端 VPN 端点 不支持专用租用 VPC 中的子网关联。
客户端 VPN 仅支持 IPv4 流量。
客户端 VPN 不 符合联邦信息处理标准(FIPS)的 合规性。
如果您的活动目录禁用了多因素身份验证(MFA),则用户密码不能采用以下格式。
自助服务门户 不适用于使用互认证进行身份验证的客户端。
学习和实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习和实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)