SD-WAN
集团多分支节点智能化组网
发布时间:2022-03-10 15:19:53 作者:AWS刘辛酉阅读:0
AWS Client VPN是一种基于客户端的托管VPN服务,让您能够安全地访问云上资源或借助云作为网络通道访问其他资源。AWS Client VPN具有专用的VPN客户端,也支持使用OpenVPN作为客户端。
注意:AWS Client VPN只能用于企业海外员工到附近的海外AWS区域的访问接入,不可用于跨境访问。跨境需求需要申请符合相关法律规定的具有资质的跨境专线。
与云上自行部署Client VPN相比,AWS Client VPN除了具有运维管理的便捷性之外,还可以用于与没有Internet Gateway的VPC内网互联实现对云上私密数据的访问,且访问VPN同时不影响客户端本机的互联网访问。如下图架构所示。
在上图中,位于海外区域的远程用户希望访问云上的VPC内的应用,且出于合规安全考虑云上的VPC是一个没有关联Internet Gateway、也没有外网路由的内部VPC。此时AWS Client VPN支持通过ENI方式将流量注入到VPC内实现访问。同时,为了确保客户端能对其他Internet网络正常访问,本方案将使用AWS Client VPN 的 Split-tunnul 功能分离网络流量,允许去往非VPC的流量直接从客户端对外发出而不经过VPN。本文描述此场景下的配置过程。
AWS Client VPN 使用的是OpenVPN协议,身份认证方式支持微软AD认证和SSL证书认证等方式。本文采用证书方式认证进行配置。
1、创建CA和服务器证书
首先在海外AWS区域创建一个EC2,建议使用Amazon Linux 2系统,在其上配置AWSCLI工具和对应的AKSK,使其具有AWS Certificate Manager(ACM)服务操作权限。
执行如下命令生成CA证书。注意最后一个命令执行后,需要输入证书使用的域名。
git clone https://github.com/OpenVPN/easy-rsa.git
cd easy-rsa/easyrsa3
./easyrsa init-pki
./easyrsa build-ca nopass
接下来生成服务器证书和密钥,执行如下命令。
./easyrsa build-server-full server nopass
由此将获得文件名为server.crt 证书和server.key密钥。
2、创建客户端证书
生成客户端证书和密钥,替换其中的前缀username为实际使用的用户名,替换域名domain.tld为实际域名。执行如下命令。
./easyrsa build-client-full username.domain.tld nopass
需要注意,未来新建用户时候都需要再次执行本命令生成新的证书。如果觉得生成为每个用户单独生成证书不方便操作,可参考使用微软AD认证进行用户名和密码认证。
3、导出证书并上传到ACM上
执行如下命令。请注意替换实际的文件名,并且服务器端证书和客户端证书都需要上传。
mkdir ~/custom_folder/
cp pki/ca.crt ~/custom_folder/
cp pki/issued/server.crt ~/custom_folder/
cp pki/private/server.key ~/custom_folder/
cp pki/issued/username.domain.tld.crt ~/custom_folder
cp pki/private/username.domain.tld.key ~/custom_folder/
cd ~/custom_folder/
接下来通过AWSCLI上传证书到ACM。在执行这一步之前,请确认CLI已经配置好对应的region,且具有操作ACM证书服务的权限。注意ACM是以区域级别服务,请确认将证书上传到要使用AWS Client VPN 的 region。本文以eu-central-1为例。执行如下命令:
aws acm import-certificate --certificate fileb://server.crt --private-key fileb://server.key --certificate-chain fileb://ca.crt --region eu-central-1
aws acm import-certificate --certificate fileb://username.domain.tld.crt --private-key fileb://username.domain.tld.key --certificate-chain fileb://ca.crt --region eu-central-1
返回CertificateArn信息则表示成功。
1、创建Endpoint终端节点
进入对应区域的VPC服务界面,在左侧菜单中找到Client VPN Endpoints,点击进入,并点击新建,如下截图。
在创建界面上填写VPN服务名称、描述信息,并设置IP地址段。IP地址段是AWS Client VPN 服务器与客户端之间的一个私有网络,这个地址段的子网掩码范围/12和/22之间,且地址不能与客户端本地或云上VPC冲突。例如本文使用10.88.0.0/16作为地址段。
然后在下方的服务器证书位置,选择ACM中包含的server证书。如下截图。
在客户端认证选项中,选择Use mutual authentication使用证书双向认证,然后在Client证书选择框中,选择ACM中包含的client证书。如下截图。
接下来将页面向下移动。在DNS位置留空,VPN 服务器将不强制推送DNS服务器。在对接企业AD场景下如果有需要的话可推送自己的DNS。在传输协议位置保持默认的UDP协议。在Enable split-tunnel位置,选中这个选项,表示客户端将把去往AWS的流量和本地互联网流量分离。由此不需要所有流量都经过VPN处理。接下来选择安全组为本VPC默认的安全组,默认的安全组规则是对外出栈放行,对内入栈禁止所有。如下截图。
页面继续向下移动,在页面下方,选中Do you want to enable Client Login Banner text的选项,并设置一段文本,可以在VPN连接过程中显示这个文本信息。最后点击右下角创建按钮。如下截图。
至此创建Client VPN Endpoint完成。
2、绑定子网
进入创建好的AWS Client VPN Endpoint界面,找到第二个标签页Associations,点击Associate按钮。如下截图。
在弹出的绑定子网界面中,选中AWS Client VPN 要连接的子网。首先选择VPC和第一个子网。然后点确定。如下截图。
重复以上步骤,将两个子网都绑定到AWS Client VPN。如下截图。
接下来需要等待几分钟,等待黄色的Associating字样变成绿色的Associated。如下截图。
3、绑定策略
进入创建好的AWS Client VPN Endpoint界面,找到第四个标签页Authorization授权界面。点击Authorize Ingress按钮。如下截图。
输入AWS Client VPN要访问的VPC的CIDR,例如本文的VPC地址段是10.1.0.0/16,然后点击授权。如下截图。
至此VPC服务器端配置完成。
1、下载客户端配置文件
在上一步完成操作的界面,点击页面中间蓝色的按钮Download Client Configuration,获取客户端配置文件。
这样将在下载目录中打开名为downloaded-client-config.ovpn的文件,接下来使用任意文本编辑器修改其配置。
2、设置客户端证书
接上一步,打开扩展名为ovpn的配置文件,在最后增加如下两段内容:
<cert>
这里粘贴上前文生成的客户端密钥username.domain.tld.crt的内容
</cert>
<key>
这里粘贴上前文生成的客户端密钥username.domain.tld.key的内容
</key>
3、设置访问域名
接上一步,找到配置文件中开头部分如下一行。
remote cvpn-endpoint-05ba461a63c340555.prod.clientvpn.eu-central-1.amazonaws.com 443
在其前方增加一个子域名,使用前边申请证书的子域名即可,例如username.domain.tld。如下配置。
remote username.cvpn-endpoint-05ba461a63c340555.prod.clientvpn.eu-central-1.amazonaws.com 443
保存退出,至此本用户的客户端配置文件修改完成。现在需要将此文件复制到要连接VPN的客户机上。
请注意,今后每增加一个新的用户,都需要新制作这样一个客户端配置文件。由此,当单个用户需要注销的时候,只要在ACM服务内注销掉用户对应的客户端证书即可。
在要使用VPN的客户机上下载AWS Client VPN 客户端对应的操作系统的版本,包括Windows、Linux和MacOS的支持。如下截图。
https://aws.amazon.com/vpn/client-vpn-download/
安装完成后启动客户端。点击菜单上的File命令,然后点击Manage Profiles按钮管理配置文件。如下截图。
点击添加按钮,再选择前文编辑完成的客户端配置文件,然后点击Add Profile按钮完成添加。如下截图。
添加配置文件完成。此时可以准备开始连接了。如下截图。
连接成功后,使用cmd去ping在VPC内网的环境,可看到ping成功。如下截图。
此外,通过AWS控制台上Client VPN界面的Connections标签页,也可以看到当前连接的客户端。如下截图。
在前文配置VPN过程中已经将Split-tunnel选项设置为Enable启用状态,所以只有去往VPC中的流量才会通过VPN传输,其他流量将从客户本地网络上直接访问互联网。由于本次配置的云上VPC是没有Internet Gateway的,因此当您连接到Client VPN后能同时访问VPC和访问Internet,就意味着启用了Split-tunnel分流功能工作正常。
至此配置完成。
从以上配置可以看出,AWS Client VPN 可支持海外用户就近接入AWS区域的VPC网络访问内网应用系统,还可通过策略设置,管控访问范围。
本文使用了证书认证方式,每次新增用户时候都需要为新用户生成新的客户端证书,将证书上传到ACM并修改用户端配置文件。此过程,可通过AWSCLI、Shell脚本等一系列服务与企业现有IT系统对接和集成完成自动Provisioning。此过程不在本文讨论之列。
以上就是在海外区域使用AWS Client VPN 访问云上VPC 内网资源的介绍,微云网络提供全球网络优化服务、国际网络加速方案,覆盖(包括但不限于)海外游戏、跨国视频会议、跨境电商、海外直播等行业,如有相关应用场景可拨打400-028-9798电话进行咨询。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:shawn.lee@vecloud.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
标题:在海外区域使用AWS Client 访问云上VPC 内网资源
TAG标签:AWS
地址:https://www.kd010.com/hyzs/741.html
全天服务支持
资源覆盖全球
专属优质服务
技术全线支持