

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 开始使用 AWS Client VPN
<a name="cvpn-getting-started"></a>

在本教程中，您将创建一个执行以下操作的 AWS Client VPN 端点：
+ 为所有客户端提供对单个 VPC 的访问权限。
+ 为所有客户端提供对 Internet 的访问权限。
+ 使用[双向身份验证](mutual.md)。

下图表示完成本教程后 VPC 和 Client VPN 端点的配置。

![访问 Internet 的 Client VPN](http://docs.aws.amazon.com/zh_cn/vpn/latest/clientvpn-admin/images/client-vpn-scenario-igw.png)


**Topics**
+ [先决条件](#cvpn-getting-started-prereq)
+ [步骤 1：选择您的终端节点类型](#cvpn-getting-started-choose-type)
+ [步骤 2：生成服务器和客户端证书和密钥](#cvpn-getting-started-certs)
+ [步骤 3：创建 Client VPN 终端节点](#cvpn-getting-started-endpoint)
+ [步骤 4：关联目标网络](#cvpn-getting-started-target)
+ [步骤 5：为 VPC 添加授权规则](#cvpn-getting-started-rules)
+ [第 6 步：提供互联网访问权限](#cvpn-getting-started-routes)
+ [步骤 7：验证安全组要求](#cvpn-getting-started-sec-groups)
+ [步骤 8：下载 Client VPN 端点配置文件](#cvpn-getting-started-config)
+ [步骤 9：连接到 Client VPN 端点](#cvpn-getting-started-connect)

## 先决条件
<a name="cvpn-getting-started-prereq"></a>

在开始本入门教程之前，请确保您具有以下各项：
+ 使用 Client VPN 端点所需的权限。
+ 将证书导入到 AWS Certificate Manager中所需的权限。
+ 至少有一个子网和一个 Internet 网关的 VPC。与您的子网关联的路由表必须具有通往 Internet 网关的路由。

## 步骤 1：选择您的终端节点类型
<a name="cvpn-getting-started-choose-type"></a>

Client VPN 支持两种终端节点类型：用于单 VPC 访问的 VPC 子网关联和用于多 VPC 和混合网络场景的 Transit Gateway 关联。本教程涵盖与 VPC 相关的终端节点。有关 Transit Gateway 端点的信息，请参[Transit Gateway 与客户端 VPN 集成](cvpn-tgw.md)阅

## 步骤 2：生成服务器和客户端证书和密钥
<a name="cvpn-getting-started-certs"></a>

本教程使用双向身份验证。借助双向身份验证，Client VPN 使用证书在客户端和 Client VPN 端点之间执行身份验证。您将需要具有服务器证书和密钥，以及至少一个客户端证书和密钥。服务器证书至少需要导入 AWS Certificate Manager (ACM)，并在创建 Client VPN 端点时指定。将客户端证书导入 ACM 是可选的。

如果您还没有可用于此目的的证书，则可以使用 OpenVPN easy-rsa 实用程序创建它们。有关使用 [OpenVPN easy-rsa 实用程序](https://github.com/OpenVPN/easy-rsa)生成服务器和客户端证书和密钥并将其导入 ACM 的详细步骤，请参阅[相互认证 AWS Client VPN](mutual.md)。

**注意**  
服务器证书必须使用您要创建 Client VPN 终端节点的同一 AWS 区域配置或导入 AWS Certificate Manager (ACM)。

## 步骤 3：创建 Client VPN 终端节点
<a name="cvpn-getting-started-endpoint"></a>

Client VPN 终端节点是您创建并配置以用于启用和管理 Client VPN 会话的资源。这是所有 Client VPN 会话的终止点。

**创建 Client VPN 端点**

1. 打开位于 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 的 Amazon VPC 控制台。

1. 在导航窗格中，选择 **Client VPN Endpoints**（Client VPN 端点），然后选择 **Create Client VPN endpoint**（创建 Client VPN 端点）。

1. （可选）提供 Client VPN 终端节点的名称标签和描述。

1. 对于**客户端 IPv4 CIDR**，以 CIDR 表示法指定一个 IP 地址范围，从中分配客户端 IP 地址。
**注意**  
此地址范围不能与目标网络地址范围、VPC 地址范围或将与 Client VPN 端点关联的任何路由重叠。客户端地址范围必须至少为 /22 且不大于 /12 CIDR 块大小。创建 Client VPN 终端节点后，您无法更改客户端地址范围。

1. [对于**服务器证书 ARN**，请选择您在步骤 2 中生成的服务器证书的 ARN。](#cvpn-getting-started-certs)

1. 在 **Authentication options**（身份验证选项）下，选择 **Use mutual authentication**（使用双向身份验证），然后对于 **Client certificate ARN**（客户端证书 ARN），选择要用作客户端证书的证书的 ARN。

   如果服务器证书和客户端证书是由相同证书颁发机构（CA）颁发的，则您可以选择指定将服务器证书 ARN *同时* 用于服务器和客户端证书。在这种情况下，可以使用与服务器证书对应的任何客户端证书进行身份验证。

1. （可选）指定用于 DNS 解析的 DNS 服务器。要使用自定义 DNS 服务器，对于 **DNS Server 1 IP address**（DNS 服务器 1 IP 地址）和 **DNS Server 2 IP address**（DNS 服务器 2 IP 地址），指定要使用的 DNS 服务器的 IP 地址。要使用 VPC DNS 服务器，对于 **DNS Server 1 IP address**（DNS 服务器 1 IP 地址）或 **DNS Server 2 IP address**（DNS 服务器 2 IP 地址），指定 IP 地址，并添加 VPC DNS 服务器 IP 地址。
**注意**  
验证客户端是否能访问 DNS 服务器。

1. 保留其余原定设置，然后选择 **Create Client VPN endpoint**（创建 Client VPN 端点）。

在您创建 Client VPN 端点后，其状态为 `pending-associate`。仅当您关联至少一个目标网络后，客户端才能建立 VPN 连接。

有关您可以为 Client VPN 端点指定的选项的更多信息，请参阅[创建AWS Client VPN终端节点](cvpn-working-endpoint-create.md)。

## 步骤 4：关联目标网络
<a name="cvpn-getting-started-target"></a>

要使客户端能够建立 VPN 会话，请将一个目标网络与 Client VPN 端点关联。目标网络是 VPC 中的一个子网。

**将目标网络与 Client VPN 端点关联**

1. 打开位于 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 的 Amazon VPC 控制台。

1. 在导航窗格中，选择 **Client VPN Endpoints**（Client VPN 终端节点）。

1. 选择您在上一过程中创建的 Client VPN 端点，然后依次选择 **Target network associations**（目标网络关联）和 **Associate target network**（关联目标网络）。

1. 对于 **VPC**，选择您要在其中放置子网的 VPC。

1. 对于 **Choose a subnet to associate**（选择要关联的子网），选择要与 Client VPN 终端节点关联的子网。

1. 选择 **Associate target network**（关联目标网络）。

1. 如果授权规则允许，则一个子网关联就足以供客户端访问 VPC 的整个网络。您可以关联其他子网，以便在可用区受损时提供高可用性。

当您将第一个子网与 Client VPN 端点关联时，会发生以下情况：
+ Client VPN 端点的状态更改为 `available`。客户端现在可以建立 VPN 连接，但无法访问 VPC 中的任何资源，直到您添加授权规则。
+ VPC 的本地路由会自动添加到 Client VPN 端点路由表中。
+ VPC 的原定设置安全组将自动应用于 Client VPN 端点。

## 步骤 5：为 VPC 添加授权规则
<a name="cvpn-getting-started-rules"></a>

要使客户端能够访问 VPC，Client VPN 端点的路由表中需要有到 VPC 的路由，并且需要有授权规则。在上一步中，已经自动添加路由。在本教程中，我们要向所有用户授予对 VPC 的访问权限。

**添加 VPC 的授权规则**

1. 打开位于 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 的 Amazon VPC 控制台。

1. 在导航窗格中，选择 **Client VPN Endpoints**（Client VPN 终端节点）。

1. 选择要将授权规则添加到的 Client VPN 端点。选择**授权规则**，然后选择**添加授权规则**。

1. 对于 **Destination network to enable access**（要启用访问权限的目标网络），输入您要允许访问的网络的 CIDR。例如，要允许访问整个 VPC，请指定 VPC 的 IPv4 CIDR 块。

1. 对于**授予访问权限**，选择**允许所有用户访问**。

1. （可选）对于 **Description**（描述），输入授权规则的简要描述。

1. 选择**添加授权规则**。

## 第 6 步：提供互联网访问权限
<a name="cvpn-getting-started-routes"></a>

您可以提供对连接到 VPC 的其他网络的访问权限，例如 AWS 服务、对等网络 VPCs、本地网络和互联网。对于每个额外的网络，您必须在 Client VPN 端点的路由表中添加到网络的路由，并配置授权规则以向客户端授予访问权限。

在本教程中，我们希望授予所有用户对 Internet 以及 VPC 的访问权限。您已经配置了对 VPC 的访问权限，因此这一步骤适用于对 Internet 的访问权限。

**提供对 Internet 的访问权限**

1. 打开位于 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 的 Amazon VPC 控制台。

1. 在导航窗格中，选择 **Client VPN Endpoints**（Client VPN 终端节点）。

1. 选择您为本教程创建的 Client VPN 端点。选择 **Route Table**（路由表），然后选择 **Create Route**（创建路由）。

1. 对于 **Route destination (路由目标)**，请输入 `0.0.0.0/0`。对于 **Subnet ID for target network association**（用于目标网络关联的子网 ID），指定用来路由流量的子网的 ID。

1. 选择 **Create Route (创建路由)**。

1. 选择 **Authorization rules**（授权规则），然后选择 **Add authorization rule**（添加授权规则）。

1. 对于 **Destination network to enable access**（要启用访问权限的目标网络），输入 `0.0.0.0/0`，并选择 **Allow access to all users**（允许所有用户访问）。

1. 选择**添加授权规则**。

## 步骤 7：验证安全组要求
<a name="cvpn-getting-started-sec-groups"></a>

在本教程中，在步骤 3 中创建 Client VPN 端点期间，未指定任何安全组。这意味着，当关联目标网络时，VPC 的原定设置安全组会自动应用于 Client VPN 端点。因此，VPC 的原定设置安全组现在应与 Client VPN 端点关联。

**验证以下安全组要求**
+ 与您正在用来路由流量的子网相关联的安全组（在本例中为原定设置的 VPC 安全组）允许向 Internet 发送出站流量。为此，添加一个允许所有流量到达目标 `0.0.0.0/0` 的出站规则。
+ VPC 中资源的安全组具有一条规则，此规则支持从应用于 Client VPN 端点的安全组进行访问（此例中为原定设置的 VPC 安全组）。这将允许您的客户端访问 VPC 中的资源。

有关更多信息，请参阅 [安全组](client-authorization.md#security-groups)。

## 步骤 8：下载 Client VPN 端点配置文件
<a name="cvpn-getting-started-config"></a>

下一步是下载并准备 Client VPN 端点配置文件。配置文件包含建立 VPN 连接所需的 Client VPN 端点详细信息和证书信息。您可以将此文件提供给需要连接到 Client VPN 端点的终端用户。终端用户使用此文件配置其 VPN 客户端应用程序。

**下载并准备 Client VPN 端点配置文件**

1. 打开位于 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 的 Amazon VPC 控制台。

1. 在导航窗格中，选择 **Client VPN Endpoints**（Client VPN 终端节点）。

1. 选择您为本教程创建的 Client VPN 端点，然后选择 **Download client configuration**（下载客户端配置）。

1. 找到在[步骤 2](#cvpn-getting-started-certs) 中生成的客户端证书和密钥。可以在克隆的 OpenVPN easy-rsa 存储库中的以下位置找到客户端证书和密钥：
   + 客户端证书 – `easy-rsa/easyrsa3/pki/issued/client1.domain.tld.crt`
   + 客户端密钥 – `easy-rsa/easyrsa3/pki/private/client1.domain.tld.key`

1. 使用首选文本编辑器打开 Client VPN 终端节点配置文件。将 `<cert>``</cert>` 和 `<key>``</key>` 标签添加到文件中。将客户端证书的内容以及私有密钥的内容放在相应的标签之间，例如：

   ```
   <cert>
   {{Contents of client certificate (.crt) file}}
   </cert>
   
   <key>
   {{Contents of private key (.key) file}}
   </key>
   ```

1. 保存并关闭 Client VPN 端点配置文件。

1. 将 Client VPN 端点配置文件分发给终端用户。

有关 Client VPN 端点配置文件的更多信息，请参阅[AWS Client VPN 端点配置文件导出](cvpn-working-endpoint-export.md)。

## 步骤 9：连接到 Client VPN 端点
<a name="cvpn-getting-started-connect"></a>

您可以使用 AWS 提供的客户端或其他基于 OpenVPN 的客户端应用程序以及您刚刚创建的配置文件连接到 Client VPN 端点。有关更多信息，请参阅 [AWS Client VPN 用户指南](https://docs.aws.amazon.com/vpn/latest/clientvpn-user/)。