创建AWS Client VPN Endpoints,从私有子网连接VPC资源。

事前准备

在这里Client VPN Endpoints的身份验证方式为 「使用相互身份验证」 。
开始创建Client VPN Endpoints之前需要创建以下资源。

  • 创建服务器证明书及客户端证明书,并将服务器证明书到入职ACM
  • 在CloudWatch上创建日志组(Log group)及日志流(Log stream)
  • 创建安全组(Security Group)
  • 决定分配给客户端的IP地址段(Client IPv4 CIDR)

创建服务器证明书及客户端证明书,并将服务器证明书到入职ACM

导入证书的方法,参照 [AWS入门]AWS客户端VPN终端节点,OpenVPN easy-rsa管理证书 博客,创建服务器及客户端证书并导入至ACM。

在CloudWatch上创建日志组(Log group)及日志流(Log stream)

在CloudWatch的日志组页面点击「创建日志组」。

输入日志组名称,保留设置使用永不过期后点击创建。

接下来点击创建的日志组,创建日志流。

点击「创建日志流」。

点击「Create」。

创建安全组(Security Group)

在VPC或者EC2的安全组页面创建用于Client VPN Endpoints的安全组。在这里创建一个Inbound和Outbound为空的一个安全组。

决定分配给客户端的IP地址段(Client IPv4 CIDR)

客户端的IP地址段和VPC的IP地址段,不重复即可。

创建Client VPN Endpoints

在VPC管理页面上,点击虚拟专用网络(VPN)的客户端VPN终端节点后,点击「创建客户端VPN终端节点」开始创建。

创建客户端 VPN 终端节点时,必须指定客户端 CIDR 范围,该范围是介于 /12 和 /22 网络掩码之间的 IPv4 CIDR 块。将从客户端 CIDR 范围中为每个到客户端 VPN 终端节点的 VPN 连接分配一个唯一的 IP 地址。客户端 CIDR 范围中的一部分地址还用于支持客户端 VPN 终端节点的可用性模型,无法分配给客户端。创建客户端 VPN 终端节点后,您无法更改客户端 CIDR 范围。
通常,我们建议您指定一个客户端 CIDR 范围,其中包含的 IP 地址数量是您计划在客户端 VPN 终端节点上支持的 IP 地址数量(以及并发连接数量)的两倍。

具体内容参照 客户端 VPN 扩展注意事项

名称标签:填写任意名称
描述:可选项
客户端 IPv4 CIDR:填写和VPC的IP地址段不重复IP地址段,该地址段为分配给客户端PC的IP地址段

服务器证书ARN:导入至ACM的证书
分身验证选项:使用相互身份验证
客户端证书ARN:导入至ACM的证书(和服务器证书ARN一样)

是否要记录客户端连接的详细信息:是(在生产环境推荐记录连接信息)
CloudWatch Logs日志组名称:geco-clientvpn-log
CloudWatch Logs日志流名称:clientvpn-log

是否要记录客户端连接的详细信息:否

接下来是「其他可选参数」,需要根据实际环境进行设定。
DNS服务器1IP地址:物理环境的DNS服务器IP地址
启用拆分隧道:是(在这次构建的环境,需要通过因特网将VPN客户机使用的EC2连接到远程桌面,因此有效)
VPC ID:指定与Client VPN Endpoints关联的VPC
安全组ID:指定在前一步骤创建的安全组
启用服务门户网站:ON(为了让用户下载设定文件,设定为ON)

DNS 服务器 1 的 IP 地址:为空
DNS 服务器 2 的 IP 地址:为空
传输协议:TCP

启用拆分隧道:是
VPC ID:选择VPC ID
安全组ID:在上面创建的安装组
VPN端口:443
启动自动服务门户:是

确认Client VPN Endpoints创建成功。

关联

进行关联之后安全组,路由表及网络接口(可在网络接口确认到被创建的2个ClientVPN Endpoint resource)将会被创建。

在关联里点击「Associate」。

将Client VPN Endpoints连接VPC的Subnet上。

考虑到冗余性,应该将其关联至另一个私有子网,这次因预算的关系仅绑定到一个子网。

授权

在授权里设定谁可以访问该Client VPN Endpoints。点击「Authorize Ingress」开始进行配置。

输入以下信息之后,点击「添加授权规则」。
– 要启用访问的目的地网络:可访问的网络地址段,输入VPC的IP地址段
– 授权访问对象给:允许访问所有用户

路由

以下为被添加的默认路由。可修改默认路由在连接Client VPN后上网。

连接Client VPN Endpoints

下载OpenVPN后在AWS管理页面下载客户端配置文件,配置OpenVPN客户端进行连接。

下载OpenVPN软件

连接Client VPN Endpoints可使用OpenVPN客户端,点击下面的连接进行下载。

https://openvpn.net/community-downloads/

下载配置文件

点击「下载客户端配置」,现在OpenVPN配置文件(*.ovpn)。

点击「下载」。

文本编辑器打开下载 downloaded-client-config.ovpn 文件后,添加 cert及key之后,将证书正文和证书私有秘钥,拷贝进去。

client
dev tun
proto tcp
remote cvpn-endpoint-xxxxxxxxxxxxxxxx.prod.clientvpn.ap-northeast-1.amazonaws.com 443
remote-random-hostname
resolv-retry infinite
nobind
remote-cert-tls server
cipher AES-256-GCM
verb 3
<ca>
-----BEGIN CERTIFICATE-----
MIIDIDCCAgigAwIBAgIQB96Zdy9g84m5lntIPbNlPjANBgkqhkiG9w0BAQsFADAq
<省略>
-----END CERTIFICATE-----

</ca>

<cert>
<证书正文>
</cert>

<key>
<证书私有秘钥>
</key>

reneg-sec 0

连接测试

在OpenVPN GUI上右击后,点击Import file。

选择修改后的 downloaded-client-config.ovpn 文件,确认显示 「File imported successfully」。

在OpenVPN GUI上右击后,选择该连接并点击「Connect」。

显示如下页面为,连接Client VPN Endpoints成功。